diff --git a/Makefile b/Makefile index 220a55191559..a1741dd961f8 100644 --- a/Makefile +++ b/Makefile @@ -54,8 +54,6 @@ BUILD_DIR := $(ROOT_DIR)/.build TEST_DIR := $(BUILD_DIR)/test ERROR_FILE := $(BUILD_DIR)/error_occurred -MAKEFILE_INCLUDED=yes - # Helper function to process the newt element of a space separated path # It works a bit like the traditional functional head tail # so the CURRENT_PATH_ELEMENT will become the new head @@ -93,31 +91,8 @@ distclean: clean rm -f *.bin *.hex *.uf2 echo 'done.' -#Compatibility with the old make variables, anything you specify directly on the command line -# always overrides the detected folders -ifdef keyboard - KEYBOARD := $(keyboard) -endif -ifdef keymap - KEYMAP := $(keymap) -endif - -# Uncomment these for debugging -# $(info Keyboard: $(KEYBOARD)) -# $(info Keymap: $(KEYMAP)) - -# Set the default goal depending on where we are running make from -# this handles the case where you run make without any arguments .DEFAULT_GOAL := all:all -ifneq ($(KEYMAP),) - .DEFAULT_GOAL := $(KEYBOARD):$(KEYMAP) -else ifneq ($(KEYBOARD),) - # Inside a keyboard folder, build all keymaps for all subprojects - # Note that this is different from the old behaviour, which would - # build only the default keymap of the default keyboard - .DEFAULT_GOAL := $(KEYBOARD):all -endif # Compare the start of the RULE variable with the first argument($1) @@ -241,10 +216,6 @@ define PARSE_RULE else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell util/list_keyboards.sh | sort -u)),true) KEYBOARD_RULE=$$(MATCHED_ITEM) $$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM))) - # Otherwise use the KEYBOARD variable, which is determined either by - # the current directory you run make from, or passed in as an argument - else ifneq ($$(KEYBOARD),) - $$(eval $$(call PARSE_KEYBOARD,$$(KEYBOARD))) else $$(info make: *** No rule to make target '$1'. Stop.) $$(info |) diff --git a/bootloader.mk b/bootloader.mk index 5ba118fb4436..ccb92392d903 100644 --- a/bootloader.mk +++ b/bootloader.mk @@ -34,6 +34,8 @@ # stm32duino STM32Duino (STM32F103x8) # stm32-dfu STM32 USB DFU in ROM # apm32-dfu APM32 USB DFU in ROM +# RISC-V: +# gd32v-dfu GD32V USB DFU in ROM # # BOOTLOADER_SIZE can still be defined manually, but it's recommended # you add any possible configuration to this list @@ -125,6 +127,13 @@ ifeq ($(strip $(BOOTLOADER)), apm32-dfu) DFU_ARGS ?= -d 314B:0106 -a 0 -s 0x08000000:leave DFU_SUFFIX_ARGS ?= -v 314B -p 0106 endif +ifeq ($(strip $(BOOTLOADER)), gd32v-dfu) + OPT_DEFS += -DBOOTLOADER_GD32V_DFU + + # Options to pass to dfu-util when flashing + DFU_ARGS ?= -d 28E9:0189 -a 0 -s 0x08000000:leave + DFU_SUFFIX_ARGS ?= -v 28E9 -p 0189 +endif ifeq ($(strip $(BOOTLOADER)), kiibohd) OPT_DEFS += -DBOOTLOADER_KIIBOHD ifeq ($(strip $(MCU_ORIG)), MK20DX128) diff --git a/build_keyboard.mk b/build_keyboard.mk index 691045853271..36807911d85d 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -399,6 +399,7 @@ VPATH += $(KEYBOARD_PATHS) VPATH += $(COMMON_VPATH) include common_features.mk +include generic_features.mk include $(TMK_PATH)/protocol.mk include $(TMK_PATH)/common.mk include bootloader.mk diff --git a/build_test.mk b/build_test.mk index 96487c01faea..dd66a008ee67 100644 --- a/build_test.mk +++ b/build_test.mk @@ -52,6 +52,7 @@ include tests/$(TEST)/rules.mk endif include common_features.mk +include generic_features.mk include $(TMK_PATH)/common.mk include $(QUANTUM_PATH)/debounce/tests/rules.mk include $(QUANTUM_PATH)/sequencer/tests/rules.mk diff --git a/common_features.mk b/common_features.mk index 3fe834219f03..9b9425dc33cd 100644 --- a/common_features.mk +++ b/common_features.mk @@ -44,11 +44,6 @@ else ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), api) OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE endif -ifeq ($(strip $(COMMAND_ENABLE)), yes) - SRC += $(QUANTUM_DIR)/command.c - OPT_DEFS += -DCOMMAND_ENABLE -endif - AUDIO_ENABLE ?= no ifeq ($(strip $(AUDIO_ENABLE)), yes) ifeq ($(PLATFORM),CHIBIOS) @@ -118,12 +113,6 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) SRC += $(QUANTUM_DIR)/pointing_device.c endif -ifeq ($(strip $(PROGRAMMABLE_BUTTON_ENABLE)), yes) - OPT_DEFS += -DPROGRAMMABLE_BUTTON_ENABLE - SRC += $(QUANTUM_DIR)/programmable_button.c - SRC += $(QUANTUM_DIR)/process_keycode/process_programmable_button.c -endif - VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi EEPROM_DRIVER ?= vendor ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),) @@ -153,51 +142,18 @@ else ifeq ($(PLATFORM),AVR) # Automatically provided by avr-libc, nothing required else ifeq ($(PLATFORM),CHIBIOS) - ifeq ($(MCU_SERIES), STM32F3xx) - OPT_DEFS += -DEEPROM_DRIVER - COMMON_VPATH += $(DRIVER_PATH)/eeprom - SRC += eeprom_driver.c - SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c - SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c - OPT_DEFS += -DEEPROM_EMU_STM32F303xC - else ifeq ($(MCU_SERIES), STM32F1xx) - OPT_DEFS += -DEEPROM_DRIVER - COMMON_VPATH += $(DRIVER_PATH)/eeprom - SRC += eeprom_driver.c - SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c - SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c - OPT_DEFS += -DEEPROM_EMU_STM32F103xB - else ifeq ($(MCU_SERIES)_$(MCU_LDSCRIPT), STM32F0xx_STM32F072xB) - OPT_DEFS += -DEEPROM_DRIVER - COMMON_VPATH += $(DRIVER_PATH)/eeprom - SRC += eeprom_driver.c - SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c - SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c - OPT_DEFS += -DEEPROM_EMU_STM32F072xB - else ifneq ($(filter $(MCU_SERIES)_$(MCU_LDSCRIPT),STM32F4xx_STM32F401xC STM32F4xx_STM32F401xE STM32F4xx_STM32F411xE STM32F4xx_STM32F405xG),) + ifneq ($(filter STM32F3xx_% STM32F1xx_% %_STM32F401xC %_STM32F401xE %_STM32F405xG %_STM32F411xE %_STM32F072xB %_STM32F042x6 %_GD32VF103xB %_GD32VF103x8, $(MCU_SERIES)_$(MCU_LDSCRIPT)),) OPT_DEFS += -DEEPROM_DRIVER COMMON_VPATH += $(DRIVER_PATH)/eeprom SRC += eeprom_driver.c SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c - OPT_DEFS += -DEEPROM_EMU_STM32F401xC - else ifeq ($(MCU_SERIES)_$(MCU_LDSCRIPT), STM32F0xx_STM32F042x6) - # Stack sizes: Since this chip has limited RAM capacity, the stack area needs to be reduced. - # This ensures that the EEPROM page buffer fits into RAM - USE_PROCESS_STACKSIZE = 0x600 - USE_EXCEPTIONS_STACKSIZE = 0x300 - - OPT_DEFS += -DEEPROM_DRIVER - COMMON_VPATH += $(DRIVER_PATH)/eeprom - SRC += eeprom_driver.c - SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c - SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c - OPT_DEFS += -DEEPROM_EMU_STM32F042x6 else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),) OPT_DEFS += -DEEPROM_DRIVER COMMON_VPATH += $(DRIVER_PATH)/eeprom COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom - SRC += eeprom_driver.c eeprom_stm32_L0_L1.c + SRC += eeprom_driver.c + SRC += eeprom_stm32_L0_L1.c else # This will effectively work the same as "transient" if not supported by the chip SRC += $(PLATFORM_COMMON_DIR)/eeprom_teensy.c @@ -452,21 +408,6 @@ ifeq ($(strip $(TERMINAL_ENABLE)), yes) OPT_DEFS += -DUSER_PRINT endif -ifeq ($(strip $(WPM_ENABLE)), yes) - SRC += $(QUANTUM_DIR)/wpm.c - OPT_DEFS += -DWPM_ENABLE -endif - -ifeq ($(strip $(ENCODER_ENABLE)), yes) - SRC += $(QUANTUM_DIR)/encoder.c - OPT_DEFS += -DENCODER_ENABLE -endif - -ifeq ($(strip $(VELOCIKEY_ENABLE)), yes) - OPT_DEFS += -DVELOCIKEY_ENABLE - SRC += $(QUANTUM_DIR)/velocikey.c -endif - ifeq ($(strip $(VIA_ENABLE)), yes) DYNAMIC_KEYMAP_ENABLE := yes RAW_ENABLE := yes @@ -475,16 +416,6 @@ ifeq ($(strip $(VIA_ENABLE)), yes) OPT_DEFS += -DVIA_ENABLE endif -ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes) - OPT_DEFS += -DDYNAMIC_KEYMAP_ENABLE - SRC += $(QUANTUM_DIR)/dynamic_keymap.c -endif - -ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes) - OPT_DEFS += -DDIP_SWITCH_ENABLE - SRC += $(QUANTUM_DIR)/dip_switch.c -endif - VALID_MAGIC_TYPES := yes lite BOOTMAGIC_ENABLE ?= no ifneq ($(strip $(BOOTMAGIC_ENABLE)), no) @@ -564,23 +495,19 @@ ifeq ($(strip $(CRC_ENABLE)), yes) SRC += crc.c endif -HAPTIC_ENABLE ?= no -ifneq ($(strip $(HAPTIC_ENABLE)),no) +ifeq ($(strip $(HAPTIC_ENABLE)),yes) COMMON_VPATH += $(DRIVER_PATH)/haptic - OPT_DEFS += -DHAPTIC_ENABLE - SRC += $(QUANTUM_DIR)/haptic.c - SRC += $(QUANTUM_DIR)/process_keycode/process_haptic.c -endif -ifneq ($(filter DRV2605L, $(HAPTIC_ENABLE)), ) - SRC += DRV2605L.c - QUANTUM_LIB_SRC += i2c_master.c - OPT_DEFS += -DDRV2605L -endif + ifneq ($(filter DRV2605L, $(HAPTIC_DRIVER)), ) + 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 + ifneq ($(filter SOLENOID, $(HAPTIC_DRIVER)), ) + SRC += solenoid.c + OPT_DEFS += -DSOLENOID_ENABLE + endif endif ifeq ($(strip $(HD44780_ENABLE)), yes) @@ -635,54 +562,12 @@ 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 -endif - MAGIC_ENABLE ?= yes ifeq ($(strip $(MAGIC_ENABLE)), yes) SRC += $(QUANTUM_DIR)/process_keycode/process_magic.c OPT_DEFS += -DMAGIC_KEYCODE_ENABLE endif -GRAVE_ESC_ENABLE ?= yes -ifeq ($(strip $(GRAVE_ESC_ENABLE)), yes) - SRC += $(QUANTUM_DIR)/process_keycode/process_grave_esc.c - OPT_DEFS += -DGRAVE_ESC_ENABLE -endif - -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 $(KEY_OVERRIDE_ENABLE)), yes) - SRC += $(QUANTUM_DIR)/process_keycode/process_key_override.c - OPT_DEFS += -DKEY_OVERRIDE_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 @@ -711,11 +596,6 @@ ifeq ($(strip $(JOYSTICK_ENABLE)), yes) endif endif -DIGITIZER_ENABLE ?= no -ifneq ($(strip $(DIGITIZER_ENABLE)), no) - SRC += $(QUANTUM_DIR)/digitizer.c -endif - USBPD_ENABLE ?= no VALID_USBPD_DRIVER_TYPES = custom vendor USBPD_DRIVER ?= vendor diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index b6b5e411fef7..65d44c94d2ce 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -13,7 +13,7 @@ }, "processor": { "type": "string", - "enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66FX1M0", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F405", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L433", "STM32L443", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"] + "enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66FX1M0", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F405", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L433", "STM32L443", "GD32VF103", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"] }, "audio": { "type": "object", @@ -56,7 +56,7 @@ }, "bootloader": { "type": "string", - "enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "unknown", "usbasploader", "USBasp", "tinyuf2"], + "enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "gd32v-dfu", "unknown", "usbasploader", "USBasp", "tinyuf2"], }, "bootloader_instructions": { "type": "string", diff --git a/docs/compatible_microcontrollers.md b/docs/compatible_microcontrollers.md index f4aab5f5bd58..39e9061c2026 100644 --- a/docs/compatible_microcontrollers.md +++ b/docs/compatible_microcontrollers.md @@ -48,3 +48,9 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s ## Atmel ATSAM There is limited support for one of Atmel's ATSAM microcontrollers, that being the [ATSAMD51J18A](https://www.microchip.com/wwwproducts/en/ATSAMD51J18A) used by the [Massdrop keyboards](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop). + +## RISC-V + +### GigaDevice + +[ChibiOS-Contrib](https://github.com/ChibiOS/ChibiOS-Contrib) has support for the GigaDevice [GD32VF103 series](https://www.gigadevice.com/products/microcontrollers/gd32/risc-v/mainstream-line/gd32vf103-series/) microcontrollers and provides configurations for the [SiPeed Longan Nano](https://longan.sipeed.com/en/) development board that uses this microcontroller. It is largely pin and feature compatible with STM32F103 and STM32F303 microcontrollers. \ No newline at end of file diff --git a/docs/driver_installation_zadig.md b/docs/driver_installation_zadig.md index 9155e56e3740..003629ba9a00 100644 --- a/docs/driver_installation_zadig.md +++ b/docs/driver_installation_zadig.md @@ -93,6 +93,7 @@ The device name here is the name that appears in Zadig, and may not be what the |`usbasploader`|USBasp |`16C0:05DC` |libusbK| |`apm32-dfu` |APM32 DFU ISP Mode |`314B:0106` |WinUSB | |`stm32-dfu` |STM32 BOOTLOADER |`0483:DF11` |WinUSB | +|`gd32v-dfu` |GD32V BOOTLOADER |`28E9:0189` |WinUSB | |`kiibohd` |Kiibohd DFU Bootloader |`1C11:B007` |WinUSB | |`stm32duino` |Maple 003 |`1EAF:0003` |WinUSB | |`qmk-hid` |(keyboard name) Bootloader |`03EB:2067` |HidUsb | diff --git a/docs/feature_haptic_feedback.md b/docs/feature_haptic_feedback.md index a12bb4bcd085..4054c5d9b743 100644 --- a/docs/feature_haptic_feedback.md +++ b/docs/feature_haptic_feedback.md @@ -4,9 +4,12 @@ The following options are currently available for haptic feedback in `rules.mk`: -`HAPTIC_ENABLE += DRV2605L` +``` +HAPTIC_ENABLE = yes -`HAPTIC_ENABLE += SOLENOID` +HAPTIC_DRIVER += DRV2605L +HAPTIC_DRIVER += SOLENOID +``` ## Known Supported Hardware diff --git a/docs/feature_stenography.md b/docs/feature_stenography.md index 92a5c3f84806..a7c3f3d9edf2 100644 --- a/docs/feature_stenography.md +++ b/docs/feature_stenography.md @@ -129,7 +129,8 @@ As defined in `keymap_steno.h`. |`STN_RES2`||(GeminiPR only)| |`STN_PWR`||(GeminiPR only)| -If you do not want to hit two keys with one finger combined keycodes can be used. These are also defined in `keymap_steno.h`, and causes both keys to be reported as pressed or released. To use these keycodes define `STENO_COMBINEDMAP` in your `config.h` file +If you do not want to hit two keys with one finger combined keycodes can be used. These are also defined in `keymap_steno.h`, and causes both keys to be reported as pressed or released. To use these keycodes define `STENO_COMBINEDMAP` in your `config.h` file. + |Combined key | Key1 | Key 2 | |---------------|--------|----------| |STN_S3 | STN_S1 | STN_S2 | diff --git a/docs/feature_userspace.md b/docs/feature_userspace.md index 115ab7175306..8c617fe33a06 100644 --- a/docs/feature_userspace.md +++ b/docs/feature_userspace.md @@ -252,4 +252,4 @@ Also, holding Shift will add the flash target (`:flash`) to the command. Holdin And for the boards that lack a shift key, or that you want to always attempt the flashing part, you can add `FLASH_BOOTLOADER = yes` to the `rules.mk` of that keymap. -?> This should flash the newly compiled firmware automatically, using the correct utility, based on the bootloader settings (or default to just generating the HEX file). However, it should be noted that this may not work on all systems. AVRDUDE doesn't work on WSL, namely. And this doesn't support BootloadHID or mdloader. +?> This should flash the newly compiled firmware automatically, using the correct utility, based on the bootloader settings (or default to just generating the HEX file). However, it should be noted that this may not work on all systems. AVRDUDE doesn't work on WSL, namely. diff --git a/docs/internals_gpio_control.md b/docs/internals_gpio_control.md index dcff928c7031..21a3bd661e7e 100644 --- a/docs/internals_gpio_control.md +++ b/docs/internals_gpio_control.md @@ -4,7 +4,7 @@ QMK has a GPIO control abstraction layer which is microcontroller agnostic. This ## Functions :id=functions -The following functions can provide basic control of GPIOs and are found in `quantum/quantum.h`. +The following functions provide basic control of GPIOs and are found in `tmk_core/common//gpio.h`. |Function |Description | Old AVR Examples | Old ChibiOS/ARM Examples | |------------------------|--------------------------------------------------|-------------------------------------------------|-------------------------------------------------| diff --git a/docs/ja/feature_haptic_feedback.md b/docs/ja/feature_haptic_feedback.md index 158079725329..687788014aa5 100644 --- a/docs/ja/feature_haptic_feedback.md +++ b/docs/ja/feature_haptic_feedback.md @@ -9,9 +9,12 @@ 現在のところ、`rules.mk` で触覚フィードバック用に以下のオプションを利用可能です: -`HAPTIC_ENABLE += DRV2605L` +``` +HAPTIC_ENABLE = yes -`HAPTIC_ENABLE += SOLENOID` +HAPTIC_DRIVER += DRV2605L +HAPTIC_DRIVER += SOLENOID +``` ## サポートされる既知のハードウェア diff --git a/docs/ja/ja_doc_status.sh b/docs/ja/ja_doc_status.sh new file mode 100644 index 000000000000..3dfbbd2bc6f6 --- /dev/null +++ b/docs/ja/ja_doc_status.sh @@ -0,0 +1,34 @@ +#! /bin/sh +# +# Script to display the Japanese translation status of documents +# +if [ ! -d docs/ja ]; then + echo "'docs/ja' not found." + echo "do:" + echo " cd \$(QMK_TOP)" + echo " ./docs/ja/ja_doc_status.sh" + exit 1 +fi + +en_docs=`cd docs;ls -1 [a-z]*.md` +ja_docs=`cd docs/ja;ls -1 [a-z]*.md` +en_count=`echo $en_docs | wc -w` +ja_count=`echo $ja_docs | wc -w` +echo "English documents $en_count files." +echo "Japanese documents $ja_count files." + +echo "Files that have not been translated yet:" +for docfile in $en_docs +do + if [ ! -f docs/ja/$docfile ]; then + wc docs/$docfile + fi +done | sort +echo "Files that have not been updated yet:" +grep --no-filename "^[ ]*git diff" docs/ja/*.md | while read cmd +do + cline=`echo $cmd | sh | wc -l` + if [ $cline -gt 0 ]; then + echo "$cline $cmd" + fi +done | sort diff --git a/drivers/led/apa102.c b/drivers/led/apa102.c index 19e0bfc1890a..00e7eb450536 100644 --- a/drivers/led/apa102.c +++ b/drivers/led/apa102.c @@ -24,7 +24,7 @@ # elif defined(PROTOCOL_CHIBIOS) # include "hal.h" -# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) +# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(GD32VF103) # define APA102_NOPS (100 / (1000000000L / (CPU_CLOCK / 4))) // This calculates how many loops of 4 nops to run to delay 100 ns # else # error("APA102_NOPS configuration required") diff --git a/generic_features.mk b/generic_features.mk new file mode 100644 index 000000000000..ff02d56bbe0a --- /dev/null +++ b/generic_features.mk @@ -0,0 +1,49 @@ +# Copyright 2021 QMK +# +# 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 . + +SPACE_CADET_ENABLE ?= yes +GRAVE_ESC_ENABLE ?= yes + +GENERIC_FEATURES = \ + COMBO \ + COMMAND \ + DIGITIZER \ + DIP_SWITCH \ + DYNAMIC_KEYMAP \ + DYNAMIC_MACRO \ + ENCODER \ + GRAVE_ESC \ + HAPTIC \ + KEY_LOCK \ + KEY_OVERRIDE \ + LEADER \ + PROGRAMMABLE_BUTTON \ + SPACE_CADET \ + TAP_DANCE \ + VELOCIKEY \ + WPM \ + +define HANDLE_GENERIC_FEATURE + # $$(info "Processing: $1_ENABLE $2.c") + SRC += $$(wildcard $$(QUANTUM_DIR)/process_keycode/process_$2.c) + SRC += $$(wildcard $$(QUANTUM_DIR)/$2.c) + OPT_DEFS += -D$1_ENABLE +endef + +$(foreach F,$(GENERIC_FEATURES),\ + $(if $(filter yes, $(strip $($(F)_ENABLE))),\ + $(eval $(call HANDLE_GENERIC_FEATURE,$(F),$(shell echo $(F) | tr '[:upper:]' '[:lower:]'))) \ + ) \ +) diff --git a/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h b/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h index 5084aa5b9fb9..6bb1a9a7f35a 100644 --- a/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h b/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 000000000000..09433f3f400c --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,24 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku +// generated -*- buffer-read-only: t -*- + +// 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 . + +#pragma once + +#define XXX KC_NO + +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_split_4x6_5( \ +XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ + K32, K33, K34, K35, K36, K37, \ + XXX, XXX, XXX, XXX \ +) diff --git a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 000000000000..7c5717a0fee0 --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,5 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku +// generated -*- buffer-read-only: t -*- + +// 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 . diff --git a/keyboards/boston_meetup/2019/rules.mk b/keyboards/boston_meetup/2019/rules.mk index b7b6870a2bee..6468f47b7d90 100644 --- a/keyboards/boston_meetup/2019/rules.mk +++ b/keyboards/boston_meetup/2019/rules.mk @@ -22,6 +22,7 @@ AUDIO_ENABLE = yes # Audio output RGBLIGHT_ENABLE = no RGB_MATRIX_ENABLE = no RGB_MATRIX_DRIVER = WS2812 -HAPTIC_ENABLE += DRV2605L +HAPTIC_ENABLE = yes +HAPTIC_DRIVER = DRV2605L OLED_ENABLE = yes OLED_DRIVER = SSD1306 diff --git a/keyboards/c39/keymaps/drashna/rules.mk b/keyboards/c39/keymaps/drashna/rules.mk index c05f6a4be4df..0e5a4cbebdaf 100644 --- a/keyboards/c39/keymaps/drashna/rules.mk +++ b/keyboards/c39/keymaps/drashna/rules.mk @@ -13,6 +13,7 @@ COMMAND_ENABLE = yes NKRO_ENABLE = yes AUDIO_ENABLE = yes UNICODE_ENABLE = yes -HAPTIC_ENABLE = SOLENOID +HAPTIC_ENABLE = yes +HAPTIC_DRIVER = SOLENOID RGBLIGHT_STARTUP_ANIMATION = yes diff --git a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h b/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h index 087fa5852e90..a246476ddcdc 100644 --- a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h b/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h index a29760509668..1794ba4fd6a6 100644 --- a/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/gergo/keymaps/manna-harbour_miryoku/config.h b/keyboards/gergo/keymaps/manna-harbour_miryoku/config.h index b1438e94ef75..2bfb5befb371 100644 --- a/keyboards/gergo/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/gergo/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/gmmk/pro/ansi/keymaps/benschaeff/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/benschaeff/keymap.c index 39eac038d140..5f3e3f5fd8f5 100644 --- a/keyboards/gmmk/pro/ansi/keymaps/benschaeff/keymap.c +++ b/keyboards/gmmk/pro/ansi/keymaps/benschaeff/keymap.c @@ -20,7 +20,7 @@ enum userspace_layers { }; //custom keycodes -#define MODS_ALT_MASK (MOD_BIT(KC_LALT)) // Make ALT layer for encoder use +#define MODS_ALT_MASK (MOD_BIT(KC_LALT)) // Make ALT layer for encoder use #define MODS_CTRL_MASK (MOD_BIT(KC_LCTL)) // Make CTRL layer for encoder use #define SWAP_L SGUI(KC_LEFT) // Swap application to left display #define SWAP_R SGUI(KC_RGHT) // Swap application to right display @@ -70,54 +70,58 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -bool encoder_update_user(uint8_t index, bool clockwise) -{ - if (get_mods() & MODS_ALT_MASK) - { - if (clockwise) - { - tap_code(KC_TAB); - } - else - { - tap_code16(S(KC_TAB)); - } - } - else if (get_mods() & MODS_CTRL_MASK) - { - if (clockwise) - { - tap_code(KC_TAB); - } - else - { - tap_code16(S(KC)_TAB)); - - } - } - else if(IS_LAYER_ON(FNLAYER)) - { - if(clockwise) - { - tap_code(KC_MEDIA_NEXT_TRACK); - } - else - { - tap_code(KC_MEDIA_PREV_TRACK); - } +bool encoder_update_user(uint8_t index, bool clockwise) { + if (get_mods() & MODS_ALT_MASK) { + if (clockwise) { + tap_code(KC_TAB); + } else { + tap_code16(S(KC_TAB)); + } + } else if (get_mods() & MODS_CTRL_MASK) { + if (clockwise) { + tap_code(KC_TAB); + } else { + tap_code16(S(KC_TAB)); + } + } else if(IS_LAYER_ON(FNLAYER)) { + if (clockwise) { + tap_code(KC_MEDIA_NEXT_TRACK); + } else { + tap_code(KC_MEDIA_PREV_TRACK); + } + } else { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } } - else - { - if (clockwise) - { - tap_code(KC_VOLU); - } - else - { - tap_code(KC_VOLD); - } - + return false; +} + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + switch(get_highest_layer(layer_state)) { + // special handling per layer + case 0: //layer one + if (host_keyboard_led_state().caps_lock) + rgb_matrix_set_color_all(255,0,0); + else + rgb_matrix_set_color_all(0,255,56); + break; + case 1: + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_INDICATOR_SET_COLOR(i,0,0,0); + } + RGB_MATRIX_INDICATOR_SET_COLOR(0, 0, 0, 255) //esc + RGB_MATRIX_INDICATOR_SET_COLOR(6, 0, 0, 255) //f1 + RGB_MATRIX_INDICATOR_SET_COLOR(8, 0, 0, 255) //q + RGB_MATRIX_INDICATOR_SET_COLOR(14, 0, 0, 255) //w + RGB_MATRIX_INDICATOR_SET_COLOR(20, 0, 0, 255) //e + RGB_MATRIX_INDICATOR_SET_COLOR(15, 0, 0, 255) //s + RGB_MATRIX_INDICATOR_SET_COLOR(26, 0, 0, 255) //f + RGB_MATRIX_INDICATOR_SET_COLOR(49, 0, 0, 255) //R_Alt + break; + default: + break; } - return true; - -} \ No newline at end of file +} diff --git a/keyboards/gmmk/pro/ansi/keymaps/benschaeff/readme.md b/keyboards/gmmk/pro/ansi/keymaps/benschaeff/readme.md new file mode 100644 index 000000000000..8162002892a9 --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/benschaeff/readme.md @@ -0,0 +1,19 @@ +# Description +Pretty simple keymap with a few handy tools on a 2nd layer and rotary encoder. + +# Encoder +Holding tab and scrolling encoder will allow scrolling through applications, as if using alt + tab +Holding ctrl and scrolling encoder will allow scrolling through chrome tabs +FN + Encoder scroll is media next/prev +FN + Encoder press is media pause +default encoder behavior is volume up/down + +# Function Layer +FN + \ is used to put keyboard into bootloader mode +FN + ESC is the same as alt F4, for closing applications +FN + F1 is to close current browser tab +FN + Q moves current application one monitor to the left +FN + W maximizes current application +FN + E moves current application one monitor to the right +FN + S minimizes current application +FN + F is used in junction with the "Popout tab" extension to chrome (https://chrome.google.com/webstore/detail/popout-tab/pcfcieidiaaobigemjnkclebhnmgfbco) to pop out current tab to its own window diff --git a/keyboards/hadron/ver3/rules.mk b/keyboards/hadron/ver3/rules.mk index ad753a5ff19e..c8681a141898 100644 --- a/keyboards/hadron/ver3/rules.mk +++ b/keyboards/hadron/ver3/rules.mk @@ -21,7 +21,8 @@ AUDIO_ENABLE = yes RGBLIGHT_ENABLE = yes RGB_MATRIX_ENABLE = no # once arm_rgb is implemented RGB_MATRIX_DRIVER = WS2812 -HAPTIC_ENABLE += DRV2605L +HAPTIC_ENABLE = yes +HAPTIC_DRIVER = DRV2605L OLED_ENABLE = yes OLED_DRIVER = SSD1306 ENCODER_ENABLER = yes diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h b/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h index 6348254503f8..27526140c922 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h index 232b3930bf9d..5a848d26e53b 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/handwired/onekey/keymaps/quine/rules.mk b/keyboards/handwired/onekey/keymaps/quine/rules.mk deleted file mode 100644 index 4c2b0289a2da..000000000000 --- a/keyboards/handwired/onekey/keymaps/quine/rules.mk +++ /dev/null @@ -1 +0,0 @@ -BOOTLOADER = atmel-dfu diff --git a/keyboards/handwired/onekey/readme.md b/keyboards/handwired/onekey/readme.md index b630b11748c3..2973b7d873a0 100644 --- a/keyboards/handwired/onekey/readme.md +++ b/keyboards/handwired/onekey/readme.md @@ -3,7 +3,7 @@ Custom handwired one key keyboard. **See each individual board for pin information.** * Keyboard Maintainer: QMK Community -* Hardware Supported: bluepill, Elite-C, Pro Micro, Proton C, Teensy 2.0, Teensy++ 2.0, Teensy LC, Teensy 3.2 +* Hardware Supported: Blackpill F401/F411, Bluepill, Elite-C, Pro Micro, Proton C, Sipeed Longan Nano, STM32F0 Disco, Teensy 2.0, Teensy++ 2.0, Teensy LC, Teensy 3.2 * Hardware Availability: *n/a* Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/chconf.h b/keyboards/handwired/onekey/sipeed_longan_nano/chconf.h new file mode 100644 index 000000000000..b1eb18de7813 --- /dev/null +++ b/keyboards/handwired/onekey/sipeed_longan_nano/chconf.h @@ -0,0 +1,23 @@ +/* Copyright 2021 QMK + * + * 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 . + */ + +#pragma once + +#define CH_CFG_ST_RESOLUTION 16 + +#define CH_CFG_ST_FREQUENCY 10000 + +#include_next diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/config.h b/keyboards/handwired/onekey/sipeed_longan_nano/config.h new file mode 100644 index 000000000000..1825b936d8ec --- /dev/null +++ b/keyboards/handwired/onekey/sipeed_longan_nano/config.h @@ -0,0 +1,37 @@ +/* Copyright 2021 QMK + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +#define MATRIX_COL_PINS \ + { B0 } +#define MATRIX_ROW_PINS \ + { A7 } +#define UNUSED_PINS + +#define BACKLIGHT_PIN A1 /* Green LED. */ +#define BACKLIGHT_PWM_DRIVER PWMD5 /* GD32 numbering scheme starts from 0, TIMER4 on GD32 boards is TIMER5 on STM32 boards. */ +#define BACKLIGHT_PWM_CHANNEL 2 /* GD32 numbering scheme starts from 0, Channel 1 on GD32 boards is Channel 2 on STM32 boards. */ + +#define RGB_DI_PIN A2 +#define RGB_CI_PIN B13 + +#define ADC_PIN A0 + +#define I2C1_CLOCK_SPEED 1000000 /* GD32VF103 supports fast mode plus. */ +#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/halconf.h b/keyboards/handwired/onekey/sipeed_longan_nano/halconf.h new file mode 100644 index 000000000000..2579c58747b2 --- /dev/null +++ b/keyboards/handwired/onekey/sipeed_longan_nano/halconf.h @@ -0,0 +1,23 @@ +/* Copyright 2021 QMK + * + * 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 . + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_ADC TRUE +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/mcuconf.h b/keyboards/handwired/onekey/sipeed_longan_nano/mcuconf.h new file mode 100644 index 000000000000..eba0dd9eebf5 --- /dev/null +++ b/keyboards/handwired/onekey/sipeed_longan_nano/mcuconf.h @@ -0,0 +1,29 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + ChibiOS - Copyright (C) 2021 Stefan Kerkmann + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#pragma once + +#include_next + +#undef GD32_ADC_USE_ADC0 +#define GD32_ADC_USE_ADC0 TRUE + +#undef GD32_I2C_USE_I2C0 +#define GD32_I2C_USE_I2C0 TRUE + +#undef GD32_PWM_USE_TIM4 +#define GD32_PWM_USE_TIM4 TRUE diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/readme.md b/keyboards/handwired/onekey/sipeed_longan_nano/readme.md new file mode 100644 index 000000000000..0a3a29157603 --- /dev/null +++ b/keyboards/handwired/onekey/sipeed_longan_nano/readme.md @@ -0,0 +1,5 @@ +# Sipeed Longan Nano onekey + +Supported Hardware: *GD32VF103CB Sipeed Longan Nano*. + +To trigger keypress, short together pins *B0* and *A7*. \ No newline at end of file diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk b/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk new file mode 100644 index 000000000000..aef4fee6b220 --- /dev/null +++ b/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk @@ -0,0 +1,11 @@ +# MCU name +MCU = GD32VF103 +BOARD = SIPEED_LONGAN_NANO + +# Bootloader selection +BOOTLOADER = gd32v-dfu + +# Build Options +# change yes to no to disable +# +KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h b/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h index e481e7841d1d..f171d4118147 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h @@ -17,13 +17,17 @@ #pragma once #include "tractyl_manuform.h" + #if defined(KEYBOARD_handwired_tractyl_manuform_5x6_right_f411) # include "f411.h" #elif defined(KEYBOARD_handwired_tractyl_manuform_5x6_right_f303) # include "f303.h" #elif defined(KEYBOARD_handwired_tractyl_manuform_5x6_right_teensy2pp) # include "teensy2pp.h" +#elif defined(KEYBOARD_handwired_tractyl_manuform_5x6_right_elite_c) +# include "elite_c.h" #endif + #include "quantum.h" #define ___ KC_NO diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/config.h index d1860c3378b9..cd42364b4f78 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/config.h @@ -50,3 +50,5 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION + +#define OLED_DISPLAY_128X64 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h new file mode 100644 index 000000000000..9daec0cd8f31 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h @@ -0,0 +1,52 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +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 . +*/ + +#pragma once + +#define PRODUCT Tractyl Manuform(5x6) Elite C + +// wiring of each half +#define MATRIX_COL_PINS \ + { D4, D7, E6, B4, B5, B7 } +#define MATRIX_ROW_PINS \ + { F7, F6, F5, F4, F1, F0 } + +#define DIODE_DIRECTION COL2ROW + +// WS2812 RGB LED strip input and number of LEDs +#define RGB_DI_PIN D3 +#define RGBLED_NUM 20 +#define RGBLIGHT_SPLIT +#define RGBLED_SPLIT \ + { 10, 10 } +#define RGBLIGHT_LIMIT_VAL 80 +#define OLED_BRIGHTNESS 50 + +#define AUDIO_PIN C6 + +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D2 +#define EE_HANDS + +#define ENCODERS_PAD_A \ + { D5 } +#define ENCODERS_PAD_B \ + { C7 } + +/* PMW3360 Settings */ +#define PMW3360_CS_PIN B6 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/elite_c.h b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/elite_c.h new file mode 100644 index 000000000000..525b0378b46f --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/elite_c.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * + * 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 . + */ + +#pragma once + +#include "5x6_right.h" diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/rules.mk new file mode 100644 index 000000000000..e594097f8bab --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/rules.mk @@ -0,0 +1,11 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +LTO_ENABLE := yes +RGBLIGHT_ENABLE = no +OLED_ENABLE = no +AUDIO_ENABLE = no +ENCODER_ENABLE = no diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h index b2a240f9ffff..172ccf7bc257 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h @@ -39,6 +39,7 @@ along with this program. If not, see . #define WS2812_PWM_DRIVER PWMD2 // default: PWMD2 #define WS2812_PWM_CHANNEL 2 // default: 2 #define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 +#define WS2812_EXTERNAL_PULLUP //#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy). #define WS2812_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. #define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. @@ -47,7 +48,7 @@ along with this program. If not, see . #define RGBLIGHT_SPLIT #define RGBLED_SPLIT \ { 10, 10 } -#define RGBLIGHT_LIMIT_VAL 80 +#define RGBLIGHT_LMIT_VAL 80 #define DEBUG_LED_PIN C13 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/readme.md b/keyboards/handwired/tractyl_manuform/5x6_right/f411/readme.md index 637761381440..5fb2c0fc72ba 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/readme.md +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/readme.md @@ -9,7 +9,8 @@ * 8KB SPI EEPROM chip sharing PA5-PA7 on SPI1 with PA4 as CS pin * Encoder using PA13 and PA14 * SSD1306 OLED display (128x64) using PB8-PB9 on I2C1 -* Pull-up resistor (22k) on A10 to fix reset issue. +* Pull-up resistor (22k) on PA10 to fix reset issue. +* Pull-up resistor (5.1k) on PA1 for WS2812 LED support, and wire it's VCC to the 5V pin. * Keyboard Maintainer: [Drashna Jael're](https://github.com/drashna) * Hardware Supported: [Design files](https://gitlab.com/keyboards1/dm_r_track/-/tree/master/boolean), [WeAct BlackPill (F411)](https://github.com/WeActTC/MiniSTM32F4x1), [PMW3360 Optical Sensor](https://www.tindie.com/products/jkicklighter/pmw3360-motion-sensor/) diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h index 21bc8e616a99..df3e877f9849 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h @@ -24,13 +24,8 @@ #define TRACKBALL_DPI_OPTIONS { 1200, 1800, 2600, 3400 } -#define RGBLIGHT_MAX_BRIGHTNESS 60 - #undef DEBOUNCE #define DEBOUNCE 10 #define SOLENOID_PIN F1 #define SOLENOID_DEFAULT_DWELL 8 - -#define OLED_DISPLAY_128X64 -#define OLED_BRIGHTNESS 50 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c index f2092063374d..abfec41a62ec 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c +++ b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c @@ -117,7 +117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_5x6_right_wrapper( KC_MAKE, ___________________BLANK___________________, _________________ADJUST_R1_________________, KC_RST, VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EEP_RST, - _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG_MODS, + KEYLOCK, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG_MODS, UC_MOD, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY, HPT_DWLI, HPT_DWLD, TG_GAME, TG_DBLO, HPT_TOG, HPT_BUZ, KC_NUKE, @@ -348,9 +348,16 @@ void render_kitty(void) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x06, 0x04, 0x04, 0x04, 0x04, 0x05, 0x04, 0x04, 0x04, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; // assumes 1 frame prep stage +#ifdef SWAP_HANDS_ENABLE extern bool swap_hands; +#endif void animation_phase(void) { - if (tap_toggling) { +# ifdef SWAP_HANDS_ENABLE + if (swap_hands) +#else + if (tap_toggling) +#endif + { anim_frame_duration = 300; current_rtogi_frame = (current_rtogi_frame + 1) % RTOGI_FRAMES; oled_write_raw_P(rtogi[abs((RTOGI_FRAMES - 1) - current_rtogi_frame)], ANIM_SIZE); diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h index 2391020598af..442d474920ec 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h @@ -35,6 +35,7 @@ along with this program. If not, see . #define RGBLED_SPLIT \ { 10, 10 } #define RGBLIGHT_LIMIT_VAL 80 +#define OLED_BRIGHTNESS 50 #define DEBUG_LED_PIN D6 diff --git a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/rules.mk b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/rules.mk index 507f4fcd377f..7837adcbd358 100644 --- a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/rules.mk +++ b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/rules.mk @@ -22,4 +22,5 @@ ENCODER_ENABLE = no # Enable rotary encoder support AUDIO_ENABLE = no # Audio output KEYBOARD_SHARED_EP = yes # Free up some extra endpoints - needed if console+mouse+extra -HAPTIC_ENABLE += SOLENOID +HAPTIC_ENABLE = yes +HAPTIC_DRIVER = SOLENOID diff --git a/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h b/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h index 0e9415edeb56..2a737462ddf6 100644 --- a/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/keebio/quefrency/keymaps/rogthefrog/config.h b/keyboards/keebio/quefrency/keymaps/rogthefrog/config.h index 583a363b91b1..2332c4f523b8 100644 --- a/keyboards/keebio/quefrency/keymaps/rogthefrog/config.h +++ b/keyboards/keebio/quefrency/keymaps/rogthefrog/config.h @@ -4,7 +4,7 @@ This is the c configuration file for the keymap Copyright 2012 Jun Wako Copyright 2015 Jack Humbert Copyright 2018 Danny Nguyen -Copyright 2020 Roger Billerey-Mosier +Copyright 2021 Roger Billerey-Mosier 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 diff --git a/keyboards/keebio/quefrency/keymaps/rogthefrog/keymap.c b/keyboards/keebio/quefrency/keymaps/rogthefrog/keymap.c index f4a306f70f57..0cc0cfe2b40b 100644 --- a/keyboards/keebio/quefrency/keymaps/rogthefrog/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/rogthefrog/keymap.c @@ -1,5 +1,5 @@ /* - Copyright 2020 Roger Billerey-Mosier + Copyright 2021 Roger Billerey-Mosier 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 @@ -34,13 +34,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_END, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_ENT, MO(_FN1), KC_SPC, KC_NO, KC_APP, KC_PSCR, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT - ), + KC_LCTL, KC_LGUI, KC_LALT, KC_ENT, MO(_FN1), KC_SPC, KC_NO, LCTL(KC_C), LCTL(KC_V), KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT + ), [_FN1] = LAYOUT_65( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, + KC_ESC, KC_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_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, + _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, KC_MUTE, KC_MPRV, KC_VOLD, KC_MNXT ) }; diff --git a/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h b/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h index 97e4d23d8aa4..3de799f942b0 100644 --- a/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/kiwikeebs/macro_v2/config.h b/keyboards/kiwikeebs/macro_v2/config.h index ab486fe54db9..9ecc4d6686b6 100644 --- a/keyboards/kiwikeebs/macro_v2/config.h +++ b/keyboards/kiwikeebs/macro_v2/config.h @@ -40,15 +40,15 @@ along with this program. If not, see . * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * */ -#define MATRIX_ROW_PINS { E6, D7 } -#define MATRIX_COL_PINS { F7, B1, B3, B2 } +#define MATRIX_ROW_PINS { B5, B4 } +#define MATRIX_COL_PINS { B6, C6, C7, D4 } #define UNUSED_PINS /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -#define ENCODERS_PAD_A { D1 } -#define ENCODERS_PAD_B { D0 } +#define ENCODERS_PAD_A { D7 } +#define ENCODERS_PAD_B { D6 } /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/lily58/keymaps/manna-harbour_miryoku/config.h b/keyboards/lily58/keymaps/manna-harbour_miryoku/config.h index 14a0afbfeefd..1e1a2802ff11 100644 --- a/keyboards/lily58/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/lily58/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/moonlander/keymaps/drashna/keymap.c b/keyboards/moonlander/keymaps/drashna/keymap.c index f6af7e53af25..257959c07f38 100644 --- a/keyboards/moonlander/keymaps/drashna/keymap.c +++ b/keyboards/moonlander/keymaps/drashna/keymap.c @@ -105,7 +105,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MAKE, _________________FUNC_LEFT_________________, UC_MOD, KC_NUKE, _________________ADJUST_R1_________________, KC_RST, VRSN, _________________ADJUST_L1_________________, _______, _______, _________________ADJUST_R1_________________, EEP_RST, _______, _________________ADJUST_L2_________________, _______, _______, _________________ADJUST_R2_________________, RGB_IDL, - _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS, + KEYLOCK, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h b/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h index ad6eee368239..6ea1541da295 100644 --- a/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/ploopyco/trackball_nano/readme.md b/keyboards/ploopyco/trackball_nano/readme.md index 8a293602a8e2..a82b3bc71111 100644 --- a/keyboards/ploopyco/trackball_nano/readme.md +++ b/keyboards/ploopyco/trackball_nano/readme.md @@ -2,7 +2,7 @@ # Ploopy Trackball Nano -![Ploopyco Trackball Nano](https://www.ploopy.co/uploads/b/113cb4122f867acc306a72a2741c5237a9b1d0db13abfe4e8e394cd466c4a311/_MG_7710_1614037372.jpg) +![Ploopyco Trackball Nano](https://ploopy.co/wp-content/uploads/2021/06/2.jpg) It's a DIY, QMK Powered Trackball...Nano! @@ -28,7 +28,7 @@ Occasionally, new revisions of the PCB will be released. Every board comes with Match the firmware that you flash onto the board with the designator on the board. -# Customzing your Ploopy Nano Trackball +# Customizing your Ploopy Nano Trackball You can change the DPI/CPI or speed of the trackball by calling `adns_set_cpi` at any time. Additionally, there is a `DPI_CONFIG` macro that will cycle through an array of options for the DPI. This is set to 375, 750, and 1375, but can be changed. 750 is the default. @@ -51,4 +51,4 @@ When flashing the bootloader, use the following fuse settings: |----------|-------------| | Low | `0x5E` | | High | `0x99` | -| Extended | `0xC3` | \ No newline at end of file +| Extended | `0xC3` | diff --git a/keyboards/pluckey/config.h b/keyboards/pluckey/config.h new file mode 100644 index 000000000000..295fe93a8536 --- /dev/null +++ b/keyboards/pluckey/config.h @@ -0,0 +1,90 @@ +/* +Copyright 2021 floookay + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xF100 +#define PRODUCT_ID 0x91CE +#define DEVICE_VER 0x0001 +#define MANUFACTURER floookay +#define PRODUCT pluckey + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +/* + * Keyboard Matrix Assignments + * + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B4, F5, F6, B6, B5 } +#define MATRIX_COL_PINS { D1, D0, D4, C6, D7, E6, F7 } +#define UNUSED_PINS { F4, B1 } +#define DIODE_DIRECTION COL2ROW + +/* encoder support */ +#define ENCODERS_PAD_A { B3 } +#define ENCODERS_PAD_B { B2 } +#define ENCODER_RESOLUTION 2 +#define ENCODERS_PAD_A_RIGHT { B2 } +#define ENCODERS_PAD_B_RIGHT { B3 } +#define ENCODER_RESOLUTION_RIGHT 2 + +/* communication between sides */ +#define USE_SERIAL +#define SOFT_SERIAL_PIN D2 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/pluckey/info.json b/keyboards/pluckey/info.json new file mode 100644 index 000000000000..0a6bd1832dfd --- /dev/null +++ b/keyboards/pluckey/info.json @@ -0,0 +1,149 @@ +{ + "keyboard_name": "pluckey", + "url": "https://github.com/floookay/pluckey", + "maintainer": "floookay", + "layouts": { + "LAYOUT": { + "layout": [ + {"x":3.5, "y":0}, + {"x":15, "y":0}, + {"x":2.5, "y":0.125}, + {"x":4.5, "y":0.125}, + {"x":14, "y":0.125}, + {"x":16, "y":0.125}, + {"x":5.5, "y":0.25}, + {"x":6.5, "y":0.25}, + {"x":12, "y":0.25}, + {"x":13, "y":0.25}, + {"x":0, "y":0.625, "w":1.5}, + {"x":1.5, "y":0.625}, + {"x":17, "y":0.625}, + {"x":18, "y":0.625, "w":1.5}, + {"x":3.5, "y":1.0}, + {"x":15, "y":1.0}, + {"x":2.5, "y":1.125}, + {"x":4.5, "y":1.125}, + {"x":14, "y":1.125}, + {"x":16, "y":1.125}, + {"x":5.5, "y":1.25}, + {"x":6.5, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":0, "y":1.625, "w":1.5}, + {"x":1.5, "y":1.625}, + {"x":17, "y":1.625}, + {"x":18, "y":1.625, "w":1.5}, + {"x":3.5, "y":2}, + {"x":15, "y":2}, + {"x":2.5, "y":2.125}, + {"x":4.5, "y":2.125}, + {"x":14, "y":2.125}, + {"x":16, "y":2.125}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":12, "y":2.25}, + {"x":13, "y":2.25}, + {"x":0, "y":2.625, "w":1.5}, + {"x":1.5, "y":2.625}, + {"x":17, "y":2.625}, + {"x":18, "y":2.625, "w":1.5}, + {"x":6.5, "y":3.25}, + {"x":12, "y":3.25}, + {"x":3.5, "y":3}, + {"x":15, "y":3}, + {"x":2.5, "y":3.125}, + {"x":4.5, "y":3.125}, + {"x":14, "y":3.125}, + {"x":16, "y":3.125}, + {"x":5.5, "y":3.25}, + {"x":13, "y":3.25}, + {"x":0, "y":3.625, "w":1.5}, + {"x":1.5, "y":3.625}, + {"x":17, "y":3.625}, + {"x":18, "y":3.625, "w":1.5}, + {"x":7.5, "y":3.75}, + {"x":11, "y":3.75}, + {"x":3.5, "y":4}, + {"x":15, "y":4}, + {"x":2.5, "y":4.125}, + {"x":4.5, "y":4.125}, + {"x":14, "y":4.125}, + {"x":16, "y":4.125}, + {"x":5.75, "y":4.5, "w":1.5}, + {"x":12.25, "y":4.5, "w":1.5}, + {"x":7.25, "y":4.75}, + {"x":11.25, "y":4.75} + ] + }, + "LAYOUT_ergo": { + "layout": [ + {"x":3.5, "y":0}, + {"x":15, "y":0}, + {"x":2.5, "y":0.125}, + {"x":4.5, "y":0.125}, + {"x":14, "y":0.125}, + {"x":16, "y":0.125}, + {"x":5.5, "y":0.25}, + {"x":6.5, "y":0.25}, + {"x":12, "y":0.25}, + {"x":13, "y":0.25}, + {"x":0, "y":0.625, "w":1.5}, + {"x":1.5, "y":0.625}, + {"x":17, "y":0.625}, + {"x":18, "y":0.625, "w":1.5}, + {"x":3.5, "y":1.0}, + {"x":15, "y":1.0}, + {"x":2.5, "y":1.125}, + {"x":4.5, "y":1.125}, + {"x":14, "y":1.125}, + {"x":16, "y":1.125}, + {"x":5.5, "y":1.25}, + {"x":6.5, "y":1.25, "h":1.5}, + {"x":12, "y":1.25, "h":1.5}, + {"x":13, "y":1.25}, + {"x":0, "y":1.625, "w":1.5}, + {"x":1.5, "y":1.625}, + {"x":17, "y":1.625}, + {"x":18, "y":1.625, "w":1.5}, + {"x":3.5, "y":2}, + {"x":15, "y":2}, + {"x":2.5, "y":2.125}, + {"x":4.5, "y":2.125}, + {"x":14, "y":2.125}, + {"x":16, "y":2.125}, + {"x":5.5, "y":2.25}, + {"x":13, "y":2.25}, + {"x":0, "y":2.625, "w":1.5}, + {"x":1.5, "y":2.625}, + {"x":17, "y":2.625}, + {"x":18, "y":2.625, "w":1.5}, + {"x":6.5, "y":2.75, "h":1.5}, + {"x":12, "y":2.75, "h":1.5}, + {"x":3.5, "y":3}, + {"x":15, "y":3}, + {"x":2.5, "y":3.125}, + {"x":4.5, "y":3.125}, + {"x":14, "y":3.125}, + {"x":16, "y":3.125}, + {"x":5.5, "y":3.25}, + {"x":13, "y":3.25}, + {"x":0, "y":3.625, "w":1.5}, + {"x":1.5, "y":3.625}, + {"x":17, "y":3.625}, + {"x":18, "y":3.625, "w":1.5}, + {"x":7.5, "y":3.75}, + {"x":11, "y":3.75}, + {"x":3.5, "y":4}, + {"x":15, "y":4}, + {"x":2.5, "y":4.125}, + {"x":4.5, "y":4.125}, + {"x":14, "y":4.125}, + {"x":16, "y":4.125}, + {"x":5.75, "y":4.5, "w":1.5}, + {"x":12.25, "y":4.5, "w":1.5}, + {"x":7.25, "y":4.75}, + {"x":11.25, "y":4.75} + ] + } + } +} diff --git a/keyboards/pluckey/keymaps/default/keymap.c b/keyboards/pluckey/keymaps/default/keymap.c new file mode 100644 index 000000000000..31042fc6925c --- /dev/null +++ b/keyboards/pluckey/keymaps/default/keymap.c @@ -0,0 +1,77 @@ +/* Copyright 2021 floookay + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _ADJUST +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + M_ARROW +}; + +#define MO_LOW MO(_LOWER) +#define MO_RAIS MO(_RAISE) +#define MO_ADJU MO(_ADJUST) +#define MO_CURR _______ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_HOME, KC_END, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI, KC_LALT, MO_LOW, KC_SPC, KC_BSPC, KC_ENT, KC_SPC, MO_RAIS, KC_RALT, KC_MEH + ), + [_LOWER] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PSCR, + _______, _______, _______, _______, KC_PIPE, KC_UNDS, KC_LPRN, KC_RPRN, KC_PLUS, KC_PIPE, _______, _______, _______, _______, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_LPRN, KC_RPRN, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + _______, _______, _______, _______, _______, _______, M_ARROW, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, + _______, _______, MO_CURR, _______, KC_DEL, _______, _______, MO_ADJU, _______, _______ + ), + [_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, + _______, _______, _______, KC_VOLU, _______, _______, KC_LPRN, KC_RPRN, _______, KC_BTN4, KC_UP, KC_BTN5, _______, _______, + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_LPRN, KC_RPRN, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, + _______, _______, _______, KC_VOLD, _______, _______, M_ARROW, KC_PGUP, KC_PGDN, _______, _______, _______, KC_PGDN, _______, _______, _______, + _______, _______, MO_ADJU, _______, KC_DEL, _______, _______, MO_CURR, _______, _______ + ), + [_ADJUST] = LAYOUT( + KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_CLR, _______, _______, _______, _______, _______ + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case M_ARROW: + if (record->event.pressed) { + SEND_STRING("->"); + } + break; + } + return true; +} diff --git a/keyboards/pluckey/keymaps/default/readme.md b/keyboards/pluckey/keymaps/default/readme.md new file mode 100644 index 000000000000..d94d03e5887b --- /dev/null +++ b/keyboards/pluckey/keymaps/default/readme.md @@ -0,0 +1,4 @@ +# Default keymap + +![keymap](https://gist.githubusercontent.com/floookay/ea7313862e407c9b5aaea3d6ed3ce233/raw/0a37fe682f76bbaa55cbc56527e4666bedbf5761/layout.png) +[Keyboard-Layout-Editor](http://www.keyboard-layout-editor.com/#/gists/13c9d00bd0c0c9e3fe3b3d8d98672ef9) [(raw)](https://gist.github.com/floookay/13c9d00bd0c0c9e3fe3b3d8d98672ef9) diff --git a/keyboards/pluckey/pluckey.c b/keyboards/pluckey/pluckey.c new file mode 100644 index 000000000000..d9025726fd59 --- /dev/null +++ b/keyboards/pluckey/pluckey.c @@ -0,0 +1,38 @@ +/* Copyright 2021 floookay + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "pluckey.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + } + else if (index == 1) { + if (clockwise) { + tap_code(KC_WH_U); + } else { + tap_code(KC_WH_D); + } + } + return true; +} +#endif diff --git a/keyboards/pluckey/pluckey.h b/keyboards/pluckey/pluckey.h new file mode 100644 index 000000000000..628a89baa9a1 --- /dev/null +++ b/keyboards/pluckey/pluckey.h @@ -0,0 +1,46 @@ +/* Copyright 2021 floookay + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + l00, l01, l02, l03, l04, l05, l06, r00, r01, r02, r03, r04, r05, r06, \ + l10, l11, l12, l13, l14, l15, l16, r10, r11, r12, r13, r14, r15, r16, \ + l20, l21, l22, l23, l24, l25, l26, r20, r21, r22, r23, r24, r25, r26, \ + l30, l31, l32, l33, l34, l35, l36, l41, r45, r30, r31, r32, r33, r34, r35, r36, \ + l42, l43, l44, l45, l46, r40, r41, r42, r43, r44 \ +){ \ + { l00, l01, l02, l03, l04, l05, l06 }, \ + { l10, l11, l12, l13, l14, l15, l16 }, \ + { l20, l21, l22, l23, l24, l25, l26 }, \ + { l30, l31, l32, l33, l34, l35, l36 }, \ + { KC_NO, l41, l42, l43, l44, l45, l46 }, \ + { r06, r05, r04, r03, r02, r01, r00 }, \ + { r16, r15, r14, r13, r12, r11, r10 }, \ + { r26, r25, r24, r23, r22, r21, r20 }, \ + { r36, r35, r34, r33, r32, r31, r30 }, \ + { KC_NO, r45, r44, r43, r42, r41, r40 } \ +} diff --git a/keyboards/pluckey/readme.md b/keyboards/pluckey/readme.md new file mode 100644 index 000000000000..b0a1af99b88a --- /dev/null +++ b/keyboards/pluckey/readme.md @@ -0,0 +1,19 @@ +# Pluckey + +![pluckey](https://gist.githubusercontent.com/floookay/ea7313862e407c9b5aaea3d6ed3ce233/raw/1757078b1adf7ac4d51d74f445107bdb46e013a3/sandwich%2520angle.jpg) + +The pluckey is an ergodox like split keyboard with moderate columnal stagger and a horizontal space key. + +* Keyboard Maintainer: [floookay](https://github.com/floookay) +* Hardware Supported: pluckey pcbs with pro micro controllers +* Hardware Availability: [pcb & case files](https://github.com/floookay/pluckey) + +Make example for this keyboard (after setting up your build environment): + + make pluckey:default + +Flashing example for this keyboard: + + make pluckey:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/pluckey/rules.mk b/keyboards/pluckey/rules.mk new file mode 100644 index 000000000000..4f4954434b29 --- /dev/null +++ b/keyboards/pluckey/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes +SPLIT_KEYBOARD = yes diff --git a/keyboards/preonic/rev3_drop/matrix.c b/keyboards/preonic/rev3_drop/matrix.c index 392997e0a52c..07171a39e9d1 100644 --- a/keyboards/preonic/rev3_drop/matrix.c +++ b/keyboards/preonic/rev3_drop/matrix.c @@ -24,13 +24,15 @@ #include "debug.h" #include "matrix.h" +typedef uint16_t matrix_col_t; + /* * col: { B11, B10, B2, B1, A7, B0 } * row: { A10, A9, A8, B15, C13, C14, C15, A2 } */ /* matrix state(1:on, 0:off) */ static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_COLS]; +static matrix_col_t matrix_debouncing[MATRIX_COLS]; static bool debouncing = false; static uint16_t debouncing_time = 0; @@ -66,7 +68,7 @@ void matrix_init(void) { palSetPadMode(GPIOA, 6, PAL_MODE_INPUT_PULLDOWN); memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t)); + memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_col_t)); matrix_init_quantum(); } @@ -74,7 +76,7 @@ void matrix_init(void) { uint8_t matrix_scan(void) { // actual matrix for (int col = 0; col < MATRIX_COLS; col++) { - matrix_row_t data = 0; + matrix_col_t data = 0; // strobe col { B11, B10, B2, B1, A7, B0 } switch (col) { diff --git a/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h b/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h index f426e2f79f04..ffc0d9879873 100644 --- a/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/senselessclay/ck60/ck60.c b/keyboards/senselessclay/ck60/ck60.c new file mode 100644 index 000000000000..a2fe38aac799 --- /dev/null +++ b/keyboards/senselessclay/ck60/ck60.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ck60.h" \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/ck60.h b/keyboards/senselessclay/ck60/ck60.h new file mode 100644 index 000000000000..fa83202dfa57 --- /dev/null +++ b/keyboards/senselessclay/ck60/ck60.h @@ -0,0 +1,35 @@ +/* Copyright 2020 Hadi Iskandarani + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K401, K402, K406, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, ____ }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, ____ }, \ + { K400, K401, K402, ____, ____, ____, K406, ____, ____, ____, K410, K411, K412, K413 } \ +} diff --git a/keyboards/senselessclay/ck60/config.h b/keyboards/senselessclay/ck60/config.h new file mode 100644 index 000000000000..7e4a493701a6 --- /dev/null +++ b/keyboards/senselessclay/ck60/config.h @@ -0,0 +1,119 @@ +/* +Copyright 2020 Hadi Iskandarani + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4849 // HI +#define PRODUCT_ID 0x0601 // 60rgb (1) +#define DEVICE_VER 0x0000 // rev0 +#define MANUFACTURER senselessclay +#define PRODUCT ck60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +/* rev0 */ +#define MATRIX_ROW_PINS { B3, B2, F1, F4, F5 } +#define MATRIX_COL_PINS { F0, D5, D3, D2, D1, D0, C7, C6, B6, B5, B4, D7, D6, D4 } + +//#define UNUSED_PINS { B0, B7, E6 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 + +/* RGB Backlighting */ +#define RGB_DI_PIN B1 +#define RGBLED_NUM 62 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_LIMIT_VAL 128 +#define RGBLIGHT_SLEEP +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL+5 \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/info.json b/keyboards/senselessclay/ck60/info.json new file mode 100644 index 000000000000..e188740c3c23 --- /dev/null +++ b/keyboards/senselessclay/ck60/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "CK60", + "url": "https://candykeys.com", + "maintainer": "hadi", + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":2.75}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] + } + } +} \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/keymaps/default/keymap.c b/keyboards/senselessclay/ck60/keymaps/default/keymap.c new file mode 100644 index 000000000000..2ac1e069817e --- /dev/null +++ b/keyboards/senselessclay/ck60/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers { + _0, + _1, + _2, + _3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_0] = LAYOUT( + /*Base*/ + 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_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_ENT, + 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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + [_1] = LAYOUT( + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, + KC_CAPS, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/keymaps/via/keymap.c b/keyboards/senselessclay/ck60/keymaps/via/keymap.c new file mode 100644 index 000000000000..2ac1e069817e --- /dev/null +++ b/keyboards/senselessclay/ck60/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers { + _0, + _1, + _2, + _3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_0] = LAYOUT( + /*Base*/ + 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_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_ENT, + 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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + [_1] = LAYOUT( + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, + KC_CAPS, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/keymaps/via/rules.mk b/keyboards/senselessclay/ck60/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/senselessclay/ck60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/readme.md b/keyboards/senselessclay/ck60/readme.md new file mode 100644 index 000000000000..32700967da2c --- /dev/null +++ b/keyboards/senselessclay/ck60/readme.md @@ -0,0 +1,19 @@ +# ck60 + +A 60% keyboard implementation based around the ATMEGA32u4 with per-key RGB. + +* Keyboard Maintainer: [hadi](https://github.com/senselessclay) +* Hardware Supported: CK60 PCB +* Hardware Availability: https://candykeys.com/ + +Make example for this keyboard (after setting up your build environment): + + make senselessclay/ck60:default + +Flashing example for this keyboard: + + make senselessclay/ck60:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/rules.mk b/keyboards/senselessclay/ck60/rules.mk new file mode 100644 index 000000000000..56ba35b4b857 --- /dev/null +++ b/keyboards/senselessclay/ck60/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/ck65.c b/keyboards/senselessclay/ck65/ck65.c new file mode 100644 index 000000000000..77128d9bf824 --- /dev/null +++ b/keyboards/senselessclay/ck65/ck65.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ck65.h" \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/ck65.h b/keyboards/senselessclay/ck65/ck65.h new file mode 100644 index 000000000000..1d258ee34652 --- /dev/null +++ b/keyboards/senselessclay/ck65/ck65.h @@ -0,0 +1,35 @@ +/* Copyright 2020 Hadi Iskandarani + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K406, K409, K410, K411, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, ____, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, ____, ____, ____, K406, ____, ____, K409, K410, K411, K412, K413, K414 } \ +} diff --git a/keyboards/senselessclay/ck65/config.h b/keyboards/senselessclay/ck65/config.h new file mode 100644 index 000000000000..772b2e410a2a --- /dev/null +++ b/keyboards/senselessclay/ck65/config.h @@ -0,0 +1,119 @@ +/* +Copyright 2020 Hadi Iskandarani + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4849 // HI +#define PRODUCT_ID 0x0651 // 65rgb (1) +#define DEVICE_VER 0x0000 // rev0 +#define MANUFACTURER senselessclay +#define PRODUCT ck65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +/* rev0 */ +#define MATRIX_ROW_PINS { B3, B2, F1, F4, F5 } +#define MATRIX_COL_PINS { F0, D5, D3, D2, D1, D0, F7, C7, C6, B6, B5, B4, D7, D6, D4 } + +//#define UNUSED_PINS { B0, B7, E6 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 + +/* RGB Backlighting */ +#define RGB_DI_PIN B1 +#define RGBLED_NUM 69 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_LIMIT_VAL 122 +#define RGBLIGHT_SLEEP +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL+5 \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/info.json b/keyboards/senselessclay/ck65/info.json new file mode 100644 index 000000000000..fbcc95937615 --- /dev/null +++ b/keyboards/senselessclay/ck65/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "CK65", + "url": "https://candykeys.com", + "maintainer": "hadi", + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/keymaps/default/keymap.c b/keyboards/senselessclay/ck65/keymaps/default/keymap.c new file mode 100644 index 000000000000..be627f899df0 --- /dev/null +++ b/keyboards/senselessclay/ck65/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers { + _0, + _1, + _2, + _3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_0] = LAYOUT( + /*Base*/ + 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_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_ENT, KC_END, + 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_PGUP, + 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), + [_1] = LAYOUT( + 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/keymaps/via/keymap.c b/keyboards/senselessclay/ck65/keymaps/via/keymap.c new file mode 100644 index 000000000000..be627f899df0 --- /dev/null +++ b/keyboards/senselessclay/ck65/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers { + _0, + _1, + _2, + _3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_0] = LAYOUT( + /*Base*/ + 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_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_ENT, KC_END, + 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_PGUP, + 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), + [_1] = LAYOUT( + 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/keymaps/via/rules.mk b/keyboards/senselessclay/ck65/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/senselessclay/ck65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/readme.md b/keyboards/senselessclay/ck65/readme.md new file mode 100644 index 000000000000..653266a59f64 --- /dev/null +++ b/keyboards/senselessclay/ck65/readme.md @@ -0,0 +1,19 @@ +# ck65 + +A 65% keyboard implementation based around the ATMEGA32u4 with per-key RGB. + +* Keyboard Maintainer: [hadi](https://github.com/senselessclay) +* Hardware Supported: CK65 PCB +* Hardware Availability: https://candykeys.com/ + +Make example for this keyboard (after setting up your build environment): + + make senselessclay/ck65:default + +Flashing example for this keyboard: + + make senselessclay/ck65:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/rules.mk b/keyboards/senselessclay/ck65/rules.mk new file mode 100644 index 000000000000..56ba35b4b857 --- /dev/null +++ b/keyboards/senselessclay/ck65/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h b/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h index 53825775cc69..8372e1016849 100644 --- a/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/spiderisland/winry25tc/config.h b/keyboards/spiderisland/winry25tc/config.h new file mode 100644 index 000000000000..1e7ff4c63b2a --- /dev/null +++ b/keyboards/spiderisland/winry25tc/config.h @@ -0,0 +1,41 @@ +/* Copyright 2021 Andrzej Ressel (andrzej.ressel@gmail.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER SpiderIsland +#define PRODUCT Winry 25tc + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 5 + +#define MATRIX_ROW_PINS { E6, F0, D6, D2, B6 } +#define MATRIX_COL_PINS { F5, C7, B7, B2, B4 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN D5 +#define RGBLED_NUM 40 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 150 /* The maximum brightness level */ diff --git a/keyboards/spiderisland/winry25tc/info.json b/keyboards/spiderisland/winry25tc/info.json new file mode 100644 index 000000000000..8e503bc74a15 --- /dev/null +++ b/keyboards/spiderisland/winry25tc/info.json @@ -0,0 +1,36 @@ +{ + "keyboard_name": "Winry 25tc", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (E6,F5)", "x":0, "y":0}, + {"label":"K01 (E6,C7)", "x":1, "y":0}, + {"label":"K02 (E6,B7)", "x":2, "y":0}, + {"label":"K03 (E6,B2)", "x":3, "y":0}, + {"label":"K04 (E6,B4)", "x":4, "y":0}, + {"label":"K10 (F0,F5)", "x":0, "y":1}, + {"label":"K11 (F0,C7)", "x":1, "y":1}, + {"label":"K12 (F0,B7)", "x":2, "y":1}, + {"label":"K13 (F0,B2)", "x":3, "y":1}, + {"label":"K14 (F0,B4)", "x":4, "y":1}, + {"label":"K20 (D6,F5)", "x":0, "y":2}, + {"label":"K21 (D6,C7)", "x":1, "y":2}, + {"label":"K22 (D6,B7)", "x":2, "y":2}, + {"label":"K23 (D6,B2)", "x":3, "y":2}, + {"label":"K24 (D6,B4)", "x":4, "y":2}, + {"label":"K30 (D2,F5)", "x":0, "y":3}, + {"label":"K31 (D2,C7)", "x":1, "y":3}, + {"label":"K32 (D2,B7)", "x":2, "y":3}, + {"label":"K33 (D2,B2)", "x":3, "y":3}, + {"label":"K34 (D2,B4)", "x":4, "y":3}, + {"label":"K40 (B6,F5)", "x":0, "y":4}, + {"label":"K41 (B6,C7)", "x":1, "y":4}, + {"label":"K42 (B6,B7)", "x":2, "y":4}, + {"label":"K43 (B6,B2)", "x":3, "y":4}, + {"label":"K44 (B6,B4)", "x":4, "y":4} + ] + } + } +} diff --git a/keyboards/spiderisland/winry25tc/keymaps/default/keymap.c b/keyboards/spiderisland/winry25tc/keymaps/default/keymap.c new file mode 100644 index 000000000000..ec1d0f42edc9 --- /dev/null +++ b/keyboards/spiderisland/winry25tc/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2021 Andrzej Ressel (andrzej.ressel@gmail.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum my_layers { + _FIRST_LAYER, + _SECOND_LAYER +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_FIRST_LAYER] = LAYOUT( + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_ESC, + KC_P7, KC_P8, KC_P9, KC_PPLS, RGB_TOG, + KC_P4, KC_P5, KC_P6, KC_PENT, RGB_MOD, + KC_P1, KC_P2, KC_P3, KC_UP, MO(_SECOND_LAYER), + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_SECOND_LAYER] = LAYOUT( + 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_MUTE, KC_VOLD, KC_VOLU, + KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, _______, + KC_RSFT, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), +}; diff --git a/keyboards/spiderisland/winry25tc/readme.md b/keyboards/spiderisland/winry25tc/readme.md new file mode 100644 index 000000000000..45ba0bd5a42a --- /dev/null +++ b/keyboards/spiderisland/winry25tc/readme.md @@ -0,0 +1,14 @@ +# SpiderIsland 25-key RGB Backlight Hot Swap Mechanical Keyboard + +Keyboard from [SpiderIsland on AliExpress](https://a.aliexpress.com/_dVJsSpR). Seller provides [kbfirmware](https://kbfirmware.com/) JSON config that was converted to QMK. + +* Keyboard Maintainer: [andrzejressel](https://github.com/andrzejressel) +* Hardware Availability: https://aliexpress.com/item/1005001523579896.html + +Make example for this keyboard (after setting up your build environment): + + make spiderisland/winry25tc:default + +**Reset Key**: Located on the other side of the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/spiderisland/winry25tc/rules.mk b/keyboards/spiderisland/winry25tc/rules.mk new file mode 100644 index 000000000000..4eb00f7407b4 --- /dev/null +++ b/keyboards/spiderisland/winry25tc/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow + +KEY_LOCK_ENABLE = yes # Enable KC_LOCK support diff --git a/keyboards/spiderisland/winry25tc/winry25tc.c b/keyboards/spiderisland/winry25tc/winry25tc.c new file mode 100644 index 000000000000..938dadaf8fc9 --- /dev/null +++ b/keyboards/spiderisland/winry25tc/winry25tc.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Andrzej Ressel (andrzej.ressel@gmail.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "winry25tc.h" diff --git a/keyboards/spiderisland/winry25tc/winry25tc.h b/keyboards/spiderisland/winry25tc/winry25tc.h new file mode 100644 index 000000000000..5498dd8d6bb2 --- /dev/null +++ b/keyboards/spiderisland/winry25tc/winry25tc.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Andrzej Ressel (andrzej.ressel@gmail.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, \ + K10, K11, K12, K13, K14, \ + K20, K21, K22, K23, K24, \ + K30, K31, K32, K33, K34, \ + K40, K41, K42, K43, K44 \ +) { \ + { K00, K01, K02, K03, K04 }, \ + { K10, K11, K12, K13, K14 }, \ + { K20, K21, K22, K23, K24 }, \ + { K30, K31, K32, K33, K34 }, \ + { K40, K41, K42, K43, K44 }, \ +} diff --git a/keyboards/splitkb/kyria/keymaps/drashna/keymap.c b/keyboards/splitkb/kyria/keymaps/drashna/keymap.c index 2dc934644250..6c7ac34d5127 100644 --- a/keyboards/splitkb/kyria/keymaps/drashna/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/drashna/keymap.c @@ -92,8 +92,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_wrapper( KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RESET, VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, - _______, _________________ADJUST_L3_________________, HPT_TOG, HPT_FBK, MG_NKRO, UC_MOD, _________________ADJUST_R3_________________, TG_MODS, - _______, _______, _______, KC_NUKE, _______, _______, _______, _______, _______, _______ + UC_MOD, _________________ADJUST_L3_________________, HPT_TOG, HPT_FBK, MG_NKRO, UC_MOD, _________________ADJUST_R3_________________, TG_MODS, + _______, _______, KEYLOCK, KC_NUKE, _______, _______, _______, _______, _______, _______ ), // [_LAYERINDEX] = LAYOUT_wrapper( // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/splitkb/kyria/keymaps/drashna/rules.mk b/keyboards/splitkb/kyria/keymaps/drashna/rules.mk index f2ae5a191935..7c6bd3e12181 100644 --- a/keyboards/splitkb/kyria/keymaps/drashna/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/drashna/rules.mk @@ -1,23 +1,20 @@ -OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays -ENCODER_ENABLE = yes # ENables the use of one or more encoders -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGBLIGHT_STARTUP_ANIMATION = no +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # USB Nkey Rollover +UNICODE_ENABLE = yes # Unicode +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 # Enables the use of OLED displays +ENCODER_ENABLE = yes # Enables the use of one or more encoders -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # USB Nkey Rollover -UNICODE_ENABLE = no # Unicode -KEY_LOCK_ENABLE = no -CTPC = yes - -# BOOTLOADER = hid -# BOOTLOADER_SIZE = 512 -# PROGRAM_CMD = $(HID_BOOTLOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex -# TAP_DANCE_ENABLE = yes - -WPM_ENABLE = yes -SWAP_HANDS_ENABLE = yes +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGBLIGHT_STARTUP_ANIMATION = yes +RGB_MATRIX_ENABLE = yes +TAP_DANCE_ENABLE = yes +KEY_LOCK_ENABLE = no +WPM_ENABLE = yes +SWAP_HANDS_ENABLE = yes +LTO_ENABLE = no +CTPC = yes diff --git a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h index c04bee9b4fd8..495b3032c644 100644 --- a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/config.h b/keyboards/splitkb/kyria/keymaps/zigotica/config.h new file mode 100644 index 000000000000..b59e04474b68 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/zigotica/config.h @@ -0,0 +1,44 @@ +/* Copyright 2020 Sergi Meseguer + +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 . +*/ + +#pragma once + +#define SPLIT_LAYER_STATE_ENABLE +#define SPLIT_LED_STATE_ENABLE +#define MASTER_RIGHT// EE_HANDS MASTER_RIGHT + +// these should work better for homerow modifiers +#define TAPPING_TERM 350 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_FORCE_HOLD + +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 300 + +#ifdef OLED_ENABLE + #define OLED_DISPLAY_128X64 + #define OLED_TIMEOUT 10000 +#endif + +#ifdef ENCODER_ENABLE + // EC11K encoders have a different resolution than other EC11 encoders. + // When using the default resolution of 4, if you notice your encoder skipping + // every other tick, lower the resolution to 2. + #define ENCODER_RESOLUTION 2 + // Also, flip direction + #define ENCODER_DIRECTION_FLIP +#endif diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/keymap.c b/keyboards/splitkb/kyria/keymaps/zigotica/keymap.c new file mode 100644 index 000000000000..2671f074636b --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/zigotica/keymap.c @@ -0,0 +1,58 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "zigotica.h" + +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [BASE] = LAYOUT_wrapper( + _______, _STENAI_L1, _STENAI_R1, _______, + _______, _STENAI_L2, _STENAI_R2, _______, + _______, _STENAI_L3, _______, _______, _______, _______, _STENAI_R3, _______, + _______, _______, _STENAI_LT, _______, _______, _STENAI_RT, _______, _______ + ), + + [_NUM] = LAYOUT_wrapper( + _______, ____NUM_L1, ____NUM_R1, _______, + _______, ____NUM_L2, ____NUM_R2, _______, + _______, ____NUM_L3, _______, _______, _______, _______, ____NUM_R3, _______, + _______, _______, ____NUM_LT, _______, _______, ____NUM_RT, _______, _______ + ), + + [_NAV] = LAYOUT_wrapper( + _______, ____NAV_L1, ____NAV_R1, _______, + _______, ____NAV_L2, ____NAV_R2, _______, + _______, ____NAV_L3, _______, _______, _______, _______, ____NAV_R3, _______, + _______, _______, ____NAV_LT, _______, _______, ____NAV_RT, _______, _______ + ), + + [_SYM] = LAYOUT_wrapper( + _______, ____SYM_L1, ____SYM_R1, _______, + _______, ____SYM_L2, ____SYM_R2, _______, + _______, ____SYM_L3, _______, _______, _______, _______, ____SYM_R3, _______, + _______, _______, ____SYM_LT, _______, _______, ____SYM_RT, _______, _______ + ), + + [_FN] = LAYOUT_wrapper( + _______, ____FN_L1, ____FN_R1, _______, + _______, ____FN_L2, ____FN_R2, _______, + _______, ____FN_L3, _______, _______, _______, _______, ____FN_R3, _______, + _______, _______, ____FN_LT, _______, _______, ____FN_RT, _______, _______ + ), +}; + diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/oled.c b/keyboards/splitkb/kyria/keymaps/zigotica/oled.c new file mode 100644 index 000000000000..46bb2c3cea41 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/zigotica/oled.c @@ -0,0 +1,87 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "zigotica.h" + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +static void render_kyria_logo(void) { + static const char PROGMEM kyria_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0, + 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + oled_write_raw_P(kyria_logo, sizeof(kyria_logo)); +} + +static void render_qmk_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; + + oled_write_P(qmk_logo, false); +} + +static void render_status(void) { + // QMK Logo and version information + render_qmk_logo(); + oled_write_P(PSTR("Kyria v1.2\n\n"), false); + + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + switch (get_highest_layer(layer_state)) { + case BASE: + oled_write_P(PSTR("STENAI\n"), false); + break; + case _NUM: + oled_write_P(PSTR("NUM\n"), false); + break; + case _NAV: + oled_write_P(PSTR("NAV\n"), false); + break; + case _SYM: + oled_write_P(PSTR("SYM\n"), false); + break; + case _FN: + oled_write_P(PSTR("FN\n"), false); + break; + default: + oled_write_P(PSTR("Undef\n"), false); + } + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false); +} + +void oled_task_user(void) { + if (!is_keyboard_left()) { + render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_kyria_logo(); + } +} + diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/oled.h b/keyboards/splitkb/kyria/keymaps/zigotica/oled.h new file mode 100644 index 000000000000..2422c68f2869 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/zigotica/oled.h @@ -0,0 +1,18 @@ +/* Copyright 2020 Sergi Meseguer + +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 . +*/ + +#pragma once +#include "zigotica.h" diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/rules.mk b/keyboards/splitkb/kyria/keymaps/zigotica/rules.mk new file mode 100644 index 000000000000..29d98d7019bf --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/zigotica/rules.mk @@ -0,0 +1,10 @@ +OLED_ENABLE = yes +ENCODER_ENABLE = no +RGBLIGHT_ENABLE = no + +COMBO_ENABLE = yes +TAP_DANCE_ENABLE = yes +LEADER_ENABLE = no +UNICODE_ENABLE = no +MOUSEKEY_ENABLE = yes + diff --git a/keyboards/splitkb/zima/keymaps/drashna/config.h b/keyboards/splitkb/zima/keymaps/drashna/config.h index 133ab6a91474..8d0908182e35 100644 --- a/keyboards/splitkb/zima/keymaps/drashna/config.h +++ b/keyboards/splitkb/zima/keymaps/drashna/config.h @@ -32,3 +32,6 @@ #define OLED_LOGO_SCIFI #define ENCODER_RESOLUTION 2 + +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_TWINKLE+4 +#define RGBLIGHT_DEFAULT_HUE 213 diff --git a/keyboards/splitkb/zima/rules.mk b/keyboards/splitkb/zima/rules.mk index ecb6fd7cf175..657475a0208d 100644 --- a/keyboards/splitkb/zima/rules.mk +++ b/keyboards/splitkb/zima/rules.mk @@ -7,7 +7,7 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug @@ -22,7 +22,8 @@ AUDIO_ENABLE = yes # Audio output ENCODER_ENABLE = yes # ENables the use of one or more encoders OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays -HAPTIC_ENABLE += DRV2605L # Supported but not included by defaut +OLED_DRIVER = SSD1306 # Enables the use of OLED displays +HAPTIC_ENABLE = yes # Supported but not included by defaut +HAPTIC_DRIVER = DRV2605L LTO_ENABLE = yes diff --git a/keyboards/the_uni/keymaps/default/keymap.c b/keyboards/the_uni/keymaps/default/keymap.c index 01674d948699..492c7a3c9422 100644 --- a/keyboards/the_uni/keymaps/default/keymap.c +++ b/keyboards/the_uni/keymaps/default/keymap.c @@ -19,59 +19,18 @@ along with this program. If not, see . #include "keymap_steno.h" enum uni_layers { -/* - _QWERTY, - _CHOOSE, -*/ - _PLOVER, -}; - -/* -enum uni_keycodes { - PLOVER, - QWERTY + _PLOVER, }; -*/ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - [_QWERTY] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, LT(_CHOOSE, KC_T), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_1, KC_C, KC_V, KC_N, KC_M, KC_2), - [_CHOOSE] = LAYOUT( - _______, _______, _______, _______, _______, PLOVER, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______), -*/ - [_PLOVER] = LAYOUT( - STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , - STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , - STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N2), + [_PLOVER] = LAYOUT( + STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , + STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , + STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N2), }; -/* -switch (keycode) { - bool process_record_user(uint16_t keycode, keyrecord_t *record) { - case PLOVER: - if (!record->event.pressed) { - layer_on(_PLOVER); - } - return false; - break; - case QWERTY: - if (!record->event.pressed) { - layer_on(_QWERTY); - } - return false; - break; - } - return true; - } -*/ - void matrix_init_user() { - steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT + steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT } diff --git a/keyboards/the_uni/keymaps/qwerty/keymap.c b/keyboards/the_uni/keymaps/qwerty/keymap.c index 3eaac57f3dff..b2f03a361353 100644 --- a/keyboards/the_uni/keymaps/qwerty/keymap.c +++ b/keyboards/the_uni/keymaps/qwerty/keymap.c @@ -16,62 +16,15 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H -//#include "keymap_steno.h" enum uni_layers { - _QWERTY, -/* - _CHOOSE, - _PLOVER, -*/ + _QWERTY, }; -/* -enum uni_keycodes { - PLOVER, - QWERTY -}; -*/ - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_1, KC_C, KC_V, KC_N, KC_M, KC_2), -/* - - [_CHOOSE] = LAYOUT( - _______, _______, _______, _______, _______, PLOVER, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______), - [_PLOVER] = LAYOUT( - STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , - STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , - STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N2), -*/ + [_QWERTY] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_1, KC_C, KC_V, KC_N, KC_M, KC_2), }; - -/* -switch (keycode) { - bool process_record_user(uint16_t keycode, keyrecord_t *record) { - case PLOVER: - if (!record->event.pressed) { - layer_on(_PLOVER); - } - return false; - break; - case QWERTY: - if (!record->event.pressed) { - layer_on(_QWERTY); - } - return false; - break; - } - return true; - } -*/ - - void matrix_init_user() { - //steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT - } diff --git a/keyboards/the_uni/config.h b/keyboards/the_uni/pro_micro/config.h similarity index 100% rename from keyboards/the_uni/config.h rename to keyboards/the_uni/pro_micro/config.h diff --git a/keyboards/the_uni/pro_micro/pro_micro.c b/keyboards/the_uni/pro_micro/pro_micro.c new file mode 100644 index 000000000000..3d5b3b23bb47 --- /dev/null +++ b/keyboards/the_uni/pro_micro/pro_micro.c @@ -0,0 +1,18 @@ +/* +Copyright 2021 Peter C. Park + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "pro_micro.h" diff --git a/keyboards/the_uni/the_uni.h b/keyboards/the_uni/pro_micro/pro_micro.h similarity index 100% rename from keyboards/the_uni/the_uni.h rename to keyboards/the_uni/pro_micro/pro_micro.h diff --git a/keyboards/the_uni/pro_micro/readme.md b/keyboards/the_uni/pro_micro/readme.md new file mode 100644 index 000000000000..d6b623156162 --- /dev/null +++ b/keyboards/the_uni/pro_micro/readme.md @@ -0,0 +1,20 @@ +# The Uni + +- Keyboard Maintainer: [Peter](https://github.com/petercpark) +- Link to Keyboard Files: [The_Uni](https://github.com/petercpark/The_Uni) +- Hardware Supported: + - The Uni v1 and v2 (pro_micro) +- Hardware Availability: [https://www.stenokeyboards.com](https://www.stenokeyboards.com) + +# Bootloader + +Enter the bootloader by: + +* **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. +* **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). + +Make examples for this keyboard (after setting up your build environment): + + make the_uni/pro_micro:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/the_uni/pro_micro/rules.mk b/keyboards/the_uni/pro_micro/rules.mk new file mode 100644 index 000000000000..1a595e91e422 --- /dev/null +++ b/keyboards/the_uni/pro_micro/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +STENO_ENABLE = yes diff --git a/keyboards/the_uni/readme.md b/keyboards/the_uni/readme.md index 730ea2483d1a..cd1c99e43575 100644 --- a/keyboards/the_uni/readme.md +++ b/keyboards/the_uni/readme.md @@ -1,19 +1,31 @@ # The Uni -![The Uni](https://raw.githubusercontent.com/petercpark/The_Uni/main/Pics/layout.png) -![The Uni Closeup](https://github.com/petercpark/The_Uni/blob/main/Pics/close-up-uni.jpg?raw=true) +​ +![Layout](https://docs.stenokeyboards.com/images/uni-layout.png) +![The Uni v2](https://github.com/petercpark/The_Uni/blob/main/Pics/uni%20v2/uni-v2.JPG?raw=true) A compact unibody split ortholinear keyboard made specifically for stenography. -- Keyboard Maintainer: [Peter C. Park](https://github.com/petercpark) -- Link to Keyboard Files: [The_Uni](https://github.com/petercpark/The_Uni) -- Hardware Supported: The Uni v1 and v2 (pro micro or equivalent) -- Hardware Availability: [website](https://www.stenokeyboards.com) +- Keyboard Maintainer: [Peter](https://github.com/petercpark) +- Link to Keyboard Files (pro_micro version): [https://github.com/petercpark/The_Uni](https://github.com/petercpark/The_Uni) +- Hardware Supported: -Make example for this keyboard (after setting up your build environment): + - The Uni v1 and v2 (pro_micro) + - The Uni v3 (usb_c) - make the_uni:default +- Hardware Availability: [https://www.stenokeyboards.com](https://www.stenokeyboards.com) -To enter the bootloader, short the rst and gnd pins with a conductive material such as a tweezer or a wire. Uni v2 will have reset pads next to the pro micro so you can short these pads to reset the pro micro. +# Bootloader + +Enter the bootloader by: + +* **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. +* **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). + +Make examples for this keyboard (after setting up your build environment): + + make the_uni/pro_micro:default + + make the_uni/usb_c:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/the_uni/rules.mk b/keyboards/the_uni/rules.mk deleted file mode 100644 index 36c52b6777ae..000000000000 --- a/keyboards/the_uni/rules.mk +++ /dev/null @@ -1,21 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no -FORCE_NKRO = yes -EXTRAKEY_ENABLE = no -MOUSEKEY_ENABLE = no # Mouse keys -STENO_ENABLE = yes diff --git a/keyboards/the_uni/usb_c/config.h b/keyboards/the_uni/usb_c/config.h new file mode 100644 index 000000000000..3110c0d82181 --- /dev/null +++ b/keyboards/the_uni/usb_c/config.h @@ -0,0 +1,52 @@ +/* +Copyright 2021 Peter C. Park + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x9000 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0002 +#define MANUFACTURER stenokeyboards +#define PRODUCT The Uni + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 11 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B7, D6, C7 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, D5, D3, D2, D1, D0, D4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + + +/*force the nkro if it does not work*/ +#define FORCE_NKRO diff --git a/keyboards/the_uni/usb_c/readme.md b/keyboards/the_uni/usb_c/readme.md new file mode 100644 index 000000000000..23895db39fb6 --- /dev/null +++ b/keyboards/the_uni/usb_c/readme.md @@ -0,0 +1,20 @@ +# The Uni v3 Firmware + +- Keyboard Maintainer: [Peter](https://github.com/petercpark) +- Link to Keyboard Files: Not Available +- Hardware Supported: + - The Uni v3 (usb_c) +- Hardware Availability: [https://www.stenokeyboards.com](https://www.stenokeyboards.com) + +## Bootloader + +Enter the bootloader by: + +* **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. +* **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). + +Make examples for this keyboard (after setting up your build environment): + + make the_uni/usb_c:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/the_uni/usb_c/rules.mk b/keyboards/the_uni/usb_c/rules.mk new file mode 100644 index 000000000000..e5d2f2e0422f --- /dev/null +++ b/keyboards/the_uni/usb_c/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +STENO_ENABLE = yes diff --git a/keyboards/the_uni/the_uni.c b/keyboards/the_uni/usb_c/usb_c.c similarity index 96% rename from keyboards/the_uni/the_uni.c rename to keyboards/the_uni/usb_c/usb_c.c index b99b06830c63..e690d0a886d3 100644 --- a/keyboards/the_uni/the_uni.c +++ b/keyboards/the_uni/usb_c/usb_c.c @@ -15,4 +15,4 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "the_uni.h" +#include "usb_c.h" diff --git a/keyboards/the_uni/usb_c/usb_c.h b/keyboards/the_uni/usb_c/usb_c.h new file mode 100644 index 000000000000..9371c3a241d6 --- /dev/null +++ b/keyboards/the_uni/usb_c/usb_c.h @@ -0,0 +1,30 @@ +/* +Copyright 2021 Peter C. Park + +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, \ + K202, K203, K204, K205, K206, K207 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110 }, \ + { KC_NO, KC_NO, K202, K203, K204, K205, K206, K207, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/torn/keymaps/manna-harbour_miryoku/config.h b/keyboards/torn/keymaps/manna-harbour_miryoku/config.h index 60ae65d5056b..89a67474ca4c 100644 --- a/keyboards/torn/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/torn/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/rules.mk b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/rules.mk index 507f4fcd377f..7837adcbd358 100644 --- a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/rules.mk +++ b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/rules.mk @@ -22,4 +22,5 @@ ENCODER_ENABLE = no # Enable rotary encoder support AUDIO_ENABLE = no # Audio output KEYBOARD_SHARED_EP = yes # Free up some extra endpoints - needed if console+mouse+extra -HAPTIC_ENABLE += SOLENOID +HAPTIC_ENABLE = yes +HAPTIC_DRIVER = SOLENOID diff --git a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/rules.mk b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/rules.mk index 30eb89bb7e51..2886985a0d2b 100644 --- a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/rules.mk +++ b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/rules.mk @@ -22,5 +22,7 @@ ENCODER_ENABLE = no # Enable rotary encoder support AUDIO_ENABLE = no # Audio output KEYBOARD_SHARED_EP = yes # Free up some extra endpoints - needed if console+mouse+extra -HAPTIC_ENABLE += SOLENOID +HAPTIC_ENABLE = yes +HAPTIC_DRIVER = SOLENOID + LAYOUTS = fullsize_ansi fullsize_iso diff --git a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/rules.mk b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/rules.mk index 507f4fcd377f..7837adcbd358 100644 --- a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/rules.mk +++ b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/rules.mk @@ -22,4 +22,5 @@ ENCODER_ENABLE = no # Enable rotary encoder support AUDIO_ENABLE = no # Audio output KEYBOARD_SHARED_EP = yes # Free up some extra endpoints - needed if console+mouse+extra -HAPTIC_ENABLE += SOLENOID +HAPTIC_ENABLE = yes +HAPTIC_DRIVER = SOLENOID diff --git a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/rules.mk b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/rules.mk index 507f4fcd377f..7837adcbd358 100644 --- a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/rules.mk +++ b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/rules.mk @@ -22,4 +22,5 @@ ENCODER_ENABLE = no # Enable rotary encoder support AUDIO_ENABLE = no # Audio output KEYBOARD_SHARED_EP = yes # Free up some extra endpoints - needed if console+mouse+extra -HAPTIC_ENABLE += SOLENOID +HAPTIC_ENABLE = yes +HAPTIC_DRIVER = SOLENOID diff --git a/keyboards/work_louder/work_board/keymaps/drashna/config.h b/keyboards/work_louder/work_board/keymaps/drashna/config.h new file mode 100644 index 000000000000..5ea4dc7e4836 --- /dev/null +++ b/keyboards/work_louder/work_board/keymaps/drashna/config.h @@ -0,0 +1,17 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * + * 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 . + */ + +#pragma once diff --git a/keyboards/work_louder/work_board/keymaps/drashna/keymap.c b/keyboards/work_louder/work_board/keymaps/drashna/keymap.c new file mode 100644 index 000000000000..fb86275da910 --- /dev/null +++ b/keyboards/work_louder/work_board/keymaps/drashna/keymap.c @@ -0,0 +1,217 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "drashna.h" + +#define PLNK_1 SP_LWER +#define PLNK_2 BK_LWER +#define PLNK_3 DL_RAIS +#define PLNK_4 ET_RAIS + +/* + * The `LAYOUT_ortho_4x12_base` macro is a template to allow the use of identical + * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so + * that there is no need to set them up for each layout, and modify all of + * them if I want to change them. This helps to keep consistency and ease + * of use. K## is a placeholder to pass through the individual keycodes + */ +// clang-format off +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) +#define LAYOUT_base( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ + ) \ + LAYOUT_wrapper( \ + KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_DEL, KC_MUTE, \ + LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \ + KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_ENT, \ + OS_LSFT, OS_LCTL, OS_LALT, OS_LGUI, PLNK_1, PLNK_2, PLNK_3, PLNK_4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ) +#define LAYOUT_base_wrapper(...) LAYOUT_base(__VA_ARGS__) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper( + _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, + _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, + _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ + ), + + [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper( + ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________, + ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________, + ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________ + ), + [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper( + _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, + _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, + _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ + ), + + [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper( + _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, + _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, + _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ + ), + + [_LOWER] = LAYOUT_wrapper( + KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC, _______, + KC_DEL, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE, + _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_RAISE] = LAYOUT_wrapper( + KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_BSPC, _______, + KC_DEL, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, + _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, + _______, _______, _______, _______, _______, _______, _______, _________________RAISE_R3__________________ + ), + + [_ADJUST] = LAYOUT_wrapper( + KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST, _______, + VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, + _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL, + KEYLOCK, _______, _______, _______, _______, KC_NUKE, _______, _______, _______, _______, _______, TG_MODS + ) + +}; + +#ifdef ENCODER_ENABLE +# ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_DEFAULT_LAYER_1] = { { KC_DOWN, KC_UP } }, + [_DEFAULT_LAYER_2] = { { _______, _______ } }, + [_DEFAULT_LAYER_3] = { { _______, _______ } }, + [_DEFAULT_LAYER_4] = { { _______, _______ } }, + [_GAMEPAD] = { { _______, _______ } }, + [_DIABLO] = { { _______, _______ } }, + [_MOUSE] = { { KC_WH_D, KC_WH_U } }, + [_MEDIA] = { { _______, _______ } }, + [_RAISE] = { { KC_VOLD, KC_VOLU } }, + [_LOWER] = { { RGB_MOD, RGB_RMOD} }, + [_ADJUST] = { { CK_DOWN, CK_UP } }, +}; +// clang-format on +# else +bool encoder_update_user(uint8_t index, bool clockwise) { + switch (get_highest_layer(layer_state)) { + case _RAISE: + clockwise ? rgblight_step() : rgblight_step_reverse(); + break; + case _LOWER: + clockwise ? rgb_matrix_step() : rgb_matrix_step_reverse(); + break; + default: + clockwise ? tap_code(KC_VOLD) : tap_code(KC_VOLU); + break; + } + return false; +} +# endif // ENCODER_ENABLE + +#endif + +void rgb_matrix_indicators_user(void) {} + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + uint8_t this_mod = get_mods(); + uint8_t this_led = host_keyboard_leds(); + uint8_t this_osm = get_oneshot_mods(); +#define THUMB_LED 6 +#define RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(...) RGB_MATRIX_INDICATOR_SET_COLOR(__VA_ARGS__) + if (!userspace_config.rgb_layer_change) { + switch (get_highest_layer(layer_state | default_layer_state)) { + case _GAMEPAD: + rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _DIABLO: + rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed * 8, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _RAISE: + rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _LOWER: + rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _ADJUST: + rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _DEFAULT_LAYER_1: + rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _DEFAULT_LAYER_2: + rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _DEFAULT_LAYER_3: + rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _DEFAULT_LAYER_4: + rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + } + } + + extern bool host_driver_disabled; + if (host_driver_disabled) { + RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, RGB_OFF); + } else { + switch (get_highest_layer(default_layer_state)) { + case _DEFAULT_LAYER_1: + RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_1_RGB); + break; + case _DEFAULT_LAYER_2: + RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_2_RGB); + break; + case _DEFAULT_LAYER_3: + RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_3_RGB); + break; + case _DEFAULT_LAYER_4: + RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_4_RGB); + break; + } + } + + if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) { + if (!layer_state_is(_ADJUST)) { + RGB_MATRIX_INDICATOR_SET_COLOR(12, 0x00, 0xFF, 0x00); + RGB_MATRIX_INDICATOR_SET_COLOR(13, 0x00, 0xFF, 0x00); + } + RGB_MATRIX_INDICATOR_SET_COLOR(24, 0x00, 0xFF, 0x00); + } + if ((this_mod | this_osm) & MOD_MASK_CTRL) { + RGB_MATRIX_INDICATOR_SET_COLOR(11, 0xFF, 0x00, 0x00); + RGB_MATRIX_INDICATOR_SET_COLOR(23, 0xFF, 0x00, 0x00); + RGB_MATRIX_INDICATOR_SET_COLOR(14, 0xFF, 0x00, 0x00); + } + if ((this_mod | this_osm) & MOD_MASK_GUI) { + RGB_MATRIX_INDICATOR_SET_COLOR(9, 0xFF, 0xD9, 0x00); + } + if ((this_mod | this_osm) & MOD_MASK_ALT) { + RGB_MATRIX_INDICATOR_SET_COLOR(10, 0x00, 0x00, 0xFF); + RGB_MATRIX_INDICATOR_SET_COLOR(25, 0x00, 0x00, 0xFF); + RGB_MATRIX_INDICATOR_SET_COLOR(36, 0x00, 0x00, 0xFF); + } + if (layer_state_is(_LOWER)) { + RGB_MATRIX_INDICATOR_SET_COLOR(7, 0x00, 0xFF, 0x00); + RGB_MATRIX_INDICATOR_SET_COLOR(8, 0x00, 0xFF, 0x00); + } + if (layer_state_is(_RAISE)) { + RGB_MATRIX_INDICATOR_SET_COLOR(4, 0xFF, 0xFF, 0x00); + RGB_MATRIX_INDICATOR_SET_COLOR(5, 0xFF, 0xFF, 0x00); + } +} diff --git a/keyboards/work_louder/work_board/keymaps/drashna/rules.mk b/keyboards/work_louder/work_board/keymaps/drashna/rules.mk new file mode 100644 index 000000000000..6a4558aa0e09 --- /dev/null +++ b/keyboards/work_louder/work_board/keymaps/drashna/rules.mk @@ -0,0 +1,6 @@ +BOOTMAGIC_ENABLE = lite +EXTRAKEY_ENABLE = yes +TAP_DANCE_ENABLE = no +NKRO_ENABLE = yes +RGBLIGHT_STARTUP_ANIMATION = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/xw60/rules.mk b/keyboards/xw60/rules.mk index 5921be64c393..fc192e059328 100644 --- a/keyboards/xw60/rules.mk +++ b/keyboards/xw60/rules.mk @@ -17,6 +17,7 @@ NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: ht BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. -HAPTIC_ENABLE += SOLENOID +HAPTIC_ENABLE = yes +HAPTIC_DRIVER = SOLENOID # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/z12/keymaps/zigotica/config.h b/keyboards/z12/keymaps/zigotica/config.h new file mode 100644 index 000000000000..fbab76d5f0d6 --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/config.h @@ -0,0 +1,30 @@ +/* Copyright 2020 Sergi Meseguer + +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 . +*/ + +#pragma once + +#include "config_common.h" + +#ifdef OLED_ENABLE + #define OLED_DISPLAY_128X32 +#endif + +// EC11 encoders' resolution. +// Reduce the value to 2 if you feel missing values: +#define ENCODER_RESOLUTION 4 + +// Allows correct registered values by rotary encoder: +#define TAP_CODE_DELAY 10 diff --git a/keyboards/z12/keymaps/zigotica/encoder.c b/keyboards/z12/keymaps/zigotica/encoder.c new file mode 100644 index 000000000000..49a3d859b66e --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/encoder.c @@ -0,0 +1,114 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "zigotica.h" + +bool encoder_update_user(uint8_t index, bool clockwise) { + switch(get_highest_layer(layer_state)){ + case _VIM: + if (index == 0) { // LEFT + // Cycle through buffers + if (clockwise) { + register_code(KC_ESC); + SEND_STRING(":bprevious"); + register_code(KC_ENT); + unregister_code(KC_ESC); + unregister_code(KC_ENT); + } else { + register_code(KC_ESC); + SEND_STRING(":bnext"); + register_code(KC_ENT); + unregister_code(KC_ESC); + unregister_code(KC_ENT); + } + } else { // RIGHT + // Scroll + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + break; + case _BROWSER: + if (index == 0) { // LEFT + // Cycle through Tabs + if (clockwise) { + tap_code16(C(KC_TAB)); + /* register_code16(G(KC_RCBR)); */ + /* unregister_code16(G(KC_RCBR)); */ + } else { + tap_code16(S(C(KC_TAB))); + /* register_code16(G(KC_LCBR)); */ + /* unregister_code16(G(KC_LCBR)); */ + } + } else { // RIGHT + // Scroll up/down + if (clockwise) { + register_code(KC_WH_U); + unregister_code(KC_WH_U); + } else { + register_code(KC_WH_D); + unregister_code(KC_WH_D); + } + } + break; + case _FIGMA: + if (index == 0) { // LEFT + // Volume control. + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else { // RIGHT + // Zoom in/out + if (clockwise) { + register_code(KC_LGUI); + register_code(KC_WH_D); + unregister_code(KC_WH_D); + unregister_code(KC_LGUI); + } else { + register_code(KC_LGUI); + register_code(KC_WH_U); + unregister_code(KC_WH_U); + unregister_code(KC_LGUI); + } + } + break; + case _TERMINAL: + default: + if (index == 0) { // LEFT + // Volume control. + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else { // RIGHT + // Scroll + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + break; + } + return false; +} + + diff --git a/keyboards/z12/keymaps/zigotica/encoder.h b/keyboards/z12/keymaps/zigotica/encoder.h new file mode 100644 index 000000000000..2422c68f2869 --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/encoder.h @@ -0,0 +1,18 @@ +/* Copyright 2020 Sergi Meseguer + +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 . +*/ + +#pragma once +#include "zigotica.h" diff --git a/keyboards/z12/keymaps/zigotica/keymap.c b/keyboards/z12/keymaps/zigotica/keymap.c new file mode 100644 index 000000000000..7e969de96ed6 --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/keymap.c @@ -0,0 +1,126 @@ +/* Copyright 2020 + Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "zigotica.h" + +// Custom Keycodes +#define MODE_1 TO(_TERMINAL) +#define MODE_2 TO(_FIGMA) +#define MODE_3 TO(_BROWSER) +#define MODE_4 TO(_VIM) + +enum custom_keycodes { + VIM_SIP = SAFE_RANGE +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case VIM_SIP: + if (record->event.pressed) { + register_code(KC_ESC); + SEND_STRING(":Ag "); + } else { + // released + unregister_code(KC_ESC); + } + break; + } + return true; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * TERMINAL Layer + * + * ,-----------------------------. + * | | TERM | FIGM | | + * |-------+------+------+-------| + * | VOL | BROW | VIM | SCROLL| + * |-------+------+------+-------| + * |-------+-------+-------| + * | MEDIA | o | o | + * |-------+-------+-------| + * | o | o | o | + * |-------+-------+-------| + */ + [_TERMINAL] = LAYOUT( + MODE_1, MODE_2, + ZK_MEDIA, MODE_3, MODE_4, _______, + _______, _______, _______, + _______, _______, _______ + ), +/* + * VIM Layer + * + * ,-----------------------------. + * | | TERM | FIGM | | + * |-------+------+------+-------| + * |BUFFER | BROW | VIM | SCROLL| + * |-------+------+------+-------| + * |-------+-------+-------| + * |SEARCH | o | o | + * |-------+-------+-------| + * | o | o | o | + * |-------+-------+-------| + */ + [_VIM] = LAYOUT( + _______, _______, + _______, _______, _______, _______, + VIM_SIP, _______, _______, + _______, _______, _______ + ), +/* + * FIGMA Layer + * + * ,-----------------------------. + * | | TERM | FIGM | | + * |-------+------+------+-------| + * | VOL | BROW | VIM | ZOOM | + * |-------+------+------+-------| + * |-------+-------+-------| + * | ZOOM | GRIDS | FULL | + * |-------+-------+-------| + * | o | o | o | + * |-------+-------+-------| + */ + [_FIGMA] = LAYOUT( + _______, _______, + _______, _______, _______, _______, + LSFT(KC_1), LCTL(KC_G), LGUI(KC_BSLS), + _______, _______, _______ + ), +/* + * BROWSER Layer + * + * ,-----------------------------. + * | | TERM | FIGM | | + * |-------+------+------+-------| + * | TABS | BROW | VIM | SCROLL| + * |-------+------+------+-------| + * |-------+-------+-------| + * |SEARCH | BOOKM | DEVTL | + * |-------+-------+-------| + * | o | o | o | + * |-------+-------+-------| + */ + [_BROWSER] = LAYOUT( + _______, _______, + _______, _______, _______, _______, + G(KC_F), G(KC_D), G(A(KC_I)), + _______, _______, _______ + ), +}; diff --git a/keyboards/z12/keymaps/zigotica/oled.c b/keyboards/z12/keymaps/zigotica/oled.c new file mode 100644 index 000000000000..4b428a42b1dc --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/oled.c @@ -0,0 +1,43 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "zigotica.h" + +static void render_status(void) { + oled_write_P(PSTR("z12 v1.0\n"), false); + oled_write_P(PSTR("Layer: "), false); + switch (get_highest_layer(layer_state)) { + case _VIM: + oled_write_P(PSTR("VIM\n\nBUFFER SCROLL"), false); + break; + case _FIGMA: + oled_write_P(PSTR("FIGMA\n\nVOLUME ZOOM"), false); + break; + case _BROWSER: + oled_write_P(PSTR("BROWSER\n\nTABS SCROLL"), false); + break; + case _TERMINAL: + oled_write_P(PSTR("TERMINAL\n\nVOLUME SCROLL"), false); + break; + default: + oled_write_P(PSTR("Undef\n"), false); + } +} + +void oled_task_user(void) { + render_status(); +} + diff --git a/keyboards/z12/keymaps/zigotica/oled.h b/keyboards/z12/keymaps/zigotica/oled.h new file mode 100644 index 000000000000..2422c68f2869 --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/oled.h @@ -0,0 +1,18 @@ +/* Copyright 2020 Sergi Meseguer + +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 . +*/ + +#pragma once +#include "zigotica.h" diff --git a/keyboards/z12/keymaps/zigotica/rules.mk b/keyboards/z12/keymaps/zigotica/rules.mk new file mode 100644 index 000000000000..02e37aa80b3c --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/rules.mk @@ -0,0 +1,4 @@ +OLED_ENABLE = yes # Enables the use of OLED displays +RAW_ENABLE = yes +TAP_DANCE_ENABLE = yes +MOUSEKEY_ENABLE = yes diff --git a/keyboards/z12/z12.c b/keyboards/z12/z12.c index 99fe62ab931c..2af8836cab56 100644 --- a/keyboards/z12/z12.c +++ b/keyboards/z12/z12.c @@ -18,22 +18,6 @@ #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - if (index == 0) { // LEFT - // Scroll - if (clockwise) { - tap_code_delay(KC_PGDN, 10); - } else { - tap_code_delay(KC_PGUP, 10); - } - } else { // RIGHT - // Volume control. - if (clockwise) { - tap_code_delay(KC_VOLU, 10); - } else { - tap_code_delay(KC_VOLD, 10); - } - } - return false; + return encoder_update_user(index, clockwise); } #endif diff --git a/keyboards/z34/keymaps/default/rules.mk b/keyboards/z34/keymaps/default/rules.mk index 9281e9843b66..827811a36239 100644 --- a/keyboards/z34/keymaps/default/rules.mk +++ b/keyboards/z34/keymaps/default/rules.mk @@ -1,3 +1,3 @@ # There are no extra pins, so we make sure to disable OLED and Encoders -OLED_ENABLE = no # Enables the use of OLED displays -ENCODER_ENABLE = no # Enables the use of encoders +OLED_SUPPORTED = no +ENCODER_SUPPORTED = no diff --git a/keyboards/z34/keymaps/zigotica/config.h b/keyboards/z34/keymaps/zigotica/config.h new file mode 100644 index 000000000000..1b223cb71d25 --- /dev/null +++ b/keyboards/z34/keymaps/zigotica/config.h @@ -0,0 +1,28 @@ +/* Copyright 2020 Sergi Meseguer + +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 . +*/ + +#pragma once + +#include "config_common.h" + +#define MASTER_RIGHT + +// these should work better for homerow modifiers +#define TAPPING_TERM 350 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_FORCE_HOLD + diff --git a/keyboards/z34/keymaps/zigotica/keymap.c b/keyboards/z34/keymaps/zigotica/keymap.c new file mode 100644 index 000000000000..88c6a3db1bb9 --- /dev/null +++ b/keyboards/z34/keymaps/zigotica/keymap.c @@ -0,0 +1,57 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "zigotica.h" + +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_wrapper( + _STENAI_L1, _STENAI_R1, + _STENAI_L2, _STENAI_R2, + _STENAI_L3, _STENAI_R3, + _STENAI_LT, _STENAI_RT + ), + + [_NUM] = LAYOUT_wrapper( + ____NUM_L1, ____NUM_R1, + ____NUM_L2, ____NUM_R2, + ____NUM_L3, ____NUM_R3, + ____NUM_LT, ____NUM_RT + ), + + [_NAV] = LAYOUT_wrapper( + ____NAV_L1, ____NAV_R1, + ____NAV_L2, ____NAV_R2, + ____NAV_L3, ____NAV_R3, + ____NAV_LT, ____NAV_RT + ), + + [_SYM] = LAYOUT_wrapper( + ____SYM_L1, ____SYM_R1, + ____SYM_L2, ____SYM_R2, + ____SYM_L3, ____SYM_R3, + ____SYM_LT, ____SYM_RT + ), + + [_FN] = LAYOUT_wrapper( + ____FN_L1, ____FN_R1, + ____FN_L2, ____FN_R2, + ____FN_L3, ____FN_R3, + ____FN_LT, ____FN_RT + ), +}; + diff --git a/keyboards/z34/keymaps/zigotica/rules.mk b/keyboards/z34/keymaps/zigotica/rules.mk new file mode 100644 index 000000000000..9abdfb40b493 --- /dev/null +++ b/keyboards/z34/keymaps/zigotica/rules.mk @@ -0,0 +1,7 @@ +# There are no extra pins, so we make sure to disable OLED and Encoders +OLED_SUPPORTED = no +ENCODER_SUPPORTED = no + +MOUSEKEY_ENABLE = yes +COMBO_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/layouts/community/60_ansi/manna-harbour_miryoku/config.h b/layouts/community/60_ansi/manna-harbour_miryoku/config.h index 14bf842165ff..81f1ceb42f5d 100644 --- a/layouts/community/60_ansi/manna-harbour_miryoku/config.h +++ b/layouts/community/60_ansi/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . @@ -9,7 +9,7 @@ #define XXX KC_NO #if defined MIRYOKU_MAPPING_NOREVERSEANGLE -#define LAYOUT_miryoku(\ + #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ @@ -22,8 +22,38 @@ K00, K01, K02, K03, K04, XXX, XXX, XXX, K05, K06, K07, K08, K09, XX XXX, K32, K33, K34, XXX, XXX, XXX, XXX, K35, K36, K37, XXX,\ XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX\ ) +#elif defined MIRYOKU_MAPPING_LITE + #if defined MIRYOKU_LAYERS_FLIP + #define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_60_ansi( \ +KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ +KC_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \ +KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \ +KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \ +KC_LCTL, KC_LGUI, KC_LALT, K36, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \ +) + #else + #define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_60_ansi( \ +KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ +KC_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \ +KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \ +KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \ +KC_LCTL, KC_LGUI, KC_LALT, K33, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \ +) + #endif #else -#define LAYOUT_miryoku(\ + #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ diff --git a/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c b/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c +++ b/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c index 430328fed7f5..dd47899d7ad5 100644 --- a/layouts/community/ergodox/drashna/keymap.c +++ b/layouts/community/ergodox/drashna/keymap.c @@ -174,7 +174,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MAKE, _______, _______, _______, _______, _______, UC_MOD, KC_NUKE, _________________ADJUST_R1_________________, KC_RST, VRSN, _________________ADJUST_L1_________________, _______, _______, _________________ADJUST_R1_________________, EEP_RST, _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL, - _______, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, TG_MODS, + KEYLOCK, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, TG_MODS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/layouts/community/ergodox/manna-harbour_miryoku/config.h b/layouts/community/ergodox/manna-harbour_miryoku/config.h index 836193ddce31..10c61fdfdc76 100644 --- a/layouts/community/ergodox/manna-harbour_miryoku/config.h +++ b/layouts/community/ergodox/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h b/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h index 7142f2960d07..b1e9526f9917 100644 --- a/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h +++ b/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h @@ -1,20 +1,37 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . #pragma once +#define XXX KC_NO + +#if defined MIRYOKU_MAPPING_ROTATE +#define LAYOUT_miryoku( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_ortho_4x10( \ +XXX, XXX, K37, K36, K35, K34, K33, K32, XXX, XXX, \ +K29, K28, K27, K26, K25, K24, K23, K22, K21, K20, \ +K19, K18, K17, K16, K15, K14, K13, K12, K11, K10, \ +K09, K08, K07, K06, K05, K04, K03, K02, K01, K00 \ +) +#else #define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_ortho_4x10(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO\ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_ortho_4x10( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ ) +#endif diff --git a/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c index cb3166c9403f..3ba9cf64f979 100644 --- a/layouts/community/ortho_4x12/drashna/keymap.c +++ b/layouts/community/ortho_4x12/drashna/keymap.c @@ -106,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST, VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, TH_LVL, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL, - HPT_TOG, _______, _______, _______, _______, KC_NUKE, _______, _______, _______, _______, _______, TG_MODS + KEYLOCK, _______, _______, _______, _______, KC_NUKE, _______, _______, _______, _______, _______, TG_MODS ) }; diff --git a/layouts/community/ortho_4x12/drashna/rules.mk b/layouts/community/ortho_4x12/drashna/rules.mk index 775ad8e6eb47..8c3e126636e1 100644 --- a/layouts/community/ortho_4x12/drashna/rules.mk +++ b/layouts/community/ortho_4x12/drashna/rules.mk @@ -28,7 +28,6 @@ ifeq ($(strip $(KEYBOARD)), planck/light) RGBLIGHT_ENABLE = yes RGBLIGHT_STARTUP_ANIMATION = yes AUDIO_ENABLE = yes - # HAPTIC_ENABLE += SOLENOID endif ifeq ($(strip $(KEYBOARD)), planck/ez) RGBLIGHT_ENABLE = no diff --git a/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h b/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h index 8ccab4da9f60..5d7ccd257f72 100644 --- a/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h +++ b/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/ortho_5x12/drashna/keymap.c b/layouts/community/ortho_5x12/drashna/keymap.c index 01b06d627d4f..ab70be2822cd 100644 --- a/layouts/community/ortho_5x12/drashna/keymap.c +++ b/layouts/community/ortho_5x12/drashna/keymap.c @@ -124,7 +124,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RST, VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EEP_RST, _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL, - _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS, + KEYLOCK, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h b/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h index 86b854db5c2a..927567fe4bec 100644 --- a/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h +++ b/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h b/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h index f9ccbdf2dfc8..42e03851699c 100644 --- a/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h +++ b/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/planck_mit/manna-harbour_miryoku/config.h b/layouts/community/planck_mit/manna-harbour_miryoku/config.h index c1024d80128a..df24fbba0f80 100644 --- a/layouts/community/planck_mit/manna-harbour_miryoku/config.h +++ b/layouts/community/planck_mit/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c b/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c +++ b/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h b/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h index ad9495a93445..b34f6ad18d03 100644 --- a/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h +++ b/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c b/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c +++ b/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/split_3x6_3/drashna/keymap.c b/layouts/community/split_3x6_3/drashna/keymap.c index a3145a4044ac..7c31972e3f8e 100644 --- a/layouts/community/split_3x6_3/drashna/keymap.c +++ b/layouts/community/split_3x6_3/drashna/keymap.c @@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_split_3x6_3_wrapper( \ KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RESET, VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, - MG_NKRO, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL, + KEYLOCK, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL, HPT_TOG, KC_NUKE, _______, _______, TG_MODS, HPT_FBK ) }; diff --git a/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h b/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h index f21188f33364..4ce96c760051 100644 --- a/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h +++ b/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c b/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c index 1520387e8887..7c5717a0fee0 100644 --- a/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c +++ b/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/lib/python/qmk/cli/flash.py b/lib/python/qmk/cli/flash.py index c2d9e09c693c..28e48a410159 100644 --- a/lib/python/qmk/cli/flash.py +++ b/lib/python/qmk/cli/flash.py @@ -18,17 +18,21 @@ def print_bootloader_help(): """Prints the available bootloaders listed in docs.qmk.fm. """ cli.log.info('Here are the available bootloaders:') + cli.echo('\tavrdude') + cli.echo('\tbootloadhid') cli.echo('\tdfu') + cli.echo('\tdfu-util') + cli.echo('\tmdloader') + cli.echo('\tst-flash') + cli.echo('\tst-link-cli') + cli.log.info('Enhanced variants for split keyboards:') + cli.echo('\tavrdude-split-left') + cli.echo('\tavrdude-split-right') cli.echo('\tdfu-ee') cli.echo('\tdfu-split-left') cli.echo('\tdfu-split-right') - cli.echo('\tavrdude') - cli.echo('\tBootloadHID') - cli.echo('\tdfu-util') cli.echo('\tdfu-util-split-left') cli.echo('\tdfu-util-split-right') - cli.echo('\tst-link-cli') - cli.echo('\tst-flash') cli.echo('For more info, visit https://docs.qmk.fm/#/flashing') diff --git a/lib/python/qmk/constants.py b/lib/python/qmk/constants.py index bfcd4064ac71..73f596ba2c91 100644 --- a/lib/python/qmk/constants.py +++ b/lib/python/qmk/constants.py @@ -13,7 +13,7 @@ MAX_KEYBOARD_SUBFOLDERS = 5 # Supported processor types -CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK66FX1M0', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G431', 'STM32G474', 'STM32L412', 'STM32L422', 'STM32L433', 'STM32L443' +CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK66FX1M0', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G431', 'STM32G474', 'STM32L412', 'STM32L422', 'STM32L433', 'STM32L443', 'GD32VF103' LUFA_PROCESSORS = 'at90usb162', 'atmega16u2', 'atmega32u2', 'atmega16u4', 'atmega32u4', 'at90usb646', 'at90usb647', 'at90usb1286', 'at90usb1287', None VUSB_PROCESSORS = 'atmega32a', 'atmega328p', 'atmega328', 'attiny85' diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index edbf5d7c82f7..c3bbcf3eb0b7 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -112,11 +112,6 @@ def _extract_features(info_data, rules): if rules.get('BOOTMAGIC_ENABLE') == 'full': rules['BOOTMAGIC_ENABLE'] = 'on' - # Skip non-boolean features we haven't implemented special handling for - for feature in ('HAPTIC_ENABLE',): - if rules.get(feature): - del rules[feature] - # Process the rest of the rules as booleans for key, value in rules.items(): if key.endswith('_ENABLE'): @@ -691,8 +686,8 @@ def merge_info_jsons(keyboard, info_data): if layout_name in info_data['layouts']: if len(info_data['layouts'][layout_name]['layout']) != len(layout['layout']): - msg = '%s: %s: Number of elements in info.json does not match! info.json:%s != %s:%s' - _log_error(info_data, msg % (info_data['keyboard_folder'], layout_name, len(layout['layout']), layout_name, len(info_data['layouts'][layout_name]['layout']))) + msg = 'Number of keys for %s does not match! info.json specifies %d keys, C macro specifies %d' + _log_error(info_data, msg % (layout_name, len(layout['layout']), len(info_data['layouts'][layout_name]['layout']))) else: for new_key, existing_key in zip(layout['layout'], info_data['layouts'][layout_name]['layout']): existing_key.update(new_key) diff --git a/platforms/arm_atsam/flash.mk b/platforms/arm_atsam/flash.mk index f31d4b4d95ae..8152610ceb4d 100644 --- a/platforms/arm_atsam/flash.mk +++ b/platforms/arm_atsam/flash.mk @@ -3,9 +3,20 @@ # Architecture or project specific options # +MDLOADER_CLI ?= mdloader + +define EXEC_MDLOADER + $(MDLOADER_CLI) --first --download $(BUILD_DIR)/$(TARGET).bin --restart +endef + +mdloader: bin + $(call EXEC_MDLOADER) + flash: bin ifneq ($(strip $(PROGRAM_CMD)),) $(UNSYNC_OUTPUT_CMD) && $(PROGRAM_CMD) +else ifeq ($(strip $(ARM_ATSAM)),SAMD51J18A) + $(UNSYNC_OUTPUT_CMD) && $(call EXEC_MDLOADER) else $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_ARCH)" endif diff --git a/platforms/chibios/boards/SIPEED_LONGAN_NANO/board/board.mk b/platforms/chibios/boards/SIPEED_LONGAN_NANO/board/board.mk new file mode 100644 index 000000000000..960fc26786f2 --- /dev/null +++ b/platforms/chibios/boards/SIPEED_LONGAN_NANO/board/board.mk @@ -0,0 +1,9 @@ +# List of all the board related files. +BOARDSRC = ${CHIBIOS_CONTRIB}/os/hal/boards/SIPEED_LONGAN_NANO/board.c + +# Required include directories +BOARDINC = ${CHIBIOS_CONTRIB}/os/hal/boards/SIPEED_LONGAN_NANO + +# Shared variables +ALLCSRC += $(BOARDSRC) +ALLINC += $(BOARDINC) diff --git a/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/chconf.h b/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/chconf.h new file mode 100644 index 000000000000..6e5adb0fe183 --- /dev/null +++ b/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/chconf.h @@ -0,0 +1,23 @@ +/* Copyright 2021 QMK + * + * 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 . + */ + +/* To compile the ChibiOS syscall stubs with picolibc + * the _reent struct has to be defined. */ +#if !defined(_FROM_ASM_) && defined(USE_PICOLIBC) +struct _reent; +#endif + +#include_next \ No newline at end of file diff --git a/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/mcuconf.h b/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/mcuconf.h new file mode 100644 index 000000000000..ab086567e550 --- /dev/null +++ b/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/mcuconf.h @@ -0,0 +1,302 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + ChibiOS - Copyright (C) 2021 Stefan Kerkmann + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#pragma once + +#define GD32VF103_MCUCONF +#define GD32VF103CB + +/* + * GD32VF103 drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 0...15 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +/* + * HAL driver system settings. +*/ + +#if defined(OVERCLOCK_120MHZ) +/* (8MHz / 2) * 30 = 120MHz Sysclock */ +#define GD32_ALLOW_120MHZ_SYSCLK +#define GD32_PLLMF_VALUE 30 +#define GD32_USBFSPSC GD32_USBFSPSC_DIV2P5 +#else +/* (8MHz / 2) * 24 = 96MHz Sysclock */ +#define GD32_PLLMF_VALUE 24 +#define GD32_USBFSPSC GD32_USBFSPSC_DIV2 +#endif + +#define GD32_NO_INIT FALSE +#define GD32_IRC8M_ENABLED TRUE +#define GD32_IRC40K_ENABLED FALSE +#define GD32_HXTAL_ENABLED TRUE +#define GD32_LXTAL_ENABLED FALSE +#define GD32_SCS GD32_SCS_PLL +#define GD32_PLLSEL GD32_PLLSEL_PREDV0 +#define GD32_PREDV0SEL GD32_PREDV0SEL_HXTAL +#define GD32_PREDV0_VALUE 2 +#define GD32_PREDV1_VALUE 2 +#define GD32_PLL1MF_VALUE 14 +#define GD32_PLL2MF_VALUE 13 +#define GD32_AHBPSC GD32_AHBPSC_DIV1 +#define GD32_APB1PSC GD32_APB1PSC_DIV2 +#define GD32_APB2PSC GD32_APB2PSC_DIV1 +#define GD32_ADCPSC GD32_ADCPSC_DIV16 +#define GD32_USB_CLOCK_REQUIRED TRUE +#define GD32_I2S_CLOCK_REQUIRED FALSE +#define GD32_CKOUT0SEL GD32_CKOUT0SEL_NOCLOCK +#define GD32_RTCSRC GD32_RTCSRC_NOCLOCK +#define GD32_PVD_ENABLE FALSE +#define GD32_LVDT GD32_LVDT_LEV0 + +/* + * ECLIC system settings. + */ +#define ECLIC_TRIGGER_DEFAULT ECLIC_POSTIVE_EDGE_TRIGGER +#define ECLIC_DMA_TRIGGER ECLIC_TRIGGER_DEFAULT + +/* + * IRQ system settings. + */ +#define GD32_IRQ_EXTI0_PRIORITY 6 +#define GD32_IRQ_EXTI1_PRIORITY 6 +#define GD32_IRQ_EXTI2_PRIORITY 6 +#define GD32_IRQ_EXTI3_PRIORITY 6 +#define GD32_IRQ_EXTI4_PRIORITY 6 +#define GD32_IRQ_EXTI5_9_PRIORITY 6 +#define GD32_IRQ_EXTI10_15_PRIORITY 6 +#define GD32_IRQ_EXTI0_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_IRQ_EXTI1_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_IRQ_EXTI2_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_IRQ_EXTI3_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_IRQ_EXTI4_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_IRQ_EXTI5_9_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_IRQ_EXTI10_15_TRIGGER ECLIC_TRIGGER_DEFAULT + +/* + * ADC driver system settings. + */ +#define GD32_ADC_USE_ADC0 FALSE +#define GD32_ADC_ADC0_DMA_PRIORITY 2 +#define GD32_ADC_ADC0_IRQ_PRIORITY 6 + +/* + * CAN driver system settings. + */ +#define GD32_CAN_USE_CAN0 FALSE +#define GD32_CAN_CAN0_IRQ_PRIORITY 11 +#define GD32_CAN_USE_CAN1 FALSE +#define GD32_CAN_CAN1_IRQ_PRIORITY 11 +#define GD32_CAN_CAN0_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_CAN_CAN1_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT + +/* + * CRC driver system settings. + */ +#define GD32_CRC_USE_CRC0 FALSE +#define GD32_CRC_CRC0_DMA_IRQ_PRIORITY 14 +#define GD32_CRC_CRC0_DMA_PRIORITY 2 +#define GD32_CRC_CRC0_DMA_STREAM GD32_DMA_STREAM_ID(0, 0) +#define CRC_USE_DMA FALSE +#define CRCSW_USE_CRC1 FALSE +#define CRCSW_CRC32_TABLE FALSE +#define CRCSW_CRC16_TABLE FALSE +#define CRCSW_PROGRAMMABLE FALSE + +/* + * DAC driver system settings. + */ +#define GD32_DAC_USE_DAC_CH1 FALSE +#define GD32_DAC_USE_DAC_CH2 FALSE + +/* + * GPT driver system settings. + */ +#define GD32_GPT_USE_TIM0 FALSE +#define GD32_GPT_USE_TIM1 FALSE +#define GD32_GPT_USE_TIM2 FALSE +#define GD32_GPT_USE_TIM3 FALSE +#define GD32_GPT_USE_TIM4 FALSE +#define GD32_GPT_TIM0_IRQ_PRIORITY 7 +#define GD32_GPT_TIM1_IRQ_PRIORITY 7 +#define GD32_GPT_TIM2_IRQ_PRIORITY 7 +#define GD32_GPT_TIM3_IRQ_PRIORITY 7 +#define GD32_GPT_TIM4_IRQ_PRIORITY 7 +#define GD32_GPT_TIM0_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_GPT_TIM1_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_GPT_TIM2_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_GPT_TIM3_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_GPT_TIM4_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_GPT_TIM5_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_GPT_TIM6_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT + +/* + * I2S driver system settings. + */ +#define GD32_I2S_USE_SPI1 FALSE +#define GD32_I2S_USE_SPI2 FALSE +#define GD32_I2S_SPI1_IRQ_PRIORITY 10 +#define GD32_I2S_SPI2_IRQ_PRIORITY 10 +#define GD32_I2S_SPI1_DMA_PRIORITY 1 +#define GD32_I2S_SPI2_DMA_PRIORITY 1 +#define GD32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure") + +/* + * I2C driver system settings. + */ +#define GD32_I2C_USE_I2C0 FALSE +#define GD32_I2C_USE_I2C1 FALSE +#define GD32_I2C_BUSY_TIMEOUT 50 +#define GD32_I2C_I2C0_IRQ_PRIORITY 10 +#define GD32_I2C_I2C1_IRQ_PRIORITY 5 +#define GD32_I2C_I2C0_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_I2C_I2C1_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_I2C_I2C0_DMA_PRIORITY 2 +#define GD32_I2C_I2C1_DMA_PRIORITY 2 +#define GD32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define GD32_ICU_USE_TIM0 FALSE +#define GD32_ICU_USE_TIM1 FALSE +#define GD32_ICU_USE_TIM2 FALSE +#define GD32_ICU_USE_TIM3 FALSE +#define GD32_ICU_USE_TIM4 FALSE +#define GD32_ICU_TIM0_IRQ_PRIORITY 7 +#define GD32_ICU_TIM1_IRQ_PRIORITY 7 +#define GD32_ICU_TIM2_IRQ_PRIORITY 7 +#define GD32_ICU_TIM3_IRQ_PRIORITY 7 +#define GD32_ICU_TIM4_IRQ_PRIORITY 7 +#define GD32_ICU_TIM0_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_ICU_TIM1_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_ICU_TIM2_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_ICU_TIM3_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_ICU_TIM4_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT + +/* + * PWM driver system settings. + */ +#define GD32_PWM_USE_ADVANCED FALSE +#define GD32_PWM_USE_TIM0 FALSE +#define GD32_PWM_USE_TIM1 FALSE +#define GD32_PWM_USE_TIM2 FALSE +#define GD32_PWM_USE_TIM3 FALSE +#define GD32_PWM_USE_TIM4 FALSE +#define GD32_PWM_TIM0_IRQ_PRIORITY 10 +#define GD32_PWM_TIM1_IRQ_PRIORITY 10 +#define GD32_PWM_TIM2_IRQ_PRIORITY 10 +#define GD32_PWM_TIM3_IRQ_PRIORITY 10 +#define GD32_PWM_TIM4_IRQ_PRIORITY 10 +#define GD32_PWM_TIM0_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_PWM_TIM1_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_PWM_TIM2_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_PWM_TIM3_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_PWM_TIM4_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT + +/* + * RTC driver system settings. + */ +#define GD32_RTC_IRQ_PRIORITY 15 +#define GD32_RTC_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT + +/* + * SERIAL driver system settings. + */ +#define GD32_SERIAL_USE_USART0 FALSE +#define GD32_SERIAL_USE_USART1 FALSE +#define GD32_SERIAL_USE_USART2 FALSE +#define GD32_SERIAL_USE_UART3 FALSE +#define GD32_SERIAL_USE_UART4 FALSE +#define GD32_SERIAL_USART0_PRIORITY 10 +#define GD32_SERIAL_USART1_PRIORITY 10 +#define GD32_SERIAL_USART2_PRIORITY 10 +#define GD32_SERIAL_UART3_PRIORITY 10 +#define GD32_SERIAL_UART4_PRIORITY 10 +#define GD32_SERIAL_USART0_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_SERIAL_USART1_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_SERIAL_USART2_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_SERIAL_UART3_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_SERIAL_UART4_TRIGGER ECLIC_TRIGGER_DEFAULT + +/* + * SPI driver system settings. + */ +#define GD32_SPI_USE_SPI0 FALSE +#define GD32_SPI_USE_SPI1 FALSE +#define GD32_SPI_USE_SPI2 FALSE +#define GD32_SPI_SPI0_DMA_PRIORITY 1 +#define GD32_SPI_SPI1_DMA_PRIORITY 1 +#define GD32_SPI_SPI2_DMA_PRIORITY 1 +#define GD32_SPI_SPI0_IRQ_PRIORITY 10 +#define GD32_SPI_SPI1_IRQ_PRIORITY 10 +#define GD32_SPI_SPI2_IRQ_PRIORITY 10 +#define GD32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define GD32_ST_IRQ_PRIORITY 10 +#define GD32_ST_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_ST_USE_TIMER 1 + +/* + * UART driver system settings. + */ +#define GD32_UART_USE_USART0 FALSE +#define GD32_UART_USE_USART1 FALSE +#define GD32_UART_USE_USART2 FALSE +#define GD32_UART_USE_UART3 FALSE +#define GD32_UART_USE_UART4 FALSE +#define GD32_UART_USART0_IRQ_PRIORITY 10 +#define GD32_UART_USART1_IRQ_PRIORITY 10 +#define GD32_UART_USART2_IRQ_PRIORITY 10 +#define GD32_UART_UART3_IRQ_PRIORITY 10 +#define GD32_UART_UART4_IRQ_PRIORITY 10 +#define GD32_UART_USART0_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_UART_USART1_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_UART_USART2_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_UART_UART3_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_UART_UART4_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_UART_USART0_DMA_PRIORITY 3 +#define GD32_UART_USART1_DMA_PRIORITY 3 +#define GD32_UART_USART2_DMA_PRIORITY 3 +#define GD32_UART_UART3_DMA_PRIORITY 3 +#define GD32_UART_UART4_DMA_PRIORITY 3 +#define GD32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define GD32_USB_USE_USBFS TRUE +#define GD32_USB_USBFS_IRQ_PRIORITY 10 +#define GD32_USB_USBFS_IRQ_TRIGGER ECLIC_TRIGGER_DEFAULT +#define GD32_USB_USBFS_RX_FIFO_SIZE 256 + +/* + * WDG driver system settings. + */ +#define GD32_WDG_USE_FWDGT FALSE diff --git a/platforms/chibios/drivers/analog.c b/platforms/chibios/drivers/analog.c index 8c476fcac205..eb437665f1d4 100644 --- a/platforms/chibios/drivers/analog.c +++ b/platforms/chibios/drivers/analog.c @@ -38,7 +38,7 @@ // Otherwise assume V3 #if defined(STM32F0XX) || defined(STM32L0XX) # define USE_ADCV1 -#elif defined(STM32F1XX) || defined(STM32F2XX) || defined(STM32F4XX) +#elif defined(STM32F1XX) || defined(STM32F2XX) || defined(STM32F4XX) || defined(GD32VF103) # define USE_ADCV2 #endif @@ -75,7 +75,7 @@ /* User configurable ADC options */ #ifndef ADC_COUNT -# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F4XX) +# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F4XX) || defined(GD32VF103) # define ADC_COUNT 1 # elif defined(STM32F3XX) # define ADC_COUNT 4 @@ -122,8 +122,8 @@ static ADCConversionGroup adcConversionGroup = { .cfgr1 = ADC_CFGR1_CONT | ADC_RESOLUTION, .smpr = ADC_SAMPLING_RATE, #elif defined(USE_ADCV2) -# if !defined(STM32F1XX) - .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... +# if !defined(STM32F1XX) && !defined(GD32VF103) + .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... # endif .smpr2 = ADC_SMPR2_SMP_AN0(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN1(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN2(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN3(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN4(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN5(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN6(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN7(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN8(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN9(ADC_SAMPLING_RATE), .smpr1 = ADC_SMPR1_SMP_AN10(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN11(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN12(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN13(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN14(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN15(ADC_SAMPLING_RATE), @@ -220,7 +220,7 @@ __attribute__((weak)) adc_mux pinToMux(pin_t pin) { case F9: return TO_MUX( ADC_CHANNEL_IN7, 2 ); case F10: return TO_MUX( ADC_CHANNEL_IN8, 2 ); # endif -#elif defined(STM32F1XX) +#elif defined(STM32F1XX) || defined(GD32VF103) case A0: return TO_MUX( ADC_CHANNEL_IN0, 0 ); case A1: return TO_MUX( ADC_CHANNEL_IN1, 0 ); case A2: return TO_MUX( ADC_CHANNEL_IN2, 0 ); diff --git a/platforms/chibios/drivers/spi_master.c b/platforms/chibios/drivers/spi_master.c index f98db6db97f6..c592369ddeb2 100644 --- a/platforms/chibios/drivers/spi_master.c +++ b/platforms/chibios/drivers/spi_master.c @@ -110,6 +110,31 @@ bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { spiConfig.tar0 |= SPIx_CTARn_BR(8); break; } + +#elif defined(HT32) + spiConfig.cr0 = SPI_CR0_SELOEN; + spiConfig.cr1 = SPI_CR1_MODE | 8; // 8 bits and in master mode + + if (lsbFirst) { + spiConfig.cr1 |= SPI_CR1_FIRSTBIT; + } + + switch (mode) { + case 0: + spiConfig.cr1 |= SPI_CR1_FORMAT_MODE0; + break; + case 1: + spiConfig.cr1 |= SPI_CR1_FORMAT_MODE1; + break; + case 2: + spiConfig.cr1 |= SPI_CR1_FORMAT_MODE2; + break; + case 3: + spiConfig.cr1 |= SPI_CR1_FORMAT_MODE3; + break; + } + + spiConfig.cpr = (roundedDivisor - 1) >> 1; #else spiConfig.cr1 = 0; diff --git a/platforms/chibios/drivers/ws2812.c b/platforms/chibios/drivers/ws2812.c index ffcdcff24213..b46c46ae57f5 100644 --- a/platforms/chibios/drivers/ws2812.c +++ b/platforms/chibios/drivers/ws2812.c @@ -6,7 +6,7 @@ /* Adapted from https://github.com/bigjosh/SimpleNeoPixelDemo/ */ #ifndef NOP_FUDGE -# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) +# if defined(STM32F0XX) || defined(STM32F1XX) || defined(GD32VF103) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) # define NOP_FUDGE 0.4 # else # error("NOP_FUDGE configuration required") diff --git a/platforms/chibios/flash.mk b/platforms/chibios/flash.mk index c0b32c2f2b14..31f69595da2b 100644 --- a/platforms/chibios/flash.mk +++ b/platforms/chibios/flash.mk @@ -82,6 +82,8 @@ else ifeq ($(strip $(MCU_FAMILY)),MIMXRT1062) $(UNSYNC_OUTPUT_CMD) && $(call EXEC_TEENSY) else ifeq ($(strip $(MCU_FAMILY)),STM32) $(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU_UTIL) +else ifeq ($(strip $(MCU_FAMILY)),GD32V) + $(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU_UTIL) else $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_BOOTLOADER)" endif diff --git a/quantum/mcu_selection.mk b/quantum/mcu_selection.mk index 92e3a7c92352..7c4a617af075 100644 --- a/quantum/mcu_selection.mk +++ b/quantum/mcu_selection.mk @@ -138,6 +138,11 @@ ifneq ($(findstring STM32F042, $(MCU)),) # UF2 settings UF2_FAMILY ?= STM32F0 + + # Stack sizes: Since this chip has limited RAM capacity, the stack area needs to be reduced. + # This ensures that the EEPROM page buffer fits into RAM + USE_PROCESS_STACKSIZE = 0x600 + USE_EXCEPTIONS_STACKSIZE = 0x300 endif ifneq ($(findstring STM32F072, $(MCU)),) @@ -536,6 +541,37 @@ ifneq (,$(filter $(MCU),STM32L412 STM32L422)) UF2_FAMILY ?= STM32L4 endif +ifneq ($(findstring GD32VF103, $(MCU)),) + # RISC-V + MCU = risc-v + + # RISC-V extensions and abi configuration + MCU_ARCH = rv32imac + MCU_ABI = ilp32 + MCU_CMODEL = medlow + + ## chip/board settings + # - the next two should match the directories in + # /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) + MCU_FAMILY = GD32V + MCU_SERIES = GD32VF103 + + # Linker script to use + # - it should exist either in /os/common/startup/RISCV-ECLIC/compilers/GCC/ld/ + # or /ld/ + MCU_LDSCRIPT ?= GD32VF103xB + + # Startup code to use + # - it should exist in /os/common/startup/RISCV-ECLIC/compilers/GCC/mk/ + MCU_STARTUP ?= gd32vf103 + + # Board: it should exist either in /os/hal/boards/, + # /boards/, or drivers/boards/ + BOARD ?= SIPEED_LONGAN_NANO + + USE_FPU ?= no +endif + ifneq (,$(filter $(MCU),at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647 at90usb1286 at90usb1287)) PROTOCOL = LUFA diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk index 18839710be08..ad0ffa762d92 100644 --- a/tmk_core/chibios.mk +++ b/tmk_core/chibios.mk @@ -27,29 +27,62 @@ endif 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 -# for things hardware in the contrib repository -STARTUP_MK = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk -ifeq ("$(wildcard $(STARTUP_MK))","") - STARTUP_MK = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk - ifeq ("$(wildcard $(STARTUP_MK))","") - STARTUP_MK = $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk - endif + +# +# Startup, Port and Platform support selection +############################################################################## + +ifeq ($(strip $(MCU)), risc-v) + # RISC-V Support + # As of 7.4.2021 there is only one supported RISC-V platform in Chibios-Contrib, + # therefore all required settings are hard-coded + STARTUP_MK = $(CHIBIOS_CONTRIB)/os/common/startup/RISCV-ECLIC/compilers/GCC/mk/startup_$(MCU_STARTUP).mk + PORT_V = $(CHIBIOS_CONTRIB)/os/common/ports/RISCV-ECLIC/compilers/GCC/mk/port.mk + RULESPATH = $(CHIBIOS_CONTRIB)/os/common/startup/RISCV-ECLIC/compilers/GCC + PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/GD/GD32VF103/platform.mk +else + # ARM Support + # Startup files. Try a few different locations, for compability with old versions and + # for things hardware in the contrib repository + STARTUP_MK = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk + ifeq ("$(wildcard $(STARTUP_MK))","") + STARTUP_MK = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk + ifeq ("$(wildcard $(STARTUP_MK))","") + STARTUP_MK = $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk + endif + endif + + # Compability with old version + PORT_V = $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk + ifeq ("$(wildcard $(PORT_V))","") + PORT_V = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk + endif + + RULESPATH = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC + ifeq ("$(wildcard $(RULESPATH)/rules.mk)","") + RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC + endif endif -include $(STARTUP_MK) -# HAL-OSAL files (optional). -include $(CHIBIOS)/os/hal/hal.mk ifeq ("$(PLATFORM_NAME)","") - PLATFORM_NAME = platform + PLATFORM_NAME = platform endif -PLATFORM_MK = $(CHIBIOS)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLATFORM_NAME).mk ifeq ("$(wildcard $(PLATFORM_MK))","") -PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLATFORM_NAME).mk + PLATFORM_MK = $(CHIBIOS)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLATFORM_NAME).mk + ifeq ("$(wildcard $(PLATFORM_MK))","") + PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLATFORM_NAME).mk + endif endif + +include $(STARTUP_MK) +include $(PORT_V) include $(PLATFORM_MK) +# +# Board support selection. +############################################################################## + BOARD_MK := ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/board.mk)","") @@ -77,13 +110,19 @@ else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/boards/$(BOARD)/board/board endif ifeq ("$(wildcard $(BOARD_MK))","") - BOARD_MK = $(CHIBIOS)/os/hal/boards/$(BOARD)/board.mk - ifeq ("$(wildcard $(BOARD_MK))","") - BOARD_MK = $(CHIBIOS_CONTRIB)/os/hal/boards/$(BOARD)/board.mk - endif + BOARD_MK = $(CHIBIOS)/os/hal/boards/$(BOARD)/board.mk + ifeq ("$(wildcard $(BOARD_MK))","") + BOARD_MK = $(CHIBIOS_CONTRIB)/os/hal/boards/$(BOARD)/board.mk + endif endif -# Bootloader address +include $(BOARD_MK) + +# +# Bootloader selection. +############################################################################## + +# Set bootloader address if supplied. ifdef STM32_BOOTLOADER_ADDRESS OPT_DEFS += -DSTM32_BOOTLOADER_ADDRESS=$(STM32_BOOTLOADER_ADDRESS) endif @@ -113,6 +152,10 @@ else ifneq ("$(wildcard $(BOARD_PATH)/configs/bootloader_defs.h)","") OPT_DEFS += -include $(BOARD_PATH)/configs/bootloader_defs.h endif +# +# ChibiOS config selection. +############################################################################## + # Work out the config file directories ifneq ("$(wildcard $(KEYBOARD_PATH_5)/chconf.h)","") CHCONFDIR = $(KEYBOARD_PATH_5) @@ -130,6 +173,10 @@ else ifneq ("$(wildcard $(TOP_DIR)/platforms/boards/chibios/common/configs/chcon CHCONFDIR = $(TOP_DIR)/platforms/chibios/boards/common/configs endif +# +# HAL config selection. +############################################################################## + ifneq ("$(wildcard $(KEYBOARD_PATH_5)/halconf.h)","") HALCONFDIR = $(KEYBOARD_PATH_5) else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/halconf.h)","") @@ -146,40 +193,10 @@ else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/boards/common/configs/halco HALCONFDIR = $(TOP_DIR)/platforms/chibios/boards/common/configs endif -# HAL-OSAL files (optional). -include $(CHIBIOS)/os/hal/hal.mk - -ifeq ("$(PLATFORM_NAME)","") - PLATFORM_NAME = platform -endif - -PLATFORM_MK = $(CHIBIOS)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLATFORM_NAME).mk -ifeq ("$(wildcard $(PLATFORM_MK))","") -PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLATFORM_NAME).mk -endif -include $(PLATFORM_MK) - - -include $(BOARD_MK) --include $(CHIBIOS)/os/hal/osal/rt/osal.mk # ChibiOS <= 19.x --include $(CHIBIOS)/os/hal/osal/rt-nil/osal.mk # ChibiOS >= 20.x -# RTOS files (optional). -include $(CHIBIOS)/os/rt/rt.mk -# Compability with old version -PORT_V = $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk -ifeq ("$(wildcard $(PORT_V))","") -PORT_V = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk -endif -include $(PORT_V) -# Other files (optional). -include $(CHIBIOS)/os/hal/lib/streams/streams.mk - -RULESPATH = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC -ifeq ("$(wildcard $(RULESPATH)/rules.mk)","") -RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC -endif +# +# Linker script selection. +############################################################################## -# Define linker script file here ifneq ("$(wildcard $(KEYBOARD_PATH_5)/ld/$(MCU_LDSCRIPT).ld)","") LDSCRIPT = $(KEYBOARD_PATH_5)/ld/$(MCU_LDSCRIPT).ld else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/ld/$(MCU_LDSCRIPT).ld)","") @@ -202,17 +219,30 @@ else LDSCRIPT = $(STARTUPLD)/$(MCU_LDSCRIPT).ld endif +# +# Include ChibiOS makefiles. +############################################################################## + +# HAL-OSAL files (optional). +include $(CHIBIOS)/os/hal/hal.mk +-include $(CHIBIOS)/os/hal/osal/rt/osal.mk # ChibiOS <= 19.x +-include $(CHIBIOS)/os/hal/osal/rt-nil/osal.mk # ChibiOS >= 20.x +# RTOS files (optional). +include $(CHIBIOS)/os/rt/rt.mk +# Other files (optional). +include $(CHIBIOS)/os/hal/lib/streams/streams.mk + CHIBISRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ - $(STREAMSSRC) \ - $(CHIBIOS)/os/various/syscalls.c \ - $(PLATFORM_COMMON_DIR)/syscall-fallbacks.c \ - $(PLATFORM_COMMON_DIR)/wait.c + $(KERNSRC) \ + $(PORTSRC) \ + $(OSALSRC) \ + $(HALSRC) \ + $(PLATFORMSRC) \ + $(BOARDSRC) \ + $(STREAMSSRC) \ + $(CHIBIOS)/os/various/syscalls.c \ + $(PLATFORM_COMMON_DIR)/syscall-fallbacks.c \ + $(PLATFORM_COMMON_DIR)/wait.c # Ensure the ASM files are not subjected to LTO -- it'll strip out interrupt handlers otherwise. QUANTUM_LIB_SRC += $(STARTUPASM) $(PORTASM) $(OSALASM) $(PLATFORMASM) @@ -247,9 +277,9 @@ else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/boards/$(BOARD)/configs/hal endif ifeq ($(strip $(USE_CHIBIOS_CONTRIB)),yes) - include $(CHIBIOS_CONTRIB)/os/hal/hal.mk - CHIBISRC += $(PLATFORMSRC_CONTRIB) $(HALSRC_CONTRIB) - EXTRAINCDIRS += $(PLATFORMINC_CONTRIB) $(HALINC_CONTRIB) $(CHIBIOS_CONTRIB)/os/various + include $(CHIBIOS_CONTRIB)/os/hal/hal.mk + CHIBISRC += $(PLATFORMSRC_CONTRIB) $(HALSRC_CONTRIB) + EXTRAINCDIRS += $(PLATFORMINC_CONTRIB) $(HALINC_CONTRIB) $(CHIBIOS_CONTRIB)/os/various endif # @@ -267,61 +297,126 @@ ifneq ("$(wildcard $(BOARD_PATH)/configs/post_config.h)","") endif ############################################################################## -# Compiler settings +# Compiler and Linker configuration # -CC = arm-none-eabi-gcc -OBJCOPY = arm-none-eabi-objcopy -OBJDUMP = arm-none-eabi-objdump -SIZE = arm-none-eabi-size -AR = arm-none-eabi-ar -NM = arm-none-eabi-nm -HEX = $(OBJCOPY) -O $(FORMAT) -EEP = -BIN = $(OBJCOPY) -O binary - -THUMBFLAGS = -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB - -COMPILEFLAGS += -fomit-frame-pointer -COMPILEFLAGS += -falign-functions=16 -COMPILEFLAGS += -ffunction-sections -COMPILEFLAGS += -fdata-sections -COMPILEFLAGS += -fno-common -COMPILEFLAGS += -fshort-wchar -COMPILEFLAGS += $(THUMBFLAGS) - -# FPU options default (Cortex-M4 and Cortex-M7 single precision). -USE_FPU_OPT ?= -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant - -# FPU-related options -USE_FPU ?= no -ifneq ($(USE_FPU),no) - COMPILEFLAGS += $(USE_FPU_OPT) - OPT_DEFS += -DCORTEX_USE_FPU=TRUE + +# Use defined stack sizes of the main thread in linker scripts +LDSYMBOLS =--defsym=__process_stack_size__=$(USE_PROCESS_STACKSIZE),--defsym=__main_stack_size__=$(USE_EXCEPTIONS_STACKSIZE) + +# Shared Compiler flags for all toolchains +SHARED_CFLAGS = -fomit-frame-pointer \ + -ffunction-sections \ + -fdata-sections \ + -fno-common \ + -fshort-wchar + +# Shared Linker flags for all toolchains +SHARED_LDFLAGS = -T $(LDSCRIPT) \ + -Wl,$(LDSYMBOLS) \ + -Wl,--gc-sections \ + -nostartfiles + +ifeq ($(strip $(MCU)), risc-v) + # RISC-V toolchain specific configuration + # Find suitable GCC compiler + ifeq ($(strip $(TOOLCHAIN)),) + ifneq ($(shell which riscv32-unknown-elf-gcc 2>/dev/null),) + TOOLCHAIN = riscv32-unknown-elf- + else + ifneq ($(shell which riscv64-unknown-elf-gcc 2>/dev/null),) + TOOLCHAIN = riscv64-unknown-elf- + else + $(error "No RISC-V toolchain found. Can't find riscv32-unknown-elf-gcc or riscv64-unknown-elf-gcc found in your systems PATH variable. Please install a valid toolchain and make it accessible!") + endif + endif + endif + + # Default to compiling with picolibc for RISC-V targets if available, + # which is available by default on current (bullseye) debian based systems. + ifeq ($(shell $(TOOLCHAIN)gcc --specs=picolibc.specs -E - 2>/dev/null >/dev/null #if !defined(FEE_PAGE_SIZE) || !defined(FEE_PAGE_COUNT) -# if defined(STM32F103xB) || defined(STM32F042x6) +# if defined(STM32F103xB) || defined(STM32F042x6) || defined(GD32VF103C8) || defined(GD32VF103CB) # ifndef FEE_PAGE_SIZE # define FEE_PAGE_SIZE 0x400 // Page size = 1KByte # endif @@ -45,7 +45,9 @@ #if !defined(FEE_MCU_FLASH_SIZE) # if defined(STM32F042x6) # define FEE_MCU_FLASH_SIZE 32 // Size in Kb -# elif defined(STM32F103xB) || defined(STM32F072xB) || defined(STM32F070xB) +# elif defined(GD32VF103C8) +# define FEE_MCU_FLASH_SIZE 64 // Size in Kb +# elif defined(STM32F103xB) || defined(STM32F072xB) || defined(STM32F070xB) || defined(GD32VF103CB) # define FEE_MCU_FLASH_SIZE 128 // Size in Kb # elif defined(STM32F303xC) || defined(STM32F401xC) # define FEE_MCU_FLASH_SIZE 256 // Size in Kb diff --git a/tmk_core/common/chibios/flash_stm32.c b/tmk_core/common/chibios/flash_stm32.c index 8f10903d3d97..72c41b8b784d 100644 --- a/tmk_core/common/chibios/flash_stm32.c +++ b/tmk_core/common/chibios/flash_stm32.c @@ -19,11 +19,16 @@ #include #include "flash_stm32.h" -#if defined(EEPROM_EMU_STM32F103xB) +#if defined(STM32F1XX) # define FLASH_SR_WRPERR FLASH_SR_WRPRTERR #endif -#if defined(EEPROM_EMU_STM32F401xC) +#if defined(MCU_GD32V) +/* GigaDevice GD32VF103 is a STM32F103 clone at heart. */ +# include "gd32v_compatibility.h" +#endif + +#if defined(STM32F4XX) # define FLASH_SR_PGERR (FLASH_SR_PGSERR | FLASH_SR_PGPERR | FLASH_SR_PGAERR) # define FLASH_KEY1 0x45670123U diff --git a/tmk_core/common/chibios/gd32v_compatibility.h b/tmk_core/common/chibios/gd32v_compatibility.h new file mode 100644 index 000000000000..f4dcfd8c55ea --- /dev/null +++ b/tmk_core/common/chibios/gd32v_compatibility.h @@ -0,0 +1,120 @@ +/* Copyright 2021 QMK + * + * 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 . + */ + +#pragma once + +/* GD32VF103 has the same API as STM32F103, but uses different names for literally the same thing. + * As of 23.7.2021 QMK is tailored to use STM32 defines/names, for compatibility sake + * we just redefine the GD32 names. */ + +/* Close your eyes kids. */ +#define MCU_STM32 + +/* AFIO redefines */ +#define MAPR PCF0 +#define AFIO_MAPR_USART1_REMAP AFIO_PCF0_USART0_REMAP +#define AFIO_MAPR_USART2_REMAP AFIO_PCF0_USART1_REMAP +#define AFIO_MAPR_USART3_REMAP_PARTIALREMAP AFIO_PCF0_USART2_REMAP_PARTIALREMAP +#define AFIO_MAPR_USART3_REMAP_FULLREMAP AFIO_PCF0_USART2_REMAP_FULLREMAP + +/* DMA redefines. */ +#define STM32_DMA_STREAM(stream) GD32_DMA_STREAM(stream) +#define STM32_DMA_STREAM_ID(peripheral, channel) GD32_DMA_STREAM_ID(peripheral - 1, channel - 1) +#define STM32_DMA_CR_DIR_M2P GD32_DMA_CTL_DIR_M2P +#define STM32_DMA_CR_PSIZE_WORD GD32_DMA_CTL_PWIDTH_WORD +#define STM32_DMA_CR_MSIZE_WORD GD32_DMA_CTL_MWIDTH_WORD +#define STM32_DMA_CR_MINC GD32_DMA_CTL_MNAGA +#define STM32_DMA_CR_CIRC GD32_DMA_CTL_CMEN +#define STM32_DMA_CR_PL GD32_DMA_CTL_PRIO +#define STM32_DMA_CR_CHSEL GD32_DMA_CTL_CHSEL +#define cr1 ctl0 +#define cr2 ctl1 +#define cr3 ctl2 +#define dier dmainten + +/* ADC redefines */ +#if HAL_USE_ADC +# define STM32_ADC_USE_ADC1 GD32_ADC_USE_ADC0 + +# define smpr1 sampt0 +# define smpr2 sampt1 +# define sqr1 rsq0 +# define sqr2 rsq1 +# define sqr3 rsq2 + +# define ADC_SMPR2_SMP_AN0 ADC_SAMPT1_SMP_SPT0 +# define ADC_SMPR2_SMP_AN1 ADC_SAMPT1_SMP_SPT1 +# define ADC_SMPR2_SMP_AN2 ADC_SAMPT1_SMP_SPT2 +# define ADC_SMPR2_SMP_AN3 ADC_SAMPT1_SMP_SPT3 +# define ADC_SMPR2_SMP_AN4 ADC_SAMPT1_SMP_SPT4 +# define ADC_SMPR2_SMP_AN5 ADC_SAMPT1_SMP_SPT5 +# define ADC_SMPR2_SMP_AN6 ADC_SAMPT1_SMP_SPT6 +# define ADC_SMPR2_SMP_AN7 ADC_SAMPT1_SMP_SPT7 +# define ADC_SMPR2_SMP_AN8 ADC_SAMPT1_SMP_SPT8 +# define ADC_SMPR2_SMP_AN9 ADC_SAMPT1_SMP_SPT9 + +# define ADC_SMPR1_SMP_AN10 ADC_SAMPT0_SMP_SPT10 +# define ADC_SMPR1_SMP_AN11 ADC_SAMPT0_SMP_SPT11 +# define ADC_SMPR1_SMP_AN12 ADC_SAMPT0_SMP_SPT12 +# define ADC_SMPR1_SMP_AN13 ADC_SAMPT0_SMP_SPT13 +# define ADC_SMPR1_SMP_AN14 ADC_SAMPT0_SMP_SPT14 +# define ADC_SMPR1_SMP_AN15 ADC_SAMPT0_SMP_SPT15 + +# define ADC_SQR3_SQ1_N ADC_RSQ2_RSQ1_N +#endif + +/* FLASH redefines */ +#if defined(EEPROM_ENABLE) +# define SR STAT +# define FLASH_SR_BSY FLASH_STAT_BUSY +# define FLASH_SR_PGERR FLASH_STAT_PGERR +# define FLASH_SR_EOP FLASH_STAT_ENDF +# define FLASH_SR_WRPRTERR FLASH_STAT_WPERR +# define FLASH_SR_WRPERR FLASH_SR_WRPRTERR +# define FLASH_OBR_OPTERR FLASH_OBSTAT_OBERR +# define AR ADDR +# define CR CTL +# define FLASH_CR_PER FLASH_CTL_PER +# define FLASH_CR_STRT FLASH_CTL_START +# define FLASH_CR_LOCK FLASH_CTL_LK +# define FLASH_CR_PG FLASH_CTL_PG +# define KEYR KEY +#endif + +/* Serial USART redefines. */ +#if HAL_USE_SERIAL +# if !defined(SERIAL_USART_CR1) +# define SERIAL_USART_CR1 (USART_CTL0_PCEN | USART_CTL0_PM | USART_CTL0_WL) // parity enable, odd parity, 9 bit length +# endif +# if !defined(SERIAL_USART_CR2) +# define SERIAL_USART_CR2 (USART_CTL1_STB_1) // 2 stop bits +# endif +# if !defined(SERIAL_USART_CR3) +# define SERIAL_USART_CR3 0x0 +# endif +# define USART_CR3_HDSEL USART_CTL2_HDEN +# define CCR CHCV +#endif + +/* SPI redefines. */ +#if HAL_USE_SPI +# define SPI_CR1_LSBFIRST SPI_CTL0_LF +# define SPI_CR1_CPHA SPI_CTL0_CKPH +# define SPI_CR1_CPOL SPI_CTL0_CKPL +# define SPI_CR1_BR_0 SPI_CTL0_PSC_0 +# define SPI_CR1_BR_1 SPI_CTL0_PSC_1 +# define SPI_CR1_BR_2 SPI_CTL0_PSC_2 +#endif diff --git a/tmk_core/common/chibios/syscall-fallbacks.c b/tmk_core/common/chibios/syscall-fallbacks.c index 739017ae1dfd..4569879c7cee 100644 --- a/tmk_core/common/chibios/syscall-fallbacks.c +++ b/tmk_core/common/chibios/syscall-fallbacks.c @@ -18,6 +18,12 @@ #include #include +/* To compile the ChibiOS syscall stubs with picolibc + * the _reent struct has to be defined. */ +#if defined(USE_PICOLIBC) +struct _reent; +#endif + #pragma GCC diagnostic ignored "-Wmissing-prototypes" __attribute__((weak, used)) int _open_r(struct _reent *r, const char *path, int flag, int m) { diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index 871136c13708..71539e8b80e0 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -103,8 +103,11 @@ void shutdown_user(void) { #ifdef RGB_MATRIX_ENABLE rgb_matrix_set_color_all(0xFF, 0x00, 0x00); rgb_matrix_update_pwm_buffers(); - #endif // RGB_MATRIX_ENABLE +#ifdef OLED_ENABLE + oled_off(); +#endif + shutdown_keymap(); } diff --git a/users/drashna/drashna_font.h b/users/drashna/drashna_font.h index e9353e62a9f9..27dc8b1b5d2b 100644 --- a/users/drashna/drashna_font.h +++ b/users/drashna/drashna_font.h @@ -6,660 +6,559 @@ #if __has_include("../../../../Documents/qmk/oled_font.h") # include "../../../../Documents/qmk/oled_font.h" #else + +// additional fonts from +// https://github.com/datacute/TinyOLED-Fonts + # include "progmem.h" // clang-format off static const unsigned char font[] PROGMEM = { - 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, // 0x00 0 - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, // 0x01 1 - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, // 0x02 2 - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, // 0x03 3 ♥ - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, // 0x04 4 ♦ - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, // 0x05 5 ♧ - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, // 0x06 6 ♤ - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, // 0x07 7 - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, // 0x08 8 - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, // 0x09 9 - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, // 0x0A 10 - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, // 0x0B 11 ♂ - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, // 0x0C 12 ♀ - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, // 0x0D 13 ♪ - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, // 0x0E 14 ♫ - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, // 0x0F 15 - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, // 0x10 16 - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, // 0x11 17 - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, // 0x12 18 ↕ - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, // 0x13 19 ‼ - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, // 0x14 20 ¶ - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, // 0x15 21 § - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, // 0x16 22 _ - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, // 0x17 23 ↨ - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, // 0x18 24 ↑ - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, // 0x19 25 ↓ - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, // 0x1A 26 → - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, // 0x1B 27 ← - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, // 0x1C 28 ⌙h - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, // 0x1D 29 ↭ - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, // 0x1E 30 - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, // 0x1F 31 + 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + # if defined(OLED_FONT_5X5) - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32 - 0x5c,0x00,0x00,0x00,0x00,0x00, // 0x21 33 ! - 0x06,0x00,0x06,0x00,0x00,0x00, // 0x22 34 " - 0x28,0x7c,0x28,0x7c,0x28,0x00, // 0x23 35 # - 0x5c,0x54,0xfe,0x54,0x74,0x00, // 0x24 36 $ - 0x44,0x20,0x10,0x08,0x44,0x00, // 0x25 37 % - 0x28,0x54,0x54,0x20,0x50,0x00, // 0x26 38 & - 0x06,0x00,0x00,0x00,0x00,0x00, // 0x27 39 ' - 0x38,0x44,0x00,0x00,0x00,0x00, // 0x28 40 ( - 0x44,0x38,0x00,0x00,0x00,0x00, // 0x29 41 ) - 0x02,0x07,0x02,0x00,0x00,0x00, // 0x2A 42 * - 0x10,0x10,0x7c,0x10,0x10,0x00, // 0x2B 43 + - 0xc0,0x00,0x00,0x00,0x00,0x00, // 0x2C 44 , - 0x10,0x10,0x10,0x10,0x10,0x00, // 0x2D 45 - - 0x40,0x00,0x00,0x00,0x00,0x00, // 0x2E 46 . - 0x60,0x10,0x0c,0x00,0x00,0x00, // 0x2F 47 / - 0x7c,0x64,0x54,0x4c,0x7c,0x00, // 0x30 48 0 - 0x48,0x7c,0x40,0x00,0x00,0x00, // 0x31 49 1 - 0x64,0x54,0x54,0x54,0x48,0x00, // 0x32 50 2 - 0x44,0x54,0x54,0x54,0x6c,0x00, // 0x33 51 3 - 0x3c,0x20,0x70,0x20,0x20,0x00, // 0x34 52 4 - 0x5c,0x54,0x54,0x54,0x24,0x00, // 0x35 53 5 - 0x7c,0x54,0x54,0x54,0x74,0x00, // 0x36 54 6 - 0x04,0x04,0x64,0x14,0x0c,0x00, // 0x37 55 7 - 0x7c,0x54,0x54,0x54,0x7c,0x00, // 0x38 56 8 - 0x5c,0x54,0x54,0x54,0x7c,0x00, // 0x39 57 9 - 0x44,0x00,0x00,0x00,0x00,0x00, // 0x3A 58 : - 0xc4,0x00,0x00,0x00,0x00,0x00, // 0x3B 59 ; - 0x10,0x28,0x44,0x00,0x00,0x00, // 0x3C 60 < - 0x28,0x28,0x28,0x28,0x28,0x00, // 0x3D 61 = - 0x44,0x28,0x10,0x00,0x00,0x00, // 0x3E 62 > - 0x08,0x04,0x54,0x08,0x00,0x00, // 0x3F 63 ? - 0x7c,0x44,0x54,0x54,0x5c,0x00, // 0x40 64 @ - 0x7c,0x24,0x24,0x24,0x7c,0x00, // 0x41 65 A - 0x7c,0x54,0x54,0x54,0x6c,0x00, // 0x42 66 B - 0x7c,0x44,0x44,0x44,0x44,0x00, // 0x43 67 C - 0x7c,0x44,0x44,0x44,0x38,0x00, // 0x44 68 D - 0x7c,0x54,0x54,0x54,0x44,0x00, // 0x45 69 E - 0x7c,0x14,0x14,0x14,0x04,0x00, // 0x46 70 F - 0x7c,0x44,0x44,0x54,0x74,0x00, // 0x47 71 G - 0x7c,0x10,0x10,0x10,0x7c,0x00, // 0x48 72 H - 0x44,0x44,0x7c,0x44,0x44,0x00, // 0x49 73 I - 0x60,0x40,0x40,0x44,0x7c,0x00, // 0x4A 74 J - 0x7c,0x10,0x10,0x28,0x44,0x00, // 0x4B 75 K - 0x7c,0x40,0x40,0x40,0x40,0x00, // 0x4C 76 L - 0x7c,0x08,0x10,0x08,0x7c,0x00, // 0x4D 77 M - 0x7c,0x08,0x10,0x20,0x7c,0x00, // 0x4E 78 N - 0x38,0x44,0x44,0x44,0x38,0x00, // 0x4F 79 O - 0x7c,0x14,0x14,0x14,0x08,0x00, // 0x50 80 P - 0x3c,0x24,0x64,0x24,0x3c,0x00, // 0x51 81 Q - 0x7c,0x14,0x14,0x14,0x68,0x00, // 0x52 82 R - 0x5c,0x54,0x54,0x54,0x74,0x00, // 0x53 83 S - 0x04,0x04,0x7c,0x04,0x04,0x00, // 0x54 84 T - 0x7c,0x40,0x40,0x40,0x7c,0x00, // 0x55 85 U - 0x0c,0x30,0x40,0x30,0x0c,0x00, // 0x56 86 V - 0x3c,0x40,0x30,0x40,0x3c,0x00, // 0x57 87 W - 0x44,0x28,0x10,0x28,0x44,0x00, // 0x58 88 X - 0x0c,0x10,0x60,0x10,0x0c,0x00, // 0x59 89 Y - 0x44,0x64,0x54,0x4c,0x44,0x00, // 0x5A 90 Z - 0x7c,0x44,0x00,0x00,0x00,0x00, // 0x5B 91 [ - 0x0c,0x10,0x60,0x00,0x00,0x00, // 0x5C 92 \ backslash - 0x44,0x7c,0x00,0x00,0x00,0x00, // 0x5D 93 ] - 0x00,0x01,0x00,0x01,0x00,0x00, // 0x5E 94 ^ - 0x40,0x40,0x40,0x40,0x40,0x40, // 0x5F 95 _ - 0x00,0x01,0x00,0x00,0x00,0x00, // 0x60 96 ` - 0x7c,0x24,0x24,0x24,0x7c,0x00, // 0x61 97 a - 0x7c,0x54,0x54,0x54,0x6c,0x00, // 0x62 98 b - 0x7c,0x44,0x44,0x44,0x44,0x00, // 0x63 99 c - 0x7c,0x44,0x44,0x44,0x38,0x00, // 0x64 100 d - 0x7c,0x54,0x54,0x54,0x44,0x00, // 0x65 101 e - 0x7c,0x14,0x14,0x14,0x04,0x00, // 0x66 102 f - 0x7c,0x44,0x44,0x54,0x74,0x00, // 0x67 103 g - 0x7c,0x10,0x10,0x10,0x7c,0x00, // 0x68 104 h - 0x44,0x44,0x7c,0x44,0x44,0x00, // 0x69 105 i - 0x60,0x40,0x40,0x44,0x7c,0x00, // 0x6A 106 j - 0x7c,0x10,0x10,0x28,0x44,0x00, // 0x6B 107 k - 0x7c,0x40,0x40,0x40,0x40,0x00, // 0x6C 108 l - 0x7c,0x08,0x10,0x08,0x7c,0x00, // 0x6D 109 m - 0x7c,0x08,0x10,0x20,0x7c,0x00, // 0x6E 110 n - 0x38,0x44,0x44,0x44,0x38,0x00, // 0x6F 111 o - 0x7c,0x14,0x14,0x14,0x08,0x00, // 0x70 112 p - 0x3c,0x24,0x64,0x24,0x3c,0x00, // 0x71 113 q - 0x7c,0x14,0x14,0x14,0x68,0x00, // 0x72 114 r - 0x5c,0x54,0x54,0x54,0x74,0x00, // 0x73 115 s - 0x04,0x04,0x7c,0x04,0x04,0x00, // 0x74 116 t - 0x7c,0x40,0x40,0x40,0x7c,0x00, // 0x75 117 u - 0x0c,0x30,0x40,0x30,0x0c,0x00, // 0x76 118 v - 0x3c,0x40,0x30,0x40,0x3c,0x00, // 0x77 119 w - 0x44,0x28,0x10,0x28,0x44,0x00, // 0x78 120 x - 0x0c,0x10,0x60,0x10,0x0c,0x00, // 0x79 121 y - 0x44,0x64,0x54,0x4c,0x44,0x00, // 0x7A 122 z - 0x10,0x7c,0x44,0x00,0x00,0x00, // 0x7B 123 { - 0x6c,0x00,0x00,0x00,0x00,0x00, // 0x7C 124 | - 0x44,0x7c,0x10,0x00,0x00,0x00, // 0x7D 125 } - 0x02,0x01,0x02,0x01,0x00,0x00, // 0x7E 126 ~ - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x7c, 0x28, 0x7c, 0x28, 0x00, + 0x5c, 0x54, 0xfe, 0x54, 0x74, 0x00, + 0x44, 0x20, 0x10, 0x08, 0x44, 0x00, + 0x28, 0x54, 0x54, 0x20, 0x50, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x44, 0x00, 0x00, 0x00, 0x00, + 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x07, 0x02, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x7c, 0x10, 0x10, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x10, 0x0c, 0x00, 0x00, 0x00, + 0x7c, 0x64, 0x54, 0x4c, 0x7c, 0x00, + 0x48, 0x7c, 0x40, 0x00, 0x00, 0x00, + 0x64, 0x54, 0x54, 0x54, 0x48, 0x00, + 0x44, 0x54, 0x54, 0x54, 0x6c, 0x00, + 0x3c, 0x20, 0x70, 0x20, 0x20, 0x00, + 0x5c, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x7c, 0x54, 0x54, 0x54, 0x74, 0x00, + 0x04, 0x04, 0x64, 0x14, 0x0c, 0x00, + 0x7c, 0x54, 0x54, 0x54, 0x7c, 0x00, + 0x5c, 0x54, 0x54, 0x54, 0x7c, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, + 0x28, 0x28, 0x28, 0x28, 0x28, 0x00, + 0x44, 0x28, 0x10, 0x00, 0x00, 0x00, + 0x08, 0x04, 0x54, 0x08, 0x00, 0x00, + 0x7c, 0x44, 0x54, 0x54, 0x5c, 0x00, + 0x7c, 0x24, 0x24, 0x24, 0x7c, 0x00, + 0x7c, 0x54, 0x54, 0x54, 0x6c, 0x00, + 0x7c, 0x44, 0x44, 0x44, 0x44, 0x00, + 0x7c, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7c, 0x54, 0x54, 0x54, 0x44, 0x00, + 0x7c, 0x14, 0x14, 0x14, 0x04, 0x00, + 0x7c, 0x44, 0x44, 0x54, 0x74, 0x00, + 0x7c, 0x10, 0x10, 0x10, 0x7c, 0x00, + 0x44, 0x44, 0x7c, 0x44, 0x44, 0x00, + 0x60, 0x40, 0x40, 0x44, 0x7c, 0x00, + 0x7c, 0x10, 0x10, 0x28, 0x44, 0x00, + 0x7c, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7c, 0x08, 0x10, 0x08, 0x7c, 0x00, + 0x7c, 0x08, 0x10, 0x20, 0x7c, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7c, 0x14, 0x14, 0x14, 0x08, 0x00, + 0x3c, 0x24, 0x64, 0x24, 0x3c, 0x00, + 0x7c, 0x14, 0x14, 0x14, 0x68, 0x00, + 0x5c, 0x54, 0x54, 0x54, 0x74, 0x00, + 0x04, 0x04, 0x7c, 0x04, 0x04, 0x00, + 0x7c, 0x40, 0x40, 0x40, 0x7c, 0x00, + 0x0c, 0x30, 0x40, 0x30, 0x0c, 0x00, + 0x3c, 0x40, 0x30, 0x40, 0x3c, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x0c, 0x10, 0x60, 0x10, 0x0c, 0x00, + 0x44, 0x64, 0x54, 0x4c, 0x44, 0x00, + 0x7c, 0x44, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x10, 0x60, 0x00, 0x00, 0x00, + 0x44, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0x24, 0x24, 0x24, 0x7c, 0x00, + 0x7c, 0x54, 0x54, 0x54, 0x6c, 0x00, + 0x7c, 0x44, 0x44, 0x44, 0x44, 0x00, + 0x7c, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7c, 0x54, 0x54, 0x54, 0x44, 0x00, + 0x7c, 0x14, 0x14, 0x14, 0x04, 0x00, + 0x7c, 0x44, 0x44, 0x54, 0x74, 0x00, + 0x7c, 0x10, 0x10, 0x10, 0x7c, 0x00, + 0x44, 0x44, 0x7c, 0x44, 0x44, 0x00, + 0x60, 0x40, 0x40, 0x44, 0x7c, 0x00, + 0x7c, 0x10, 0x10, 0x28, 0x44, 0x00, + 0x7c, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7c, 0x08, 0x10, 0x08, 0x7c, 0x00, + 0x7c, 0x08, 0x10, 0x20, 0x7c, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7c, 0x14, 0x14, 0x14, 0x08, 0x00, + 0x3c, 0x24, 0x64, 0x24, 0x3c, 0x00, + 0x7c, 0x14, 0x14, 0x14, 0x68, 0x00, + 0x5c, 0x54, 0x54, 0x54, 0x74, 0x00, + 0x04, 0x04, 0x7c, 0x04, 0x04, 0x00, + 0x7c, 0x40, 0x40, 0x40, 0x7c, 0x00, + 0x0c, 0x30, 0x40, 0x30, 0x0c, 0x00, + 0x3c, 0x40, 0x30, 0x40, 0x3c, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x0c, 0x10, 0x60, 0x10, 0x0c, 0x00, + 0x44, 0x64, 0x54, 0x4c, 0x44, 0x00, + 0x10, 0x7c, 0x44, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x44, 0x7c, 0x10, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # lif defined(OLED_FONT_AZTECH) - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32 - 0x00,0x2e,0x00,0x00,0x00,0x00, // 0x21 33 ! - 0x00,0x02,0x00,0x02,0x00,0x00, // 0x22 34 " - 0x00,0x0a,0x1e,0x0a,0x1e,0x00, // 0x23 35 # - 0x00,0x0e,0x2a,0x6b,0x2a,0x3a, // 0x24 36 $ - 0x00,0x06,0x06,0x26,0x18,0x06, // 0x25 37 % - 0x38,0x3e,0x2a,0x2a,0x28,0x38, // 0x26 38 & - 0x18,0x02,0x00,0x00,0x00,0x00, // 0x27 39 ' - 0x00,0x3e,0x22,0x00,0x00,0x00, // 0x28 40 ( - 0x00,0x22,0x3e,0x00,0x00,0x00, // 0x29 41 ) - 0x00,0x0e,0x0e,0x0e,0x04,0x00, // 0x2A 42 * - 0x00,0x08,0x1c,0x08,0x00,0x00, // 0x2B 43 + - 0x00,0x20,0x00,0x00,0x00,0x00, // 0x2C 44 , - 0x00,0x08,0x08,0x08,0x00,0x00, // 0x2D 45 - - 0x00,0x20,0x00,0x00,0x00,0x00, // 0x2E 46 . - 0x00,0x20,0x18,0x06,0x00,0x00, // 0x2F 47 / - 0x00,0x3e,0x22,0x2a,0x22,0x3e, // 0x30 48 0 - 0x02,0x3e,0x00,0x00,0x00,0x00, // 0x31 49 1 - 0x00,0x38,0x28,0x2a,0x2a,0x2e, // 0x32 50 2 - 0x00,0x22,0x2a,0x2e,0x38,0x00, // 0x33 51 3 - 0x00,0x0e,0x08,0x08,0x3e,0x08, // 0x34 52 4 - 0x00,0x2e,0x2a,0x2a,0x28,0x38, // 0x35 53 5 - 0x00,0x3e,0x2a,0x2a,0x28,0x38, // 0x36 54 6 - 0x00,0x06,0x02,0x02,0x0a,0x3e, // 0x37 55 7 - 0x00,0x38,0x2e,0x2a,0x2e,0x38, // 0x38 56 8 - 0x00,0x0e,0x0a,0x2a,0x2a,0x3e, // 0x39 57 9 - 0x00,0x28,0x00,0x00,0x00,0x00, // 0x3A 58 : - 0x00,0x28,0x00,0x00,0x00,0x00, // 0x3B 59 ; - 0x00,0x08,0x14,0x22,0x00,0x00, // 0x3C 60 < - 0x00,0x14,0x14,0x14,0x14,0x00, // 0x3D 61 = - 0x00,0x22,0x14,0x08,0x00,0x00, // 0x3E 62 > - 0x00,0x06,0x02,0x2a,0x0a,0x06, // 0x3F 63 ? - 0x00,0x3e,0x02,0x3a,0x2a,0x0a, // 0x40 64 @ - 0x22,0x3e,0x02,0x0a,0x0a,0x3e, // 0x41 65 A - 0x00,0x3e,0x22,0x2a,0x2e,0x38, // 0x42 66 B - 0x00,0x3e,0x22,0x22,0x20,0x30, // 0x43 67 C - 0x00,0x3e,0x22,0x22,0x22,0x3c, // 0x44 68 D - 0x00,0x3e,0x2a,0x22,0x20,0x30, // 0x45 69 E - 0x00,0x3e,0x0a,0x0a,0x06,0x02, // 0x46 70 F - 0x00,0x3e,0x22,0x2a,0x28,0x38, // 0x47 71 G - 0x00,0x3e,0x08,0x08,0x08,0x3e, // 0x48 72 H - 0x00,0x22,0x3e,0x22,0x00,0x00, // 0x49 73 I - 0x00,0x30,0x20,0x20,0x22,0x3e, // 0x4A 74 J - 0x00,0x3e,0x08,0x08,0x0e,0x38, // 0x4B 75 K - 0x00,0x3e,0x20,0x20,0x20,0x30, // 0x4C 76 L - 0x00,0x3e,0x02,0x3e,0x20,0x3e, // 0x4D 77 M - 0x3e,0x3e,0x02,0x3e,0x20,0x3e, // 0x4E 78 N - 0x00,0x3e,0x22,0x22,0x22,0x3e, // 0x4F 79 O - 0x00,0x3e,0x02,0x0a,0x0a,0x0e, // 0x50 80 P - 0x00,0x3e,0x22,0x22,0x22,0x3e, // 0x51 81 Q - 0x00,0x3e,0x02,0x0a,0x0e,0x38, // 0x52 82 R - 0x00,0x0e,0x0a,0x2a,0x2a,0x3a, // 0x53 83 S - 0x00,0x06,0x02,0x3e,0x02,0x06, // 0x54 84 T - 0x00,0x3e,0x20,0x20,0x20,0x3e, // 0x55 85 U - 0x00,0x3e,0x20,0x20,0x3e,0x00, // 0x56 86 V - 0x00,0x3e,0x20,0x3e,0x02,0x3e, // 0x57 87 W - 0x3e,0x3a,0x0e,0x08,0x0e,0x3a, // 0x58 88 X - 0x00,0x0e,0x08,0x08,0x28,0x3e, // 0x59 89 Y - 0x00,0x3a,0x2a,0x2a,0x0a,0x0e, // 0x5A 90 Z - 0x00,0x3e,0x22,0x00,0x00,0x00, // 0x5B 91 [ - 0x00,0x02,0x0c,0x30,0x00,0x00, // 0x5C 92 \ backslash - 0x22,0x3e,0x00,0x00,0x00,0x00, // 0x5D 93 ] - 0x00,0x01,0x00,0x01,0x00,0x00, // 0x5E 94 ^ - 0x00,0x20,0x20,0x20,0x00,0x00, // 0x5F 95 _ - 0x00,0x01,0x00,0x00,0x00,0x00, // 0x60 96 ` - 0x00,0x38,0x28,0x28,0x08,0x38, // 0x61 97 a - 0x00,0x3e,0x20,0x28,0x28,0x38, // 0x62 98 b - 0x00,0x38,0x28,0x28,0x20,0x30, // 0x63 99 c - 0x00,0x38,0x28,0x28,0x20,0x3e, // 0x64 100 d - 0x00,0xf8,0x88,0x28,0x28,0x38, // 0x65 101 e - 0x00,0xf8,0x28,0x28,0x18,0x08, // 0x66 102 f - 0x00,0x38,0x28,0xa8,0x88,0xf8, // 0x67 103 g - 0x00,0x3c,0x08,0x08,0x08,0x38, // 0x68 104 h - 0x00,0x3a,0x00,0x00,0x00,0x00, // 0x69 105 i - 0x80,0xfa,0x00,0x00,0x00,0x00, // 0x6A 106 j - 0x00,0x3e,0x08,0x08,0x38,0x2c, // 0x6B 107 k - 0x00,0x3e,0x20,0x00,0x00,0x00, // 0x6C 108 l - 0x00,0x38,0x08,0x38,0x20,0x38, // 0x6D 109 m - 0x38,0x38,0x08,0x38,0x20,0x38, // 0x6E 110 n - 0x00,0x38,0x28,0x28,0x28,0x38, // 0x6F 111 o - 0x00,0xf8,0x08,0x28,0x28,0x38, // 0x70 112 p - 0x00,0x38,0x28,0x28,0x08,0xf8, // 0x71 113 q - 0x00,0x38,0x08,0x08,0x18,0x08, // 0x72 114 r - 0x00,0x38,0x28,0xa8,0xa8,0xe8, // 0x73 115 s - 0x00,0x3e,0x28,0x28,0x20,0x30, // 0x74 116 t - 0x00,0x38,0x20,0x20,0x20,0x38, // 0x75 117 u - 0x00,0x38,0x20,0x38,0x00,0x00, // 0x76 118 v - 0x00,0x38,0x20,0x38,0x08,0x38, // 0x77 119 w - 0x38,0x28,0x38,0x10,0x38,0x28, // 0x78 120 x - 0x00,0x38,0x20,0xa0,0xa0,0xf8, // 0x79 121 y - 0x00,0xe8,0xa8,0xa8,0x28,0x38, // 0x7A 122 z - 0x08,0x3e,0x22,0x00,0x00,0x00, // 0x7B 123 { - 0x00,0x3f,0x00,0x00,0x00,0x00, // 0x7C 124 | - 0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 } - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7E 126 ~ - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x0a, 0x1e, 0x0a, 0x1e, 0x00, + 0x00, 0x0e, 0x2a, 0x6b, 0x2a, 0x3a, + 0x00, 0x06, 0x06, 0x26, 0x18, 0x06, + 0x38, 0x3e, 0x2a, 0x2a, 0x28, 0x38, + 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3e, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x22, 0x3e, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x0e, 0x0e, 0x04, 0x00, + 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x18, 0x06, 0x00, 0x00, + 0x00, 0x3e, 0x22, 0x2a, 0x22, 0x3e, + 0x02, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x28, 0x2a, 0x2a, 0x2e, + 0x00, 0x22, 0x2a, 0x2e, 0x38, 0x00, + 0x00, 0x0e, 0x08, 0x08, 0x3e, 0x08, + 0x00, 0x2e, 0x2a, 0x2a, 0x28, 0x38, + 0x00, 0x3e, 0x2a, 0x2a, 0x28, 0x38, + 0x00, 0x06, 0x02, 0x02, 0x0a, 0x3e, + 0x00, 0x38, 0x2e, 0x2a, 0x2e, 0x38, + 0x00, 0x0e, 0x0a, 0x2a, 0x2a, 0x3e, + 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x00, 0x00, + 0x00, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x22, 0x14, 0x08, 0x00, 0x00, + 0x00, 0x06, 0x02, 0x2a, 0x0a, 0x06, + 0x00, 0x3e, 0x02, 0x3a, 0x2a, 0x0a, + 0x22, 0x3e, 0x02, 0x0a, 0x0a, 0x3e, + 0x00, 0x3e, 0x22, 0x2a, 0x2e, 0x38, + 0x00, 0x3e, 0x22, 0x22, 0x20, 0x30, + 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3c, + 0x00, 0x3e, 0x2a, 0x22, 0x20, 0x30, + 0x00, 0x3e, 0x0a, 0x0a, 0x06, 0x02, + 0x00, 0x3e, 0x22, 0x2a, 0x28, 0x38, + 0x00, 0x3e, 0x08, 0x08, 0x08, 0x3e, + 0x00, 0x22, 0x3e, 0x22, 0x00, 0x00, + 0x00, 0x30, 0x20, 0x20, 0x22, 0x3e, + 0x00, 0x3e, 0x08, 0x08, 0x0e, 0x38, + 0x00, 0x3e, 0x20, 0x20, 0x20, 0x30, + 0x00, 0x3e, 0x02, 0x3e, 0x20, 0x3e, + 0x3e, 0x3e, 0x02, 0x3e, 0x20, 0x3e, + 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3e, + 0x00, 0x3e, 0x02, 0x0a, 0x0a, 0x0e, + 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3e, + 0x00, 0x3e, 0x02, 0x0a, 0x0e, 0x38, + 0x00, 0x0e, 0x0a, 0x2a, 0x2a, 0x3a, + 0x00, 0x06, 0x02, 0x3e, 0x02, 0x06, + 0x00, 0x3e, 0x20, 0x20, 0x20, 0x3e, + 0x00, 0x3e, 0x20, 0x20, 0x3e, 0x00, + 0x00, 0x3e, 0x20, 0x3e, 0x02, 0x3e, + 0x3e, 0x3a, 0x0e, 0x08, 0x0e, 0x3a, + 0x00, 0x0e, 0x08, 0x08, 0x28, 0x3e, + 0x00, 0x3a, 0x2a, 0x2a, 0x0a, 0x0e, + 0x00, 0x3e, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x0c, 0x30, 0x00, 0x00, + 0x22, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x28, 0x28, 0x08, 0x38, + 0x00, 0x3e, 0x20, 0x28, 0x28, 0x38, + 0x00, 0x38, 0x28, 0x28, 0x20, 0x30, + 0x00, 0x38, 0x28, 0x28, 0x20, 0x3e, + 0x00, 0xf8, 0x88, 0x28, 0x28, 0x38, + 0x00, 0xf8, 0x28, 0x28, 0x18, 0x08, + 0x00, 0x38, 0x28, 0xa8, 0x88, 0xf8, + 0x00, 0x3c, 0x08, 0x08, 0x08, 0x38, + 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xfa, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3e, 0x08, 0x08, 0x38, 0x2c, + 0x00, 0x3e, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x08, 0x38, 0x20, 0x38, + 0x38, 0x38, 0x08, 0x38, 0x20, 0x38, + 0x00, 0x38, 0x28, 0x28, 0x28, 0x38, + 0x00, 0xf8, 0x08, 0x28, 0x28, 0x38, + 0x00, 0x38, 0x28, 0x28, 0x08, 0xf8, + 0x00, 0x38, 0x08, 0x08, 0x18, 0x08, + 0x00, 0x38, 0x28, 0xa8, 0xa8, 0xe8, + 0x00, 0x3e, 0x28, 0x28, 0x20, 0x30, + 0x00, 0x38, 0x20, 0x20, 0x20, 0x38, + 0x00, 0x38, 0x20, 0x38, 0x00, 0x00, + 0x00, 0x38, 0x20, 0x38, 0x08, 0x38, + 0x38, 0x28, 0x38, 0x10, 0x38, 0x28, + 0x00, 0x38, 0x20, 0xa0, 0xa0, 0xf8, + 0x00, 0xe8, 0xa8, 0xa8, 0x28, 0x38, + 0x08, 0x3e, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x22, 0x3e, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # elif defined(OLED_FONT_BMPLAIN) - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32 - 0x2e,0x00,0x00,0x00,0x00,0x00, // 0x21 33 ! - 0x03,0x00,0x03,0x00,0x00,0x00, // 0x22 34 " - 0x0a,0x1f,0x0a,0x1f,0x0a,0x00, // 0x23 35 # - 0x2e,0x2a,0x6b,0x2a,0x3a,0x00, // 0x24 36 $ - 0x0e,0x2a,0x1e,0x08,0x3c,0x2a, // 0x25 37 % - 0x3e,0x2a,0x2a,0x22,0x38,0x08, // 0x26 38 & - 0x03,0x00,0x00,0x00,0x00,0x00, // 0x27 39 ' - 0x1c,0x22,0x00,0x00,0x00,0x00, // 0x28 40 ( - 0x22,0x1c,0x00,0x00,0x00,0x00, // 0x29 41 ) - 0x15,0x0e,0x04,0x0e,0x15,0x00, // 0x2A 42 * - 0x08,0x08,0x3e,0x08,0x08,0x00, // 0x2B 43 + - 0x60,0x00,0x00,0x00,0x00,0x00, // 0x2C 44 , - 0x08,0x08,0x08,0x08,0x08,0x00, // 0x2D 45 - - 0x20,0x00,0x00,0x00,0x00,0x00, // 0x2E 46 . - 0x20,0x10,0x08,0x04,0x02,0x00, // 0x2F 47 / - 0x3e,0x22,0x2a,0x22,0x3e,0x00, // 0x30 48 0 - 0x04,0x3e,0x00,0x00,0x00,0x00, // 0x31 49 1 - 0x3a,0x2a,0x2a,0x2a,0x2e,0x00, // 0x32 50 2 - 0x2a,0x2a,0x2a,0x2a,0x3e,0x00, // 0x33 51 3 - 0x0e,0x08,0x08,0x08,0x3e,0x00, // 0x34 52 4 - 0x2e,0x2a,0x2a,0x2a,0x3a,0x00, // 0x35 53 5 - 0x3e,0x2a,0x2a,0x2a,0x3a,0x00, // 0x36 54 6 - 0x02,0x02,0x02,0x02,0x3e,0x00, // 0x37 55 7 - 0x3e,0x2a,0x2a,0x2a,0x3e,0x00, // 0x38 56 8 - 0x2e,0x2a,0x2a,0x2a,0x3e,0x00, // 0x39 57 9 - 0x14,0x00,0x00,0x00,0x00,0x00, // 0x3A 58 : - 0x34,0x00,0x00,0x00,0x00,0x00, // 0x3B 59 ; - 0x08,0x14,0x22,0x00,0x00,0x00, // 0x3C 60 < - 0x14,0x14,0x14,0x14,0x14,0x00, // 0x3D 61 = - 0x22,0x14,0x08,0x00,0x00,0x00, // 0x3E 62 > - 0x06,0x02,0x2a,0x0a,0x0e,0x00, // 0x3F 63 ? - 0x3e,0x02,0x3a,0x2a,0x3e,0x00, // 0x40 64 @ - 0x3e,0x12,0x12,0x12,0x3e,0x00, // 0x41 65 A - 0x3e,0x2a,0x2a,0x2a,0x36,0x00, // 0x42 66 B - 0x3e,0x22,0x22,0x22,0x22,0x00, // 0x43 67 C - 0x3e,0x22,0x22,0x22,0x1c,0x00, // 0x44 68 D - 0x3e,0x2a,0x2a,0x2a,0x22,0x00, // 0x45 69 E - 0x3e,0x0a,0x0a,0x0a,0x02,0x00, // 0x46 70 F - 0x3e,0x22,0x2a,0x2a,0x3a,0x00, // 0x47 71 G - 0x3e,0x08,0x08,0x08,0x3e,0x00, // 0x48 72 H - 0x22,0x3e,0x22,0x00,0x00,0x00, // 0x49 73 I - 0x38,0x20,0x20,0x20,0x3e,0x00, // 0x4A 74 J - 0x3e,0x08,0x08,0x14,0x22,0x00, // 0x4B 75 K - 0x3e,0x20,0x20,0x20,0x20,0x00, // 0x4C 76 L - 0x3e,0x04,0x38,0x04,0x3e,0x00, // 0x4D 77 M - 0x3e,0x04,0x08,0x10,0x3e,0x00, // 0x4E 78 N - 0x3e,0x22,0x22,0x22,0x3e,0x00, // 0x4F 79 O - 0x3e,0x0a,0x0a,0x0a,0x0e,0x00, // 0x50 80 P - 0x3e,0x22,0x72,0x22,0x3e,0x00, // 0x51 81 Q - 0x3e,0x0a,0x0a,0x1a,0x2e,0x00, // 0x52 82 R - 0x2e,0x2a,0x2a,0x2a,0x3a,0x00, // 0x53 83 S - 0x02,0x02,0x3e,0x02,0x02,0x00, // 0x54 84 T - 0x1e,0x20,0x20,0x20,0x1e,0x00, // 0x55 85 U - 0x0e,0x10,0x20,0x10,0x0e,0x00, // 0x56 86 V - 0x3e,0x10,0x0e,0x10,0x3e,0x00, // 0x57 87 W - 0x22,0x14,0x08,0x14,0x22,0x00, // 0x58 88 X - 0x02,0x04,0x38,0x04,0x02,0x00, // 0x59 89 Y - 0x3a,0x2a,0x2a,0x2a,0x2e,0x00, // 0x5A 90 Z - 0x3e,0x22,0x00,0x00,0x00,0x00, // 0x5B 91 [ - 0x3f,0x21,0x3f,0x00,0x00,0x00, // 0x5C 92 \ backslash - 0x22,0x3e,0x00,0x00,0x00,0x00, // 0x5D 93 ] - 0x0c,0x1e,0x3c,0x1e,0x0c,0x00, // 0x5E 94 ^ - 0x20,0x20,0x20,0x20,0x20,0x00, // 0x5F 95 _ - 0x1c,0x3e,0x3e,0x3e,0x1c,0x00, // 0x60 96 ` - 0x3c,0x24,0x24,0x24,0x3c,0x20, // 0x61 97 a - 0x3e,0x24,0x24,0x24,0x3c,0x00, // 0x62 98 b - 0x3c,0x24,0x24,0x24,0x24,0x00, // 0x63 99 c - 0x3c,0x24,0x24,0x24,0x3e,0x00, // 0x64 100 d - 0x3c,0x24,0x34,0x2c,0x24,0x00, // 0x65 101 e - 0x08,0x3e,0x0a,0x0a,0x00,0x00, // 0x66 102 f - 0x1c,0x54,0x54,0x54,0x7c,0x00, // 0x67 103 g - 0x3e,0x04,0x04,0x04,0x3c,0x00, // 0x68 104 h - 0x3a,0x00,0x00,0x00,0x00,0x00, // 0x69 105 i - 0x7a,0x00,0x00,0x00,0x00,0x00, // 0x6A 106 j - 0x3e,0x08,0x14,0x22,0x00,0x00, // 0x6B 107 k - 0x02,0x3e,0x00,0x00,0x00,0x00, // 0x6C 108 l - 0x3c,0x04,0x3c,0x04,0x3c,0x00, // 0x6D 109 m - 0x3c,0x04,0x04,0x04,0x3c,0x00, // 0x6E 110 n - 0x3c,0x24,0x24,0x24,0x3c,0x00, // 0x6F 111 o - 0x7c,0x24,0x24,0x24,0x3c,0x00, // 0x70 112 p - 0x3c,0x24,0x24,0x24,0x7c,0x00, // 0x71 113 q - 0x3c,0x04,0x04,0x04,0x00,0x00, // 0x72 114 r - 0x24,0x2c,0x34,0x24,0x00,0x00, // 0x73 115 s - 0x04,0x3e,0x24,0x24,0x00,0x00, // 0x74 116 t - 0x3c,0x20,0x20,0x20,0x3c,0x00, // 0x75 117 u - 0x0c,0x10,0x20,0x10,0x0c,0x00, // 0x76 118 v - 0x3c,0x20,0x3c,0x20,0x3c,0x00, // 0x77 119 w - 0x24,0x24,0x18,0x24,0x24,0x00, // 0x78 120 x - 0x1c,0x50,0x50,0x50,0x7c,0x00, // 0x79 121 y - 0x24,0x34,0x2c,0x24,0x00,0x00, // 0x7A 122 z - 0x08,0x3e,0x22,0x00,0x00,0x00, // 0x7B 123 { - 0x1c,0x22,0x22,0x22,0x1c,0x00, // 0x7C 124 | - 0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 } - 0x01,0x01,0x01,0x00,0x00,0x00, // 0x7E 126 ~ - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x0a, 0x1f, 0x0a, 0x1f, 0x0a, 0x00, + 0x2e, 0x2a, 0x6b, 0x2a, 0x3a, 0x00, + 0x0e, 0x2a, 0x1e, 0x08, 0x3c, 0x2a, + 0x3e, 0x2a, 0x2a, 0x22, 0x38, 0x08, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x15, 0x0e, 0x04, 0x0e, 0x15, 0x00, + 0x08, 0x08, 0x3e, 0x08, 0x08, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3e, 0x22, 0x2a, 0x22, 0x3e, 0x00, + 0x04, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x3a, 0x2a, 0x2a, 0x2a, 0x2e, 0x00, + 0x2a, 0x2a, 0x2a, 0x2a, 0x3e, 0x00, + 0x0e, 0x08, 0x08, 0x08, 0x3e, 0x00, + 0x2e, 0x2a, 0x2a, 0x2a, 0x3a, 0x00, + 0x3e, 0x2a, 0x2a, 0x2a, 0x3a, 0x00, + 0x02, 0x02, 0x02, 0x02, 0x3e, 0x00, + 0x3e, 0x2a, 0x2a, 0x2a, 0x3e, 0x00, + 0x2e, 0x2a, 0x2a, 0x2a, 0x3e, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x14, 0x22, 0x00, 0x00, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x22, 0x14, 0x08, 0x00, 0x00, 0x00, + 0x06, 0x02, 0x2a, 0x0a, 0x0e, 0x00, + 0x3e, 0x02, 0x3a, 0x2a, 0x3e, 0x00, + 0x3e, 0x12, 0x12, 0x12, 0x3e, 0x00, + 0x3e, 0x2a, 0x2a, 0x2a, 0x36, 0x00, + 0x3e, 0x22, 0x22, 0x22, 0x22, 0x00, + 0x3e, 0x22, 0x22, 0x22, 0x1c, 0x00, + 0x3e, 0x2a, 0x2a, 0x2a, 0x22, 0x00, + 0x3e, 0x0a, 0x0a, 0x0a, 0x02, 0x00, + 0x3e, 0x22, 0x2a, 0x2a, 0x3a, 0x00, + 0x3e, 0x08, 0x08, 0x08, 0x3e, 0x00, + 0x22, 0x3e, 0x22, 0x00, 0x00, 0x00, + 0x38, 0x20, 0x20, 0x20, 0x3e, 0x00, + 0x3e, 0x08, 0x08, 0x14, 0x22, 0x00, + 0x3e, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x3e, 0x04, 0x38, 0x04, 0x3e, 0x00, + 0x3e, 0x04, 0x08, 0x10, 0x3e, 0x00, + 0x3e, 0x22, 0x22, 0x22, 0x3e, 0x00, + 0x3e, 0x0a, 0x0a, 0x0a, 0x0e, 0x00, + 0x3e, 0x22, 0x72, 0x22, 0x3e, 0x00, + 0x3e, 0x0a, 0x0a, 0x1a, 0x2e, 0x00, + 0x2e, 0x2a, 0x2a, 0x2a, 0x3a, 0x00, + 0x02, 0x02, 0x3e, 0x02, 0x02, 0x00, + 0x1e, 0x20, 0x20, 0x20, 0x1e, 0x00, + 0x0e, 0x10, 0x20, 0x10, 0x0e, 0x00, + 0x3e, 0x10, 0x0e, 0x10, 0x3e, 0x00, + 0x22, 0x14, 0x08, 0x14, 0x22, 0x00, + 0x02, 0x04, 0x38, 0x04, 0x02, 0x00, + 0x3a, 0x2a, 0x2a, 0x2a, 0x2e, 0x00, + 0x3e, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x3f, 0x21, 0x3f, 0x00, 0x00, 0x00, + 0x22, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x1e, 0x3c, 0x1e, 0x0c, 0x00, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x1c, 0x3e, 0x3e, 0x3e, 0x1c, 0x00, + 0x3c, 0x24, 0x24, 0x24, 0x3c, 0x20, + 0x3e, 0x24, 0x24, 0x24, 0x3c, 0x00, + 0x3c, 0x24, 0x24, 0x24, 0x24, 0x00, + 0x3c, 0x24, 0x24, 0x24, 0x3e, 0x00, + 0x3c, 0x24, 0x34, 0x2c, 0x24, 0x00, + 0x08, 0x3e, 0x0a, 0x0a, 0x00, 0x00, + 0x1c, 0x54, 0x54, 0x54, 0x7c, 0x00, + 0x3e, 0x04, 0x04, 0x04, 0x3c, 0x00, + 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x08, 0x14, 0x22, 0x00, 0x00, + 0x02, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x04, 0x3c, 0x04, 0x3c, 0x00, + 0x3c, 0x04, 0x04, 0x04, 0x3c, 0x00, + 0x3c, 0x24, 0x24, 0x24, 0x3c, 0x00, + 0x7c, 0x24, 0x24, 0x24, 0x3c, 0x00, + 0x3c, 0x24, 0x24, 0x24, 0x7c, 0x00, + 0x3c, 0x04, 0x04, 0x04, 0x00, 0x00, + 0x24, 0x2c, 0x34, 0x24, 0x00, 0x00, + 0x04, 0x3e, 0x24, 0x24, 0x00, 0x00, + 0x3c, 0x20, 0x20, 0x20, 0x3c, 0x00, + 0x0c, 0x10, 0x20, 0x10, 0x0c, 0x00, + 0x3c, 0x20, 0x3c, 0x20, 0x3c, 0x00, + 0x24, 0x24, 0x18, 0x24, 0x24, 0x00, + 0x1c, 0x50, 0x50, 0x50, 0x7c, 0x00, + 0x24, 0x34, 0x2c, 0x24, 0x00, 0x00, + 0x08, 0x3e, 0x22, 0x00, 0x00, 0x00, + 0x1c, 0x22, 0x22, 0x22, 0x1c, 0x00, + 0x22, 0x3e, 0x08, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # elif defined(OLED_FONT_SUPER_DIGG) - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32 - 0x58, 0x5C, 0x00, 0x00, 0x00, 0x00, // 0x21 33 ! - 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, // 0x22 34 " - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, // 0x23 35 # - 0x5C, 0xFE, 0x54, 0xFE, 0x74, 0x00, // 0x24 36 $ - 0x03, 0x63, 0x38, 0x0C, 0x63, 0x60, // 0x25 37 % - 0x70, 0x5C, 0x54, 0x74, 0x7C, 0x50, // 0x26 38 & - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, // 0x27 39 ' - 0x70, 0x7C, 0x44, 0x00, 0x00, 0x00, // 0x28 40 ( - 0x44, 0x7C, 0x70, 0x00, 0x00, 0x00, // 0x29 41 ) - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, // 0x2A 42 * - 0x10, 0x10, 0x70, 0x7C, 0x10, 0x00, // 0x2B 43 + - 0x40, 0xC0, 0x00, 0x00, 0x00, 0x00, // 0x2C 44 , - 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, // 0x2D 45 - - 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, // 0x2E 46 . - 0x70, 0x7C, 0x03, 0x00, 0x00, 0x00, // 0x2F 47 / - 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x1C, // 0x30 48 0 - 0x04, 0x04, 0x7C, 0x1C, 0x00, 0x00, // 0x31 49 1 - 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00, // 0x32 50 2 - 0x44, 0x54, 0x54, 0x54, 0x7C, 0x70, // 0x33 51 3 - 0x1C, 0x10, 0x10, 0x7C, 0x7C, 0x00, // 0x34 52 4 - 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00, // 0x35 53 5 - 0x70, 0x7C, 0x54, 0x54, 0x74, 0x00, // 0x36 54 6 - 0x04, 0x14, 0x14, 0x14, 0x7C, 0x70, // 0x37 55 7 - 0x70, 0x5C, 0x54, 0x74, 0x7C, 0x00, // 0x38 56 8 - 0x5C, 0x54, 0x54, 0x54, 0x7C, 0x1C, // 0x39 57 9 - 0x50, 0x50, 0x00, 0x00, 0x00, 0x00, // 0x3A 58 : - 0x50, 0xD0, 0x00, 0x00, 0x00, 0x00, // 0x3B 59 ; - 0x18, 0x18, 0x24, 0x42, 0x00, 0x00, // 0x3C 60 < - 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, // 0x3D 61 = - 0x42, 0x24, 0x18, 0x18, 0x00, 0x00, // 0x3E 62 > - 0x04, 0x14, 0x54, 0x54, 0x1C, 0x1C, // 0x3F 63 ? - 0xF8, 0x04, 0x74, 0x74, 0x54, 0x54, // 0x40 64 @ - 0x70, 0x7C, 0x14, 0x14, 0x3C, 0x00, // 0x41 65 A - 0x7C, 0x74, 0x54, 0x54, 0x7C, 0x00, // 0x42 66 B - 0x70, 0x7C, 0x44, 0x44, 0x44, 0x44, // 0x43 67 C - 0x70, 0x7C, 0x44, 0x44, 0x48, 0x70, // 0x44 68 D - 0x70, 0x7C, 0x54, 0x54, 0x54, 0x44, // 0x45 69 E - 0x70, 0x7C, 0x14, 0x14, 0x14, 0x04, // 0x46 70 F - 0x70, 0x7C, 0x44, 0x44, 0x54, 0x74, // 0x47 71 G - 0x70, 0x7C, 0x10, 0x10, 0x7C, 0x00, // 0x48 72 H - 0x70, 0x7C, 0x00, 0x00, 0x00, 0x00, // 0x49 73 I - 0x60, 0x40, 0x40, 0x40, 0x7C, 0x70, // 0x4A 74 J - 0x7C, 0x70, 0x10, 0x1C, 0x70, 0x00, // 0x4B 75 K - 0x70, 0x7C, 0x40, 0x40, 0x40, 0x60, // 0x4C 76 L - 0x70, 0x7C, 0x04, 0x04, 0x7C, 0x04, // 0x4D 77 M - 0x70, 0x7C, 0x04, 0x04, 0x04, 0x7C, // 0x4E 78 N - 0x70, 0x7C, 0x44, 0x44, 0x44, 0x7C, // 0x4F 79 O - 0x70, 0x7C, 0x24, 0x24, 0x3C, 0x00, // 0x50 80 P - 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00, // 0x51 81 Q - 0x7C, 0x74, 0x14, 0x14, 0x3C, 0x00, // 0x52 82 R - 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00, // 0x53 83 S - 0x04, 0x04, 0x7C, 0x74, 0x04, 0x00, // 0x54 84 T - 0x70, 0x7C, 0x40, 0x40, 0x40, 0x7C, // 0x55 85 U - 0x70, 0x7C, 0x40, 0x40, 0x20, 0x1C, // 0x56 86 V - 0x70, 0x7C, 0x40, 0x40, 0x7C, 0x40, // 0x57 87 W - 0x70, 0x7C, 0x10, 0x10, 0x3C, 0x00, // 0x58 88 X - 0x1C, 0x10, 0x70, 0x70, 0x1C, 0x00, // 0x59 89 Y - 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00, // 0x5A 90 Z - 0xF0, 0xFE, 0x82, 0x00, 0x00, 0x00, // 0x5B 91 [ - 0x03, 0x7C, 0x70, 0x00, 0x00, 0x00, // 0x5C 92 \ backslash - 0x82, 0xFE, 0xF0, 0x00, 0x00, 0x00, // 0x5D 93 ] - 0x04, 0x02, 0x01, 0x06, 0x04, 0x00, // 0x5E 94 ^ - 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, // 0x5F 95 _ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x60 96 ` - 0x70, 0x7C, 0x14, 0x14, 0x3C, 0x00, // 0x61 97 a - 0x7C, 0x74, 0x54, 0x54, 0x7C, 0x00, // 0x62 98 b - 0x70, 0x7C, 0x44, 0x44, 0x44, 0x44, // 0x63 99 c - 0x70, 0x7C, 0x44, 0x44, 0x48, 0x70, // 0x64 100 d - 0x70, 0x7C, 0x54, 0x54, 0x54, 0x44, // 0x65 101 e - 0x70, 0x7C, 0x14, 0x14, 0x14, 0x04, // 0x66 102 f - 0x70, 0x7C, 0x44, 0x44, 0x54, 0x74, // 0x67 103 g - 0x70, 0x7C, 0x10, 0x10, 0x7C, 0x00, // 0x68 104 h - 0x70, 0x7C, 0x00, 0x00, 0x00, 0x00, // 0x69 105 i - 0x60, 0x40, 0x40, 0x40, 0x7C, 0x70, // 0x6A 106 j - 0x7C, 0x70, 0x10, 0x1C, 0x70, 0x00, // 0x6B 107 k - 0x70, 0x7C, 0x40, 0x40, 0x40, 0x60, // 0x6C 108 l - 0x70, 0x7C, 0x04, 0x04, 0x7C, 0x04, // 0x6D 109 m - 0x70, 0x7C, 0x04, 0x04, 0x04, 0x7C, // 0x6E 110 n - 0x70, 0x7C, 0x44, 0x44, 0x44, 0x7C, // 0x6F 111 o - 0x70, 0x7C, 0x24, 0x24, 0x3C, 0x00, // 0x70 112 p - 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00, // 0x71 113 q - 0x7C, 0x74, 0x14, 0x14, 0x3C, 0x00, // 0x72 114 r - 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00, // 0x73 115 s - 0x04, 0x04, 0x7C, 0x74, 0x04, 0x00, // 0x74 116 t - 0x70, 0x7C, 0x40, 0x40, 0x40, 0x7C, // 0x75 117 u - 0x70, 0x7C, 0x40, 0x40, 0x20, 0x1C, // 0x76 118 v - 0x70, 0x7C, 0x40, 0x40, 0x7C, 0x40, // 0x77 119 w - 0x70, 0x7C, 0x10, 0x10, 0x3C, 0x00, // 0x78 120 x - 0x1C, 0x10, 0x70, 0x70, 0x1C, 0x00, // 0x79 121 y - 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00, // 0x7A 122 z - 0x10, 0xFE, 0xC2, 0x00, 0x00, 0x00, // 0x7B 123 { - 0x00, 0x44, 0x77, 0x00, 0x00, 0x00, // 0x7C 124 | - 0xC2, 0xFE, 0x10, 0x00, 0x00, 0x00, // 0x7D 125 } - 0x02, 0x01, 0x03, 0x04, 0x06, 0x02, // 0x7E 126 ~ - 0x3C, 0x22, 0x21, 0x22, 0x3C, 0x00, // 0x7F 127 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x58, 0x5C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x5C, 0xFE, 0x54, 0xFE, 0x74, 0x00, + 0x03, 0x63, 0x38, 0x0C, 0x63, 0x60, + 0x70, 0x5C, 0x54, 0x74, 0x7C, 0x50, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x7C, 0x44, 0x00, 0x00, 0x00, + 0x44, 0x7C, 0x70, 0x00, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x10, 0x10, 0x70, 0x7C, 0x10, 0x00, + 0x40, 0xC0, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, + 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x7C, 0x03, 0x00, 0x00, 0x00, + 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x1C, + 0x04, 0x04, 0x7C, 0x1C, 0x00, 0x00, + 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00, + 0x44, 0x54, 0x54, 0x54, 0x7C, 0x70, + 0x1C, 0x10, 0x10, 0x7C, 0x7C, 0x00, + 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00, + 0x70, 0x7C, 0x54, 0x54, 0x74, 0x00, + 0x04, 0x14, 0x14, 0x14, 0x7C, 0x70, + 0x70, 0x5C, 0x54, 0x74, 0x7C, 0x00, + 0x5C, 0x54, 0x54, 0x54, 0x7C, 0x1C, + 0x50, 0x50, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xD0, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x24, 0x42, 0x00, 0x00, + 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, + 0x42, 0x24, 0x18, 0x18, 0x00, 0x00, + 0x04, 0x14, 0x54, 0x54, 0x1C, 0x1C, + 0xF8, 0x04, 0x74, 0x74, 0x54, 0x54, + 0x70, 0x7C, 0x14, 0x14, 0x3C, 0x00, + 0x7C, 0x74, 0x54, 0x54, 0x7C, 0x00, + 0x70, 0x7C, 0x44, 0x44, 0x44, 0x44, + 0x70, 0x7C, 0x44, 0x44, 0x48, 0x70, + 0x70, 0x7C, 0x54, 0x54, 0x54, 0x44, + 0x70, 0x7C, 0x14, 0x14, 0x14, 0x04, + 0x70, 0x7C, 0x44, 0x44, 0x54, 0x74, + 0x70, 0x7C, 0x10, 0x10, 0x7C, 0x00, + 0x70, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x40, 0x40, 0x40, 0x7C, 0x70, + 0x7C, 0x70, 0x10, 0x1C, 0x70, 0x00, + 0x70, 0x7C, 0x40, 0x40, 0x40, 0x60, + 0x70, 0x7C, 0x04, 0x04, 0x7C, 0x04, + 0x70, 0x7C, 0x04, 0x04, 0x04, 0x7C, + 0x70, 0x7C, 0x44, 0x44, 0x44, 0x7C, + 0x70, 0x7C, 0x24, 0x24, 0x3C, 0x00, + 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00, + 0x7C, 0x74, 0x14, 0x14, 0x3C, 0x00, + 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00, + 0x04, 0x04, 0x7C, 0x74, 0x04, 0x00, + 0x70, 0x7C, 0x40, 0x40, 0x40, 0x7C, + 0x70, 0x7C, 0x40, 0x40, 0x20, 0x1C, + 0x70, 0x7C, 0x40, 0x40, 0x7C, 0x40, + 0x70, 0x7C, 0x10, 0x10, 0x3C, 0x00, + 0x1C, 0x10, 0x70, 0x70, 0x1C, 0x00, + 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00, + 0xF0, 0xFE, 0x82, 0x00, 0x00, 0x00, + 0x03, 0x7C, 0x70, 0x00, 0x00, 0x00, + 0x82, 0xFE, 0xF0, 0x00, 0x00, 0x00, + 0x04, 0x02, 0x01, 0x06, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x7C, 0x14, 0x14, 0x3C, 0x00, + 0x7C, 0x74, 0x54, 0x54, 0x7C, 0x00, + 0x70, 0x7C, 0x44, 0x44, 0x44, 0x44, + 0x70, 0x7C, 0x44, 0x44, 0x48, 0x70, + 0x70, 0x7C, 0x54, 0x54, 0x54, 0x44, + 0x70, 0x7C, 0x14, 0x14, 0x14, 0x04, + 0x70, 0x7C, 0x44, 0x44, 0x54, 0x74, + 0x70, 0x7C, 0x10, 0x10, 0x7C, 0x00, + 0x70, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x40, 0x40, 0x40, 0x7C, 0x70, + 0x7C, 0x70, 0x10, 0x1C, 0x70, 0x00, + 0x70, 0x7C, 0x40, 0x40, 0x40, 0x60, + 0x70, 0x7C, 0x04, 0x04, 0x7C, 0x04, + 0x70, 0x7C, 0x04, 0x04, 0x04, 0x7C, + 0x70, 0x7C, 0x44, 0x44, 0x44, 0x7C, + 0x70, 0x7C, 0x24, 0x24, 0x3C, 0x00, + 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00, + 0x7C, 0x74, 0x14, 0x14, 0x3C, 0x00, + 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00, + 0x04, 0x04, 0x7C, 0x74, 0x04, 0x00, + 0x70, 0x7C, 0x40, 0x40, 0x40, 0x7C, + 0x70, 0x7C, 0x40, 0x40, 0x20, 0x1C, + 0x70, 0x7C, 0x40, 0x40, 0x7C, 0x40, + 0x70, 0x7C, 0x10, 0x10, 0x3C, 0x00, + 0x1C, 0x10, 0x70, 0x70, 0x1C, 0x00, + 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00, + 0x10, 0xFE, 0xC2, 0x00, 0x00, 0x00, + 0x00, 0x44, 0x77, 0x00, 0x00, 0x00, + 0xC2, 0xFE, 0x10, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x03, 0x04, 0x06, 0x02, + 0x3C, 0x22, 0x21, 0x22, 0x3C, 0x00, # else // default font - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32 - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, // 0x21 33 ! - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 0x22 34 " - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, // 0x23 35 # - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, // 0x24 36 $ - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, // 0x25 37 % - 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, // 0x26 38 & - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, // 0x27 39 ' - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, // 0x28 40 ( - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, // 0x29 41 ) - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, // 0x2A 42 * - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, // 0x2B 43 + - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, // 0x2C 44 , - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, // 0x2D 45 - - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, // 0x2E 46 . - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, // 0x2F 47 / - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, // 0x30 48 0 - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, // 0x31 49 1 - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, // 0x32 50 2 - 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, // 0x33 51 3 - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, // 0x34 52 4 - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, // 0x35 53 5 - 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, // 0x36 54 6 - 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, // 0x37 55 7 - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x38 56 8 - 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, // 0x39 57 9 - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, // 0x3A 58 : - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, // 0x3B 59 ; - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x3C 60 < - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, // 0x3D 61 = - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, // 0x3E 62 > - 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, // 0x3F 63 ? - 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, // 0x40 64 @ - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, // 0x41 65 A - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x42 66 B - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, // 0x43 67 C - 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x44 68 D - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, // 0x45 69 E - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, // 0x46 70 F - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, // 0x47 71 G - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, // 0x48 72 H - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, // 0x49 73 I - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, // 0x4A 74 J - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x4B 75 K - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x4C 76 L - 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, // 0x4D 77 M - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, // 0x4E 78 N - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x4F 79 O - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, // 0x50 80 P - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, // 0x51 81 Q - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, // 0x52 82 R - 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, // 0x53 83 S - 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, // 0x54 84 T - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, // 0x55 85 U - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, // 0x56 86 V - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, // 0x57 87 W - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, // 0x58 88 X - 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, // 0x59 89 Y - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, // 0x5A 90 Z - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, // 0x5B 91 [ - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, // 0x5C 92 \ backslash - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x5D 93 ] - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, // 0x5E 94 ^ - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x5F 95 _ - 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, // 0x60 96 ` - 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, // 0x61 97 a - 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, // 0x62 98 b - 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, // 0x63 99 c - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, // 0x64 100 d - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, // 0x65 101 e - 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, // 0x66 102 f - 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, // 0x67 103 g - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x68 104 h - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, // 0x69 105 i - 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, // 0x6A 106 j - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, // 0x6B 107 k - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, // 0x6C 108 l - 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, // 0x6D 109 m - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x6E 110 n - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, // 0x6F 111 o - 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, // 0x70 112 p - 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, // 0x71 113 q - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, // 0x72 114 r - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, // 0x73 115 s - 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, // 0x74 116 t - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, // 0x75 117 u - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, // 0x76 118 v - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, // 0x77 119 w - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, // 0x78 120 x - 0x4C, 0x90, 0x10, 0x90, 0x7C, 0x00, // 0x79 121 y - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, // 0x7A 122 z - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, // 0x7B 123 { - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, // 0x7C 124 | - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, // 0x7D 125 } - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 0x7E 126 ~ - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, // 0x7F 127 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x90, 0x10, 0x90, 0x7C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, # endif +// top Logo section # if defined(OLED_LOGO_GMK_BAD) - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 - 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0x70, // 0x81 - 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, // 0x82 - 0xE0, 0xE0, 0x80, 0x00, 0x00, 0x00, // 0x83 - 0x00, 0x00, 0x00, 0x80, 0xF0, 0xF8, // 0x84 - 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, // 0x85 - 0x80, 0xE0, 0xF8, 0xF8, 0xF8, 0xF8, // 0x86 - 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x87 - 0x80, 0xF8, 0xF8, 0xF8, 0x38, 0x00, // 0x88 - 0x80, 0xE0, 0xF0, 0xF8, 0x78, 0x38, // 0x89 - 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, // 0x8A - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8B - 0x80, 0xF8, 0xF8, 0xF8, 0x38, 0x38, // 0x8C - 0x38, 0xF8, 0xF0, 0xF0, 0xE0, 0x00, // 0x8D - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8E - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x90 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x91 - 0x00, 0x00, 0x00, 0x80, 0xFC, 0xFC, // 0x92 - 0xFC, 0x1C, 0x00, 0x00, 0x00, 0x00, // 0x93 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x94 - 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, // 0x95 - 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, // 0x96 - 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, // 0x97 - 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, // 0x98 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x99 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9A - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9B - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9C - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9D - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9E - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, // 0xA0 - 0xFF, 0xFF, 0xFF, 0xC1, 0x80, 0x00, // 0xA1 - 0x00, 0x38, 0x38, 0xB8, 0xB8, 0xF9, // 0xA2 - 0xF9, 0xF8, 0x38, 0x00, 0x00, 0x00, // 0xA3 - 0x00, 0xC0, 0xF8, 0xFF, 0xFF, 0x1F, // 0xA4 - 0x01, 0x3F, 0xFF, 0xFF, 0xF0, 0xFE, // 0xA5 - 0x7F, 0x0F, 0x03, 0xFF, 0xFF, 0xFF, // 0xA6 - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, // 0xA7 - 0xFF, 0xFF, 0xFF, 0x3F, 0x1E, 0x7F, // 0xA8 - 0xFF, 0xFF, 0xF3, 0xC1, 0x80, 0x00, // 0xA9 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xAA - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, // 0xAB - 0xFF, 0xFF, 0xFF, 0x3F, 0x1C, 0x1C, // 0xAC - 0x9C, 0xFF, 0xFF, 0xF3, 0xE1, 0x00, // 0xAD - 0x00, 0x00, 0x00, 0xF0, 0xFC, 0xFE, // 0xAE - 0xFF, 0x0F, 0x07, 0x07, 0x8E, 0xFF, // 0xAF - 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, // 0xB0 - 0x00, 0xF0, 0xFC, 0xFE, 0xFF, 0x8F, // 0xB1 - 0x07, 0x07, 0x8E, 0xFF, 0xFF, 0xFF, // 0xB2 - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x80, // 0xB3 - 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, // 0xB4 - 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, // 0xB5 - 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, // 0xB6 - 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, // 0xB7 - 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, // 0xB8 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xB9 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBA - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBC - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBD - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBE - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC0 - 0x00, 0x01, 0x03, 0x03, 0x03, 0x07, // 0xC1 - 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, // 0xC2 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC3 - 0x06, 0x07, 0x07, 0x07, 0x01, 0x00, // 0xC4 - 0x00, 0x00, 0x07, 0x07, 0x07, 0x01, // 0xC5 - 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, // 0xC6 - 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, // 0xC7 - 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, // 0xC8 - 0x00, 0x03, 0x07, 0x07, 0x07, 0x06, // 0xC9 - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCA - 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, // 0xCB - 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, // 0xCC - 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, // 0xCD - 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, // 0xCE - 0x07, 0x07, 0x07, 0x03, 0x07, 0x07, // 0xCF - 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, // 0xD0 - 0x00, 0x00, 0x03, 0x07, 0x07, 0x07, // 0xD1 - 0x07, 0x03, 0x07, 0x07, 0x07, 0x07, // 0xD2 - 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, // 0xD3 - 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, // 0xD4 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD5 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD6 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD7 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD8 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD9 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDA - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDC - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDD - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDE - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDF - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x14, 0x08, 0x14, 0x00, 0x00, - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, - 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x06, 0x0C, - 0x18, 0x30, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E, - 0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x77, 0x00, - 0x77, 0x77, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24, - 0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1, - 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED, - 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F, - 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64, - 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x42, 0x69, 0x65, 0x65, - 0x65, 0x69, 0x42, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08, - 0x18, 0x08, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0x70, + 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, + 0xE0, 0xE0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xF0, 0xF8, + 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, + 0x80, 0xE0, 0xF8, 0xF8, 0xF8, 0xF8, + 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xF8, 0xF8, 0xF8, 0x38, 0x00, + 0x80, 0xE0, 0xF0, 0xF8, 0x78, 0x38, + 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xF8, 0xF8, 0xF8, 0x38, 0x38, + 0x38, 0xF8, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xFC, 0xFC, + 0xFC, 0x1C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # elif defined(OLED_LOGO_HUE_MANITEE) - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x90, 0x70, 0xE8, 0xA8, 0xE4, 0xC4, 0xC4, 0xA0, 0xE4, 0xB0, 0xDC, 0xE4, @@ -675,120 +574,13 @@ static const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, // 0x90 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, - 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, - 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, - 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, // 0xA0 - 0xFC, 0xF6, 0xF7, 0xEF, 0xFF, 0x87, - 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, - 0x1F, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, - 0xFF, 0x07, 0x1F, 0x1F, 0x19, 0x15, - 0xF7, 0x16, 0x1A, 0x1B, 0x16, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0C, 0x0C, 0x33, 0x33, - 0x33, 0x33, 0x33, 0x33, 0xC0, 0xC0, - 0x00, 0x00, 0x03, 0x03, 0xFF, 0xFF, - 0x03, 0x03, 0x00, 0x00, 0xC0, 0xC0, - 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0xFC, - 0xFC, 0x00, 0x00, 0x00, 0xFC, 0xFC, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x30, 0x30, 0xCC, 0xCC, // 0xB0 - 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, - 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, - 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // 0xC0 - 0x03, 0x07, 0x07, 0x07, 0x07, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, - 0x03, 0x00, 0x00, 0x02, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, // 0xD0 - 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDF - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x14, 0x08, 0x14, 0x00, 0x00, - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, - 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x06, 0x0C, - 0x18, 0x30, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E, - 0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x77, 0x00, - 0x77, 0x77, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24, - 0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1, - 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED, - 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F, - 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64, - 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x42, 0x69, 0x65, 0x65, - 0x65, 0x69, 0x42, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08, - 0x18, 0x08, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # elif defined(OLED_LOGO_CORNE) - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0, @@ -804,11 +596,36 @@ static const unsigned char font[] PROGMEM = { 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, // 0x90 + 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# else + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8, + 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F, + 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, + 0xF8, 0xF0, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, + 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, + 0x80, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, + 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, + 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif + +// First icon section 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, @@ -817,10 +634,57 @@ static const unsigned char font[] PROGMEM = { 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, + 0x3E, 0x4A, 0x4F, 0x4A, 0x3E, 0x00, + 0x18, 0x3C, 0x7C, 0x3A, 0x7D, 0x24, + 0x14, 0x36, 0x00, 0x36, 0x77, 0x77, + +// middle logo section +# if defined(OLED_LOGO_GMK_BAD) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, + 0xFF, 0xFF, 0xFF, 0xC1, 0x80, 0x00, + 0x00, 0x38, 0x38, 0xB8, 0xB8, 0xF9, + 0xF9, 0xF8, 0x38, 0x00, 0x00, 0x00, + 0x00, 0xC0, 0xF8, 0xFF, 0xFF, 0x1F, + 0x01, 0x3F, 0xFF, 0xFF, 0xF0, 0xFE, + 0x7F, 0x0F, 0x03, 0xFF, 0xFF, 0xFF, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xFF, 0xFF, 0xFF, 0x3F, 0x1E, 0x7F, + 0xFF, 0xFF, 0xF3, 0xC1, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xFF, 0xFF, 0xFF, 0x3F, 0x1C, 0x1C, + 0x9C, 0xFF, 0xFF, 0xF3, 0xE1, 0x00, + 0x00, 0x00, 0x00, 0xF0, 0xFC, 0xFE, + 0xFF, 0x0F, 0x07, 0x07, 0x8E, 0xFF, + 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, + 0x00, 0xF0, 0xFC, 0xFE, 0xFF, 0x8F, + 0x07, 0x07, 0x8E, 0xFF, 0xFF, 0xFF, + 0x3F, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, +# elif defined(OLED_LOGO_HUE_MANITEE) + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, + 0xFC, 0xF6, 0xF7, 0xEF, 0xFF, 0x87, + 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x1F, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, + 0xFF, 0x07, 0x1F, 0x1F, 0x19, 0x15, + 0xF7, 0x16, 0x1A, 0x1B, 0x16, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x0C, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0xC0, 0xC0, + 0x00, 0x00, 0x03, 0x03, 0xFF, 0xFF, + 0x03, 0x03, 0x00, 0x00, 0xC0, 0xC0, + 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0xFC, + 0xFC, 0x00, 0x00, 0x00, 0xFC, 0xFC, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0x30, 0x30, 0xCC, 0xCC, + 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# elif defined(OLED_LOGO_CORNE) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xA0 0x00, 0x00, 0x00, 0xF8, 0xFC, 0xFE, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, @@ -836,250 +700,13 @@ static const unsigned char font[] PROGMEM = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, // 0xB0 + 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, - 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, - 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, - 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, - 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, - 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, - 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC0 - 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, - 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F, - 0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C, - 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, - 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, - 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x03, 0x07, 0x07, 0x07, 0x07, - 0x07, 0x07, 0x07, 0x07, 0x03, 0x01, - 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, - 0x07, 0x00, 0x00, 0x00, 0x01, 0x03, // 0xD0 - 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, - 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDF - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x14, 0x08, 0x14, 0x00, 0x00, - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, - 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x06, 0x0C, - 0x18, 0x30, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E, - 0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x77, 0x00, - 0x77, 0x77, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24, - 0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1, - 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED, - 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F, - 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64, - 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x42, 0x69, 0x65, 0x65, - 0x65, 0x69, 0x42, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08, - 0x18, 0x08, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - -# elif defined(OLED_LOGO_GOTHAM) // see /keyboards/crkbd/keymaps/gotham/oled.c - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 - 0x00, 0x00, 0xC0, 0x60, 0x30, 0x18, - 0xF8, 0x18, 0x00, 0xC0, 0x70, 0x1C, - 0x06, 0x03, 0x01, 0x01, 0x01, 0x01, - 0x01, 0xC3, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x08, 0x08, 0x08, 0x00, 0x1C, - 0x22, 0x41, 0x41, 0x41, 0x22, 0x1C, - 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x20, 0xF8, - 0x0C, 0x04, 0xE7, 0xE4, 0xE4, 0x07, - 0x04, 0xE4, 0xE7, 0xE4, 0x04, 0x07, - 0xE4, 0xE4, 0xE7, 0x04, 0x0C, 0xF8, - 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x14, 0x08, 0x14, 0x00, 0x00, // 0x90 - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, - 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, - 0x77, 0x77, 0x77, 0x00, 0x77, 0x77, - 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F, - 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x00, 0x00, 0x60, - 0x70, 0x3E, 0x1F, 0x19, 0x18, 0x0C, - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF8, 0x0C, 0x06, 0x07, 0xFC, // 0xA0 - 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, - 0xFF, 0x80, 0xFF, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xF0, 0x1C, - 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, - 0x00, 0x1C, 0x22, 0x00, 0x00, 0x1C, - 0x3E, 0x7F, 0x63, 0x41, 0x22, 0x1C, - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x49, 0x49, 0xFF, - 0x00, 0x00, 0x0F, 0x1F, 0x3F, 0x38, - 0x30, 0xFF, 0xFF, 0xFF, 0x30, 0x38, - 0x3F, 0x1F, 0x0F, 0x00, 0x00, 0xFF, - 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64, - 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00, // 0xB0 - 0x00, 0x04, 0x42, 0x69, 0x65, 0x65, - 0x65, 0x69, 0x42, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, - 0x0C, 0x18, 0x30, 0x66, 0x66, 0x66, - 0x00, 0x00, 0xFC, 0x24, 0x24, 0xFC, - 0x24, 0x24, 0xFC, 0x24, 0x24, 0xFC, - 0x24, 0x24, 0xFC, 0x24, 0x24, 0xFC, - 0x24, 0x24, 0xFC, 0x24, 0x24, 0xFC, - 0x24, 0x24, 0xFC, 0x00, 0x00, 0x00, - 0xF0, 0x90, 0x90, 0xF0, 0x90, 0x90, - 0xF0, 0x98, 0x9C, 0xF2, 0x22, 0x21, - 0xE1, 0x01, 0x01, 0x01, 0xF1, 0x91, - 0x91, 0xFA, 0x4C, 0x4C, 0xF8, 0x48, - 0x48, 0xF8, 0x48, 0x48, 0xF8, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x0E, 0x18, 0x30, 0x21, // 0xC0 - 0x21, 0x31, 0x18, 0x10, 0x30, 0x20, - 0x60, 0x41, 0x60, 0x20, 0x30, 0x18, - 0x30, 0x60, 0x40, 0x40, 0x47, 0x4C, - 0x48, 0x68, 0x38, 0x1C, 0x0F, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, - 0x22, 0x41, 0x63, 0x7F, 0x3E, 0x1C, - 0x00, 0x00, 0x22, 0x1C, 0x00, 0x00, - 0x41, 0x22, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x02, 0x0F, - 0x18, 0x10, 0x70, 0x10, 0x10, 0x70, - 0x10, 0x13, 0x73, 0x13, 0x10, 0x70, - 0x10, 0x10, 0x70, 0x10, 0x18, 0x0F, - 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1, - 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00, // 0xD0 - 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED, - 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00, - 0x08, 0x0C, 0x7E, 0x7F, 0x7E, 0x0C, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0F, 0x09, 0x09, 0x09, - 0x0F, 0x09, 0x09, 0x0F, 0x09, 0x09, - 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, - 0x09, 0x0F, 0x09, 0x09, 0x0F, 0x09, - 0x09, 0x09, 0x0F, 0x00, 0x00, 0x00, - 0x07, 0x04, 0x04, 0x07, 0x04, 0x04, - 0x07, 0x04, 0x04, 0x0F, 0x09, 0x09, - 0x0F, 0x00, 0x00, 0x00, 0x07, 0x04, - 0x04, 0x07, 0x02, 0x02, 0x03, 0x02, - 0x02, 0x03, 0x02, 0x02, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDF - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x14, 0x08, 0x14, 0x00, 0x00, - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, - 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x06, 0x0C, - 0x18, 0x30, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E, - 0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x77, 0x00, - 0x77, 0x77, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24, - 0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1, - 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED, - 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F, - 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64, - 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x42, 0x69, 0x65, 0x65, - 0x65, 0x69, 0x42, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08, - 0x18, 0x08, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # else - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 - 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8, - 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F, - 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, - 0xF8, 0xF0, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, - 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, - 0x80, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, - 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, - 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x90 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, - 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, - 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, - 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, - 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, - 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, - 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, - 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xA0 0x49, 0x49, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDF, 0xBF, 0xBF, 0x00, 0xBF, 0xBF, 0xDF, 0xE0, 0xFF, 0xFF, @@ -1095,11 +722,14 @@ static const unsigned char font[] PROGMEM = { 0x7F, 0x7E, 0x03, 0x03, 0x7E, 0x7E, 0x03, 0x03, 0x7F, 0x7E, 0x00, 0x0F, 0x3E, 0x70, 0x3C, 0x06, 0x3C, 0x70, - 0x3E, 0x0F, 0x00, 0x32, 0x7B, 0x49, // 0xB0 + 0x3E, 0x0F, 0x00, 0x32, 0x7B, 0x49, 0x49, 0x3F, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x1E, 0x3F, 0x69, 0x69, 0x6F, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# endif + +// second icon section 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, @@ -1109,9 +739,78 @@ static const unsigned char font[] PROGMEM = { 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF0, 0xFE, 0xF1, 0x91, 0xF6, 0xF0, + 0xF0, 0xFC, 0xF2, 0x92, 0xFC, 0xF0, + +// bottom logo section +# if defined(OLED_LOGO_GMK_BAD) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x03, 0x03, 0x03, 0x07, + 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x07, 0x07, 0x07, 0x01, 0x00, + 0x00, 0x00, 0x07, 0x07, 0x07, 0x01, + 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x07, 0x07, 0x07, 0x06, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, + 0x07, 0x07, 0x07, 0x03, 0x07, 0x07, + 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x07, 0x07, 0x07, + 0x07, 0x03, 0x07, 0x07, 0x07, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, + 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, +# elif defined(OLED_LOGO_HUE_MANITEE) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x03, 0x07, 0x07, 0x07, 0x07, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, + 0x03, 0x00, 0x00, 0x02, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# elif defined(OLED_LOGO_CORNE) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, + 0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, + 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F, + 0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C, + 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x03, 0x01, + 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, + 0x07, 0x00, 0x00, 0x00, 0x01, 0x03, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC0 +#else + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x7E, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, @@ -1127,12 +826,16 @@ static const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD0 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif + +// third icon section + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -1142,7 +845,8 @@ static const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDF + +// fourth icon section 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, 0x00, 0x14, 0x08, 0x14, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, @@ -1175,8 +879,6 @@ static const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - -# endif }; // clang-format on #endif diff --git a/users/drashna/oled_stuff.c b/users/drashna/oled_stuff.c index 7811cabc60d6..4b549195076d 100644 --- a/users/drashna/oled_stuff.c +++ b/users/drashna/oled_stuff.c @@ -16,6 +16,8 @@ #include "drashna.h" +extern bool host_driver_disabled; + #ifndef KEYLOGGER_LENGTH // # ifdef OLED_DISPLAY_128X64 # define KEYLOGGER_LENGTH ((uint8_t)(OLED_DISPLAY_HEIGHT / OLED_FONT_WIDTH)) @@ -29,24 +31,24 @@ static char keylog_str[KEYLOGGER_LENGTH + 1] = {0}; static uint16_t log_timer = 0; // clang-format off -static const char PROGMEM code_to_name[0xFF] = { +static const char PROGMEM code_to_name[256] = { // 0 1 2 3 4 5 6 7 8 9 A B c D E F ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', // 1x '3', '4', '5', '6', '7', '8', '9', '0', 20, 19, 27, 26, 22, '-', '=', '[', // 2x - ']','\\', '#', ';','\'', '`', ',', '.', '/', 128, ' ', ' ', ' ', ' ', ' ', ' ', // 3x - ' ', ' ', ' ', ' ', ' ', ' ', 'P', 'S', ' ', ' ', ' ', ' ', 16, ' ', ' ', ' ', // 4x - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 5x - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x + ']','\\', '#', ';','\'', '`', ',', '.', '/', 128, '1', '2', '3', '4', '5', '6', // 3x + '7', '8', '9', '0', '1', '2', 'P', 'S', 19, ' ', 17, 30, 16, 16, 31, 26, // 4x + 27, 25, 24, 'N', '/', '*', '-', '+', 23, '1', '2', '3', '4', '5', '6', '7', // 5x + '8', '9', '0', '.','\\', 'A', 0, '=', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 7x ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 8x ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 9x - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax + ' ', ' ', ' ', ' ', ' ', 0, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Bx ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Cx ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Dx - 'C', 'S', 'A', 'C', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ex - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' // Fx + 'C', 'S', 'A', 'C', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 24, 26, 24, // Ex + 25,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, 24, 25, 27, 26, ' ', ' ', ' ' // Fx }; // clang-format on @@ -148,8 +150,8 @@ void render_keylock_status(uint8_t led_usb_state) { oled_write_P(PSTR(OLED_RENDER_LOCK_NUML), led_usb_state & (1 << USB_LED_NUM_LOCK)); oled_write_P(PSTR(" "), false); oled_write_P(PSTR(OLED_RENDER_LOCK_CAPS), led_usb_state & (1 << USB_LED_CAPS_LOCK)); - oled_write_P(PSTR(" "), false); - oled_write_P(PSTR(OLED_RENDER_LOCK_SCLK), led_usb_state & (1 << USB_LED_SCROLL_LOCK)); +// oled_write_P(PSTR(" "), false); +// oled_write_P(PSTR(OLED_RENDER_LOCK_SCLK), led_usb_state & (1 << USB_LED_SCROLL_LOCK)); } void render_matrix_scan_rate(void) { @@ -292,12 +294,22 @@ void render_user_status(void) { static const char PROGMEM rgb_layer_status[2][3] = {{0xEE, 0xEF, 0}, {0xF0, 0xF1, 0}}; oled_write_P(rgb_layer_status[userspace_config.rgb_layer_change], false); - static const char PROGMEM nukem_good[2][3] = {{0xF8, 0xF9, 0}, {0xF6, 0xF7, 0}}; - oled_write_P(nukem_good[0], userspace_config.nuke_switch); + static const char PROGMEM cat_mode[2][3] = {{0xF8, 0xF9, 0}, {0xF6, 0xF7, 0}}; + oled_write_P(cat_mode[0], host_driver_disabled); #if defined(UNICODE_ENABLE) static const char PROGMEM uc_mod_status[5][3] = {{0xEA, 0xEB, 0}, {0xEC, 0xED, 0}}; oled_write_P(uc_mod_status[get_unicode_input_mode() == UC_MAC], false); #endif + if (userspace_config.nuke_switch) { +#if !defined(OLED_DISPLAY_128X64) + oled_write_P(PSTR(" "), false); +#endif + static const char PROGMEM nukem_good[2] = {0xFA, 0}; + oled_write_P(nukem_good, false); +#if !defined(OLED_DISPLAY_128X64) + oled_advance_page(true); +#endif + } #if defined(OLED_DISPLAY_128X64) oled_advance_page(true); #endif diff --git a/users/drashna/process_records.c b/users/drashna/process_records.c index 900b6da15e89..1e7f7ca762f3 100644 --- a/users/drashna/process_records.c +++ b/users/drashna/process_records.c @@ -18,7 +18,7 @@ #include "version.h" uint16_t copy_paste_timer; - +bool host_driver_disabled = false; // Defines actions tor my global custom keycodes. Defined in drashna.h file // Then runs the _keymap's record handier if not processed here @@ -198,6 +198,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *re eeconfig_update_user(userspace_config.raw); } } + break; + case KEYLOCK: { + static host_driver_t *host_driver = 0; + + if (record->event.pressed) { + if (host_get_driver()) { + host_driver = host_get_driver(); + clear_keyboard(); + host_set_driver(0); + host_driver_disabled = true; + } else { + host_set_driver(host_driver); + host_driver_disabled = false; + } + } + break; + } #endif } return true; diff --git a/users/drashna/process_records.h b/users/drashna/process_records.h index 231480ac5905..897d7bbcc906 100644 --- a/users/drashna/process_records.h +++ b/users/drashna/process_records.h @@ -46,6 +46,7 @@ enum userspace_custom_keycodes { UC_TABL, // ┬─┬ノ( º _ ºノ) UC_SHRG, // ¯\_(ツ)_/¯ UC_DISA, // ಠ_ಠ + KEYLOCK, // Locks keyboard by unmounting driver NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes }; diff --git a/users/drashna/transport_sync.c b/users/drashna/transport_sync.c index 39db64135484..daa14bbef766 100644 --- a/users/drashna/transport_sync.c +++ b/users/drashna/transport_sync.c @@ -33,15 +33,16 @@ extern bool tap_toggling; extern bool swap_hands; #endif extern userspace_config_t userspace_config; +extern bool host_driver_disabled; uint16_t transport_keymap_config = 0; -uint32_t transport_userspace_config = 0; +uint32_t transport_userspace_config = 0, transport_user_state = 0; user_runtime_config_t user_state; void user_state_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) { - if (initiator2target_buffer_size == sizeof(user_state)) { - memcpy(&user_state, initiator2target_buffer, initiator2target_buffer_size); + if (initiator2target_buffer_size == sizeof(transport_user_state)) { + memcpy(&transport_user_state, initiator2target_buffer, initiator2target_buffer_size); } } void user_keymap_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) { @@ -79,9 +80,13 @@ void user_transport_update(void) { #ifdef SWAP_HANDS_ENABLE user_state.swap_hands = swap_hands; #endif + user_state.host_driver_disabled = host_driver_disabled; + + transport_user_state = user_state.raw; } else { keymap_config.raw = transport_keymap_config; userspace_config.raw = transport_userspace_config; + user_state.raw = transport_user_state; #ifdef UNICODE_ENABLE unicode_config.input_mode = user_state.unicode_mode; #endif @@ -91,22 +96,21 @@ void user_transport_update(void) { #ifdef SWAP_HANDS_ENABLE swap_hands = user_state.swap_hands; #endif + host_driver_disabled = user_state.host_driver_disabled; } } void user_transport_sync(void) { if (is_keyboard_master()) { // Keep track of the last state, so that we can tell if we need to propagate to slave - static user_runtime_config_t last_user_state; static uint16_t last_keymap = 0; - static uint32_t last_config = 0; - static uint32_t last_sync[3]; + static uint32_t last_config = 0, last_sync[3], last_user_state = 0; bool needs_sync = false; // Check if the state values are different - if (memcmp(&user_state, &last_user_state, sizeof(user_state))) { + if (memcmp(&transport_user_state, &last_user_state, sizeof(transport_user_state))) { needs_sync = true; - memcpy(&last_user_state, &user_state, sizeof(user_state)); + memcpy(&last_user_state, &transport_user_state, sizeof(transport_user_state)); } // Send to slave every 500ms regardless of state change if (timer_elapsed32(last_sync[0]) > 250) { diff --git a/users/drashna/transport_sync.h b/users/drashna/transport_sync.h index 062df2baccb9..70b6ea522bec 100644 --- a/users/drashna/transport_sync.h +++ b/users/drashna/transport_sync.h @@ -19,12 +19,16 @@ #include "drashna.h" -__attribute__((aligned(8))) typedef struct { - bool audio_enable; - bool audio_clicky_enable; - bool tap_toggling; - bool unicode_mode; - bool swap_hands; +typedef union { + uint32_t raw; + struct { + bool audio_enable :1; + bool audio_clicky_enable :1; + bool tap_toggling :1; + bool unicode_mode :1; + bool swap_hands :1; + bool host_driver_disabled :1; + }; } user_runtime_config_t; extern user_runtime_config_t user_state; diff --git a/users/manna-harbour_miryoku/README.org b/users/manna-harbour_miryoku/README.org deleted file mode 120000 index b6caaade1678..000000000000 --- a/users/manna-harbour_miryoku/README.org +++ /dev/null @@ -1 +0,0 @@ -miryoku.org \ No newline at end of file diff --git a/users/manna-harbour_miryoku/config.h b/users/manna-harbour_miryoku/config.h index 38d363299e29..d24f52edae69 100644 --- a/users/manna-harbour_miryoku/config.h +++ b/users/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.c b/users/manna-harbour_miryoku/manna-harbour_miryoku.c index ff25b77934f8..6347183417e5 100644 --- a/users/manna-harbour_miryoku/manna-harbour_miryoku.c +++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.c @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . @@ -9,40 +9,50 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined MIRYOKU_LAYERS_FLIP [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_COLEMAK + #if defined MIRYOKU_ALPHAS_AZERTY + KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + LGUI_T(KC_Q), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_M), + LT(BUTTON, KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(BUTTON, KC_QUOT), + U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + #elif defined MIRYOKU_ALPHAS_COLEMAK KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_COLEMAKDHK KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_DVORAK KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S), - KC_SLSH, ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), KC_Z, + LT(BUTTON, KC_SLSH), ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(BUTTON, KC_Z), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_HALMAK KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), - KC_F, ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), KC_Y, + LT(BUTTON, KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(BUTTON, KC_Y), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_WORKMAN KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), - KC_Z, ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_QWERTY KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), - KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), + U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + #elif defined MIRYOKU_ALPHAS_QWERTZ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, + LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), + LT(BUTTON, KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #else KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #endif ), @@ -85,12 +95,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { U_NP, U_NP, KC_MUTE, KC_MPLY, KC_MSTP, U_NA, U_NA, U_NA, U_NP, U_NP ), #endif - [MBO] = LAYOUT_miryoku( - U_RDO, U_PST, U_CPY, U_CUT, U_UND, U_RDO, U_PST, U_CPY, U_CUT, U_UND, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP - ), [NUM] = LAYOUT_miryoku( RESET, U_NA, U_NA, U_NA, U_NA, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, @@ -108,44 +112,53 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_SLCK, KC_F4, KC_F5, KC_F6, KC_F11, U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10, U_NP, U_NP, U_NA, U_NA, U_NA, KC_TAB, KC_SPC, KC_APP, U_NP, U_NP - ) -, + ), #else [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_COLEMAK + #if defined MIRYOKU_ALPHAS_AZERTY + KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + LGUI_T(KC_Q), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_M), + LT(BUTTON, KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(BUTTON, KC_QUOT), + U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + #elif defined MIRYOKU_ALPHAS_COLEMAK KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_COLEMAKDHK KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_DVORAK KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S), - KC_SLSH, ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), KC_Z, + LT(BUTTON, KC_SLSH), ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(BUTTON, KC_Z), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_HALMAK KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), - KC_F, ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), KC_Y, + LT(BUTTON, KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(BUTTON, KC_Y), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_WORKMAN KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), - KC_Z, ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_QWERTY KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), - KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), + U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + #elif defined MIRYOKU_ALPHAS_QWERTZ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, + LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), + LT(BUTTON, KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #else KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #endif ), @@ -188,12 +201,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP ), #endif - [MBO] = LAYOUT_miryoku( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - U_RDO, U_PST, U_CPY, U_CUT, U_UND, U_RDO, U_PST, U_CPY, U_CUT, U_UND, - U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP - ), [NUM] = LAYOUT_miryoku( KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, U_NA, U_NA, U_NA, U_NA, RESET, KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, @@ -211,6 +218,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, U_NA, U_NA, U_NA, KC_ALGR, U_NA, U_NP, U_NP, KC_APP, KC_SPC, KC_TAB, U_NA, U_NA, U_NA, U_NP, U_NP - ) + ), #endif + [BUTTON] = LAYOUT_miryoku( + U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, + U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, + U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP + ) }; diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.h b/users/manna-harbour_miryoku/manna-harbour_miryoku.h index 4d62c1707961..1d14f617105d 100644 --- a/users/manna-harbour_miryoku/manna-harbour_miryoku.h +++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // 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 . @@ -12,7 +12,7 @@ #define U_NA KC_NO // present but not available for use #define U_NU KC_NO // available but not used -enum layers { BASE, MBO, MEDIA, NAV, MOUSE, SYM, NUM, FUN }; +enum layers { BASE, BUTTON, MEDIA, NAV, MOUSE, SYM, NUM, FUN }; #if defined MIRYOKU_CLIPBOARD_FUN #define U_RDO KC_AGIN diff --git a/users/manna-harbour_miryoku/miryoku.org b/users/manna-harbour_miryoku/readme.org similarity index 79% rename from users/manna-harbour_miryoku/miryoku.org rename to users/manna-harbour_miryoku/readme.org index 2f6b1d5a88e2..b904738a6762 100644 --- a/users/manna-harbour_miryoku/miryoku.org +++ b/users/manna-harbour_miryoku/readme.org @@ -1,100 +1,41 @@ # After making changes to code or tables call org-babel-tangle (C-c C-v t). -#+Title: Miryoku [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/miryoku-roa-32.png]] +* Miryoku QMK [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/miryoku-roa-32.png]] [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/cover/miryoku-kle-cover.png]] -Miryoku is an ergonomic, minimal, orthogonal layout for ergo or ortho keyboards, -implemented as part of the QMK firmware. +[[https://github.com/manna-harbour/miryoku/][Miryoku]] is an ergonomic, minimal, orthogonal, and universal keyboard layout. This is the Miryoku implementation for [[https://qmk.fm][QMK]]. -The layout is maintained in emacs org-mode tables and converted to QMK keymap -data structures using embedded python scripts. It is mapped onto keyboards with -different physical layouts as a subset without code duplication using the QMK -userspace feature and C macros. +** Branches + + +*** QMK master + +Miryoku QMK is periodically merged upstream into QMK master and it is generally recommended to build directly from QMK master. + +QMK master is at https://github.com/qmk/qmk_firmware/tree/master, and the corresponding Miryoku QMK readme is at https://github.com/qmk/qmk_firmware/tree/master/users/manna-harbour_miryoku. + + +*** Miryoku QMK development branch + +The Miryoku QMK development branch is ~miryoku~ and may contain new commits not yet merged into QMK master. -Please see the [[https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org][development branch]] for any [[https://github.com/qmk/qmk_firmware/compare/master...manna-harbour:miryoku][updates not yet merged into QMK]]. +~miryoku~ is at https://github.com/manna-harbour/miryoku_qmk/tree/miryoku, and the corresponding Miryoku QMK readme is at https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku. -To checkout the development branch in your existing QMK build environment: +New commits can be seen at the top of the [[https://github.com/manna-harbour/miryoku_qmk/commits/miryoku][history]] with commit messages beginning ~[miryoku]~. After the new commits are squashed and merged upstream into QMK master by pull request the ~miryoku~ branch is renamed and a new ~miryoku~ branch is created from QMK master. + +To checkout the ~miryoku~ branch in your existing QMK build environment: #+BEGIN_SRC sh :tangle no -git remote add manna-harbour git@github.com:manna-harbour/qmk_firmware.git # ssh -git remote add manna-harbour https://github.com/manna-harbour/qmk_firmware.git # https -git fetch manna-harbour -git checkout --track manna-harbour/miryoku -#+END_SRC - -Additional implementations and visualisations are provided outside QMK in the -[[https://github.com/manna-harbour/miryoku/blob/master/README.org][Miryoku (Extras) repository]]. - - -* Contents :TOC_3: -- [[#layout][Layout]] - - [[#general-principles][General Principles]] - - [[#details][Details]] - - [[#layers][Layers]] - - [[#base][Base]] - - [[#nav][Nav]] - - [[#mouse][Mouse]] - - [[#mouse-buttons-overlay][Mouse Buttons Overlay]] - - [[#media][Media]] - - [[#num][Num]] - - [[#sym][Sym]] - - [[#fun][Fun]] - - [[#alternative-layouts][Alternative Layouts]] -- [[#code-generation][Code Generation]] - - [[#table-conversion-scripts][Table Conversion Scripts]] - - [[#table-layout-taphold][table-layout-taphold]] - - [[#table-layout-half][table-layout-half]] - - [[#table-layout-full][table-layout-full]] - - [[#table-enums][table-enums]] - - [[#table-keycode-mappings][table-keycode-mappings]] - - [[#data][Data]] - - [[#symbol-names][symbol-names]] - - [[#mods][mods]] - - [[#nonkc][nonkc]] - - [[#header][header]] - - [[#license-qmk][license-qmk]] -- [[#subset-mapping][Subset Mapping]] - - [[#userspace][Userspace]] - - [[#usersmanna-harbour_miryokurulesmk][users/manna-harbour_miryoku/rules.mk]] - - [[#usersmanna-harbour_miryokuconfigh][users/manna-harbour_miryoku/config.h]] - - [[#usersmanna-harbour_miryokumanna-harbour_miryokuh][users/manna-harbour_miryoku/manna-harbour_miryoku.h]] - - [[#usersmanna-harbour_miryokumanna-harbour_miryokuc][users/manna-harbour_miryoku/manna-harbour_miryoku.c]] - - [[#layouts][Layouts]] - - [[#60_ansi][60_ansi]] - - [[#ergodox][ergodox]] - - [[#ortho_4x10][ortho_4x10]] - - [[#ortho_4x12][ortho_4x12]] - - [[#ortho_5x12][ortho_5x12]] - - [[#ortho_5x15][ortho_5x15]] - - [[#planck_mit][planck_mit]] - - [[#split_3x5_3][split_3x5_3]] - - [[#split_3x6_3][split_3x6_3]] - - [[#keyboards][Keyboards]] - - [[#atreus][atreus]] - - [[#ergotravel][ergotravel]] - - [[#for_science][for_science]] - - [[#gergo][gergo]] - - [[#handwireddactyl_manuform4x5][handwired/dactyl_manuform/4x5]] - - [[#handwireddactyl_manuform5x6][handwired/dactyl_manuform/5x6]] - - [[#keebioiris][keebio/iris]] - - [[#keyboardioatreus][keyboardio/atreus]] - - [[#kyria][kyria]] - - [[#lily58][lily58]] - - [[#moonlander][moonlander]] - - [[#redox_w][redox_w]] - - [[#sofle][sofle]] - - [[#torn][torn]] - - [[#customisation][Customisation]] - - [[#examples][Examples]] -- [[#experimental-features][Experimental Features]] - - [[#bilateral-combinations][Bilateral Combinations]] - - [[#retro-shift][Retro Shift]] -- [[#documentation][Documentation]] -- [[#contact][Contact]] - -* Layout - -** General Principles +git remote add miryoku_qmk git@github.com:manna-harbour/miryoku_qmk.git # if using SSH +git remote add miryoku_qmk https://github.com/manna-harbour/miryoku_qmk.git # if using HTTPS +git fetch miryoku_qmk +git checkout --track miryoku_qmk/miryoku +#+END_SRC + + +** Layout + +*** General Principles - Use layers instead of reaching. - Use both hands instead of contortions. @@ -103,7 +44,7 @@ Additional implementations and visualisations are provided outside QMK in the - Avoid unnecessary complication. -** Details +*** Details - 5 columns, 3 rows, 3 thumb keys, 2 hands. - Can be used on almost any split or non-split ergo or ortho keyboard. @@ -133,7 +74,7 @@ Additional implementations and visualisations are provided outside QMK in the - Auto Shift for numbers and symbols. -** Layers +*** Layers [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-reference.png]] @@ -153,7 +94,7 @@ Mods (and reset) will be available on sub layers on the same hand as the layer change thumb key. Unknown names are considered to be layer names. -*** Base +**** Base [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-base.png]] @@ -164,10 +105,10 @@ backspace, enter, delete on the right and space, tab, escape on the left. Alternative alpha arrangements are also available. -**** Tap +***** Tap -***** Alphas +****** Alphas #+NAME: colemakdh | Q | W | F | P | B | J | L | U | Y | ' | @@ -175,22 +116,22 @@ Alternative alpha arrangements are also available. | Z | X | C | D | V | K | H | , | DOT | / | -***** Thumbs +****** Thumbs #+NAME: thumbs | U_NP | U_NP | ESC | SPC | TAB | ENT | BSPC | DEL | U_NP | U_NP | -**** Hold +***** Hold #+NAME: hold -| RESET | | | | | | | | | RESET | -| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | -| | ALGR | | | | | | | ALGR | | -| U_NP | U_NP | MEDIA | NAV | MOUSE | SYM | NUM | FUN | U_NP | U_NP | +| RESET | | | | | | | | | RESET | +| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | +| BUTTON | ALGR | | | | | | | ALGR | BUTTON | +| U_NP | U_NP | MEDIA | NAV | MOUSE | SYM | NUM | FUN | U_NP | U_NP | -*** Nav +**** Nav [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-nav.png]] @@ -209,7 +150,7 @@ available. | ENT | BSPC | DEL | U_NP | U_NP | -*** Mouse +**** Mouse [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-mouse.png]] @@ -226,19 +167,24 @@ layer. | BTN1 | BTN3 | BTN2 | U_NP | U_NP | -*** Mouse Buttons Overlay +**** Button -Available for automatic activation depending on keyboard hardware and -configuration. Not activated manually. +[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-button.png]] -#+NAME: mbo -| U_RDO | U_PST | U_CPY | U_CUT | U_UND | U_RDO | U_PST | U_CPY | U_CUT | U_UND | +Provides mouse buttons, mods, and clipboard keys for use with integrated or +external pointing devices, used with either hand. The layer is available for +automatic activation depending on hardware and configuration. It can also be +activated manually by holding a bottom row pinkie key (however GUI and Undo will +be unavailable). + +#+NAME: button +| U_UND | U_CUT | U_CPY | U_PST | U_RDO | U_RDO | U_PST | U_CPY | U_CUT | U_UND | | LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | -| | | | | | | | | | | +| U_UND | U_CUT | U_CPY | U_PST | U_RDO | U_RDO | U_PST | U_CPY | U_CUT | U_UND | | U_NP | U_NP | BTN2 | BTN3 | BTN1 | BTN1 | BTN3 | BTN2 | U_NP | U_NP | -*** Media +**** Media [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-media.png]] @@ -254,7 +200,7 @@ available for other related functions. | MSTP | MPLY | MUTE | U_NP | U_NP | -*** Num +**** Num [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-num.png]] @@ -269,7 +215,7 @@ Dot is duplicated from the base layer. | U_NP | U_NP | DOT | 0 | MINS | -*** Sym +**** Sym [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-sym.png]] @@ -284,7 +230,7 @@ next to close parenthesis. | U_NP | U_NP | ( | ) | _ | -*** Fun +**** Fun [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-fun.png]] @@ -301,19 +247,29 @@ the base layer to enable auto-repeat. | U_NP | U_NP | APP | SPC | TAB | -*** Alternative Layouts +**** Alternative Layouts The defaults are recommended, but alternative layouts are provided to accommodate existing muscle memory and platform differences. -**** Alphas +***** Alphas To select, append the corresponding option to the ~make~ command line when building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. -***** Colemak +****** AZERTY + +~MIRYOKU_ALPHAS=AZERTY~ + +#+NAME: azerty +| A | Z | E | R | T | Y | U | I | O | P | +| Q | S | D | F | G | H | J | K | L | M | +| W | X | C | V | B | N | , | DOT | / | ' | + + +****** Colemak ~MIRYOKU_ALPHAS=COLEMAK~ @@ -323,7 +279,7 @@ building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. | Z | X | C | V | B | K | M | , | DOT | / | -***** Colemak Mod-DHk +****** Colemak Mod-DHk ~MIRYOKU_ALPHAS=COLEMAKDHK~ @@ -333,7 +289,7 @@ building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. | Z | X | C | D | V | M | H | , | DOT | / | -***** Dvorak +****** Dvorak ~MIRYOKU_ALPHAS=DVORAK~ @@ -343,7 +299,7 @@ building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. | / | Q | J | K | X | B | M | W | V | Z | -***** Halmak +****** Halmak ~MIRYOKU_ALPHAS=HALMAK~ @@ -353,7 +309,7 @@ building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. | F | M | V | C | / | G | P | X | K | Y | -***** Workman +****** Workman ~MIRYOKU_ALPHAS=WORKMAN~ @@ -363,7 +319,7 @@ building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. | Z | X | M | C | V | K | L | , | DOT | / | -***** QWERTY +****** QWERTY ~MIRYOKU_ALPHAS=QWERTY~ @@ -373,16 +329,26 @@ building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. | Z | X | C | V | B | N | M | , | DOT | / | -**** Nav +****** QWERTZ + +~MIRYOKU_ALPHAS=QWERTZ~ + +#+NAME: qwertz +| Q | W | E | R | T | Z | U | I | O | P | +| A | S | D | F | G | H | J | K | L | ' | +| Y | X | C | V | B | N | M | , | DOT | / | -***** vi-Style +***** Nav + + +****** vi-Style To select, append ~MIRYOKU_NAV=VI~ to the ~make~ command line when building. Not available with ~MIRYOKU_LAYERS=FLIP~. -****** Nav +******* Nav #+NAME: nav-r-vi | U_RDO | U_PST | U_CPY | U_CUT | U_UND | @@ -391,7 +357,7 @@ Not available with ~MIRYOKU_LAYERS=FLIP~. | ENT | BSPC | DEL | U_NP | U_NP | -****** Mouse +******* Mouse #+NAME: mouse-r-vi | U_RDO | U_PST | U_CPY | U_CUT | U_UND | @@ -400,7 +366,7 @@ Not available with ~MIRYOKU_LAYERS=FLIP~. | BTN1 | BTN3 | BTN2 | U_NP | U_NP | -****** Media +******* Media #+NAME: media-r-vi | RGB_TOG | RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI | @@ -409,7 +375,7 @@ Not available with ~MIRYOKU_LAYERS=FLIP~. | MSTP | MPLY | MUTE | U_NP | U_NP | -***** Inverted-T +****** Inverted-T [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-reference-flip-invertedt.png]] @@ -417,7 +383,7 @@ To select, append ~MIRYOKU_NAV=INVERTEDT~ to the ~make~ command line when building. Only available with ~MIRYOKU_LAYERS=FLIP~. -****** Nav +******* Nav #+NAME: nav-l-invertedt | PGUP | HOME | UP | END | INS | @@ -426,7 +392,7 @@ building. Only available with ~MIRYOKU_LAYERS=FLIP~. | U_NP | U_NP | DEL | BSPC | ENT | -****** Mouse +******* Mouse #+NAME: mouse-l-invertedt | WH_U | WH_L | MS_U | WH_R | | @@ -435,7 +401,7 @@ building. Only available with ~MIRYOKU_LAYERS=FLIP~. | U_NP | U_NP | BTN2 | BTN3 | BTN1 | -****** Media +******* Media #+NAME: media-l-invertedt | | | VOLU | | | @@ -444,7 +410,7 @@ building. Only available with ~MIRYOKU_LAYERS=FLIP~. | U_NP | U_NP | MUTE | MPLY | MSTP | -**** Clipboard +***** Clipboard Keycodes are translated according to the following tables. @@ -457,7 +423,7 @@ To select, append the corresponding option to the ~make~ command line when building, e.g. ~MIRYOKU_CLIPBOARD=WIN~. -***** Default +****** Default #+NAME: clipboard | U_RDO | AGIN | @@ -467,7 +433,7 @@ building, e.g. ~MIRYOKU_CLIPBOARD=WIN~. | U_UND | UNDO | -***** Fun Cluster +****** Fun Cluster ~MIRYOKU_CLIPBOARD=FUN~ @@ -479,7 +445,7 @@ building, e.g. ~MIRYOKU_CLIPBOARD=WIN~. | U_UND | UNDO | -***** Mac +****** Mac ~MIRYOKU_CLIPBOARD=MAC~ @@ -491,7 +457,7 @@ building, e.g. ~MIRYOKU_CLIPBOARD=WIN~. | U_UND | LCMD(KC_Z) | -***** Windows +****** Windows ~MIRYOKU_CLIPBOARD=WIN~ @@ -503,32 +469,32 @@ building, e.g. ~MIRYOKU_CLIPBOARD=WIN~. | U_UND | C(KC_Z) | -**** Layers +***** Layers -***** Flip +****** Flip Flip base layer thumb keys and sub layers between right and left hands. To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building. -****** Thumbs +******* Thumbs #+NAME: thumbs-flip | U_NP | U_NP | DEL | BSPC | ENT | TAB | SPC | ESC | U_NP | U_NP | -****** Hold +******* Hold #+NAME: hold-flip -| RESET | | | | | | | | | RESET | -| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | -| | ALGR | | | | | | | ALGR | | -| U_NP | U_NP | FUN | NUM | SYM | MOUSE | NAV | MEDIA | U_NP | U_NP | +| RESET | | | | | | | | | RESET | +| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | +| BUTTON | ALGR | | | | | | | ALGR | BUTTON | +| U_NP | U_NP | FUN | NUM | SYM | MOUSE | NAV | MEDIA | U_NP | U_NP | -****** Nav +******* Nav #+NAME: nav-l | HOME | PGDN | PGUP | END | INS | @@ -537,7 +503,7 @@ To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building | U_NP | U_NP | DEL | BSPC | ENT | -****** Mouse +******* Mouse #+NAME: mouse-l | WH_L | WH_D | WH_U | WH_R | | @@ -546,16 +512,7 @@ To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building | U_NP | U_NP | BTN2 | BTN3 | BTN1 | -****** Mouse Buttons Overlay - -#+NAME: mbo-flip -| | | | | | | | | | | -| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | -| U_RDO | U_PST | U_CPY | U_CUT | U_UND | U_RDO | U_PST | U_CPY | U_CUT | U_UND | -| U_NP | U_NP | BTN2 | BTN3 | BTN1 | BTN1 | BTN3 | BTN2 | U_NP | U_NP | - - -****** Media +******* Media #+NAME: media-l | RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI | RGB_TOG | @@ -564,7 +521,7 @@ To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building | U_NP | U_NP | MUTE | MPLY | MSTP | -****** Num +******* Num #+NAME: num-r | [ | 7 | 8 | 9 | ] | @@ -573,7 +530,7 @@ To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building | MINS | 0 | DOT | U_NP | U_NP | -****** Sym +******* Sym #+NAME: sym-r | { | & | * | ( | } | @@ -582,7 +539,7 @@ To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building | _ | ( | ) | U_NP | U_NP | -****** Fun +******* Fun #+NAME: fun-r | PSCR | F7 | F8 | F9 | F12 | @@ -591,7 +548,7 @@ To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building | TAB | SPC | APP | U_NP | U_NP | -*** COMMENT Templates +**** COMMENT Templates #+NAME: tem | | | | | | | | | | | @@ -621,13 +578,16 @@ Duplicate base layer tap keys on thumbs rather than trans to enable auto-repeat. | U_NP | U_NP | ESC | SPC | TAB | -* Code Generation +** Code Generation + +The layout is maintained in emacs org-mode tables and converted to QMK keymap +data structures using embedded python scripts. -** Table Conversion Scripts +*** Table Conversion Scripts -*** table-layout-taphold +**** table-layout-taphold Produce base layer from separate tap and hold tables. @@ -669,7 +629,7 @@ return results : U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP -*** table-layout-half +**** table-layout-half Produce sub layers given layer name and corresponding table for single hand and incorporating mods and reset from base layer. Layer names must end with 'R' or @@ -726,12 +686,12 @@ return results : U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP -*** table-layout-full +**** table-layout-full Produce full layer from single table. Fill for unused keys is configurable. #+NAME: table-layout-full -#+BEGIN_SRC python :var table=mbo :var fill="TRNS" :var symbol_names_table=symbol-names :var nonkc_table=nonkc :tangle no :results verbatim +#+BEGIN_SRC python :var table=button :var fill="TRNS" :var symbol_names_table=symbol-names :var nonkc_table=nonkc :tangle no :results verbatim width = 9 symbol_names_dict = {} nonkc_tuple = tuple(nonkc_table[0]) @@ -757,33 +717,33 @@ return results #+END_SRC #+RESULTS: table-layout-full -: U_RDO, U_PST, U_CPY, U_CUT, U_UND, U_RDO, U_PST, U_CPY, U_CUT, U_UND, +: U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, : KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, -: KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +: U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, : U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP -*** table-enums +**** table-enums Produce layer enums from layer names in hold table. #+NAME: table-enums #+BEGIN_SRC python :var hold_table=hold :var mods_table=mods :tangle no mods_dict = dict.fromkeys(mods_table[0]) -results = 'enum layers { BASE, MBO, ' +layers = [ 'BASE', 'BUTTON' ] for hold_row in hold_table: for hold in hold_row: - if hold not in mods_dict and hold != '' and hold != 'U_NP' and hold != 'RESET': - results += hold + ', ' -results = results.rstrip(', ') + ' };' + if hold not in mods_dict and hold != '' and hold != 'U_NP' and hold != 'RESET' and hold not in layers: + layers.append(hold) +results = 'enum layers { ' + ', '.join(layers) + ' };' return results #+END_SRC #+RESULTS: table-enums -: enum layers { BASE, MBO, MEDIA, NAV, MOUSE, SYM, NUM, FUN }; +: enum layers { BASE, BUTTON, MEDIA, NAV, MOUSE, SYM, NUM, FUN }; -*** table-keycode-mappings +**** table-keycode-mappings Produce keycode mappings according to the provided table. @@ -816,7 +776,7 @@ return results : #define U_UND KC_UNDO -*** COMMENT python-version +**** COMMENT python-version C-c C-c in code block to update @@ -831,10 +791,10 @@ return sys.version : [GCC 5.4.0 20160609] -** Data +*** Data -*** symbol-names +**** symbol-names Symbol, name, and shifted symbol mappings for use in tables. @@ -862,7 +822,7 @@ Symbol, name, and shifted symbol mappings for use in tables. | 0 | 0 | ) | RPRN | -*** mods +**** mods Modifiers usable in hold table. Need to have the same name for ~KC_~ and ~_T~ versions. @@ -871,7 +831,7 @@ versions. | LSFT | LCTL | LALT | LGUI | ALGR | -*** nonkc +**** nonkc Keycodes that match any of these prefixes will not have ~KC_~ automatically prepended. @@ -880,7 +840,7 @@ prepended. | U_ | RGB_ | RESET | S( | C( | SCMD( | LCMD( | -*** header +**** header Header for tangled files. @@ -888,11 +848,11 @@ Header for tangled files. #+BEGIN_SRC C :main no :tangle no Copyright 2019 Manna Harbour https://github.com/manna-harbour/miryoku -generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +generated -*- buffer-read-only: t -*- #+END_SRC -*** license-qmk +**** license-qmk License for tangled QMK C source files. @@ -902,20 +862,21 @@ License for tangled QMK C source files. #+END_SRC -* Subset Mapping +** Subset Mapping The keymap, build options, and configuration are shared between keyboards. The -layout is mapped onto keyboards with different physical layouts as a subset. +layout is mapped onto keyboards with different physical layouts as a subset +without code duplication using the QMK userspace feature and C macros. -** Userspace +*** Userspace The keymap is defined for ~LAYOUT_miryoku~ which is 10x4, with the outer 2 positions on the bottom row unused and the rest of the bottom row being the thumb keys. -*** [[./rules.mk][users/manna-harbour_miryoku/rules.mk]] +**** [[./rules.mk][users/manna-harbour_miryoku/rules.mk]] Build options. Automatically included. @@ -957,7 +918,7 @@ endif #+END_SRC -*** [[./config.h][users/manna-harbour_miryoku/config.h]] +**** [[./config.h][users/manna-harbour_miryoku/config.h]] Config options. Automatically included. @@ -1000,7 +961,7 @@ Config options. Automatically included. #+END_SRC -*** [[./manna-harbour_miryoku.h][users/manna-harbour_miryoku/manna-harbour_miryoku.h]] +**** [[./manna-harbour_miryoku.h][users/manna-harbour_miryoku/manna-harbour_miryoku.h]] Keymap-related definitions. Included from ~manna-harbour_miryoku.c~. Can be included from keymap or layout ~keymap.c~ if needed. @@ -1034,7 +995,7 @@ included from keymap or layout ~keymap.c~ if needed. #+END_SRC -*** [[./manna-harbour_miryoku.c][users/manna-harbour_miryoku/manna-harbour_miryoku.c]] +**** [[./manna-harbour_miryoku.c][users/manna-harbour_miryoku/manna-harbour_miryoku.c]] Contains the keymap. Added from ~rules.mk~. @@ -1048,7 +1009,9 @@ Contains the keymap. Added from ~rules.mk~. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined MIRYOKU_LAYERS_FLIP [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_COLEMAK + #if defined MIRYOKU_ALPHAS_AZERTY +<> + #elif defined MIRYOKU_ALPHAS_COLEMAK <> #elif defined MIRYOKU_ALPHAS_COLEMAKDHK <> @@ -1060,6 +1023,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { <> #elif defined MIRYOKU_ALPHAS_QWERTY <> + #elif defined MIRYOKU_ALPHAS_QWERTZ +<> #else <> #endif @@ -1085,9 +1050,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { <> ), #endif - [MBO] = LAYOUT_miryoku( -<> - ), [NUM] = LAYOUT_miryoku( <> ), @@ -1096,11 +1058,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [FUN] = LAYOUT_miryoku( <> - ) -, + ), #else [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_COLEMAK + #if defined MIRYOKU_ALPHAS_AZERTY +<> + #elif defined MIRYOKU_ALPHAS_COLEMAK <> #elif defined MIRYOKU_ALPHAS_COLEMAKDHK <> @@ -1112,6 +1075,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { <> #elif defined MIRYOKU_ALPHAS_QWERTY <> + #elif defined MIRYOKU_ALPHAS_QWERTZ +<> #else <> #endif @@ -1137,9 +1102,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { <> ), #endif - [MBO] = LAYOUT_miryoku( -<> - ), [NUM] = LAYOUT_miryoku( <> ), @@ -1148,13 +1110,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [FUN] = LAYOUT_miryoku( <> - ) + ), #endif + [BUTTON] = LAYOUT_miryoku( +<> + ) }; #+END_SRC -** Layouts +*** Layouts To use the keymap on a keyboard supporting the layouts feature, ~LAYOUT_miryoku~ is defined as a macro mapping onto the layout's own ~LAYOUT~ macro, leaving the @@ -1170,7 +1135,7 @@ make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=ortho_4x12 # ortho_4x1 #+END_SRC -*** 60_ansi +**** 60_ansi An angled ortho split layout is mapped onto the row-staggered keyboard. The rows are moved up to better position the thumb keys, the hands are separated as @@ -1185,6 +1150,11 @@ command line when building. [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-60_ansi-noreverseangle.png]] +Another alternative subset mapping is provided mapping only the 3x10 alphas, +plus spacebar for space / Nav, with the remainder being the default 60_ansi +keymap with semicolon in place of quote. To select this mapping, append +~MIRYOKU_MAPPING=LITE~ to the ~make~ command line when building. + Keyboards supporting this layout: alps64, amj60, bakeneko60, bm60poker, bm60rgb, do60, dp60, dz60, facew, gskt00, infinity60, jm60, kc60, kc60se, ok60, org60, paladin64, panc60, reviung61, smk60, v60_type_r, yd60mq, 1upkeyboards/1up60hse, 1upkeyboards/1up60rgb, 40percentclub/luddite, acheron/keebspcb, acheron/lasgweloth, ai03/polaris, akegata_denki/device_one, atxkb/1894, bioi/g60ble, bt66tech/bt66tech60, cannonkeys/an_c, cannonkeys/instant60, cannonkeys/practice60, clawsome/coupe, dm9records/tartan, duck/eagle_viper, evyd13/plain60, exclusive/e6_rgb, gh60/revc, gh60/satan, gh60/v1p3, handwired/xealousbrown, hineybush/h60, hs60/v1, keebio/wtf60, noxary/260, playkbtw/pk60, ryloo_studio/m0110, thevankeyboards/bananasplit, wilba_tech/zeal60, xd60/rev2, xd60/rev3, cannonkeys/db60/hotswap, cannonkeys/db60/j02, cannonkeys/db60/rev2, exclusive/e6v2/le, exclusive/e6v2/oe, foxlab/leaf60/universal, handwired/co60/rev1, handwired/co60/rev7, handwired/swiftrax/nodu, hs60/v2/ansi, inett_studio/sqx/universal, melgeek/mj61/rev1, melgeek/mj61/rev2, melgeek/mj63/rev1, melgeek/mj63/rev2, sentraq/s60_x/default, sentraq/s60_x/rgb. Example build command lines: @@ -1192,10 +1162,11 @@ Example build command lines: #+BEGIN_SRC sh :tangle no make dz60:manna-harbour_miryoku:flash # dz60 make dz60:manna-harbour_miryoku:flash MIRYOKU_MAPPING=NOREVERSEANGLE # dz60, without reverse column angle +make dz60:manna-harbour_miryoku:flash MIRYOKU_MAPPING=LITE # dz60, with lite mapping #+END_SRC -**** [[../../layouts/community/60_ansi/manna-harbour_miryoku/config.h][layouts/community/60_ansi/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/60_ansi/manna-harbour_miryoku/config.h][layouts/community/60_ansi/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1209,7 +1180,7 @@ Contains subset mapping. #define XXX KC_NO #if defined MIRYOKU_MAPPING_NOREVERSEANGLE -#define LAYOUT_miryoku(\ + #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ @@ -1222,8 +1193,38 @@ K00, K01, K02, K03, K04, XXX, XXX, XXX, K05, K06, K07, K08, K09, XX XXX, K32, K33, K34, XXX, XXX, XXX, XXX, K35, K36, K37, XXX,\ XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX\ ) +#elif defined MIRYOKU_MAPPING_LITE + #if defined MIRYOKU_LAYERS_FLIP + #define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_60_ansi( \ +KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ +KC_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \ +KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \ +KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \ +KC_LCTL, KC_LGUI, KC_LALT, K36, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \ +) + #else + #define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_60_ansi( \ +KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ +KC_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \ +KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \ +KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \ +KC_LCTL, KC_LGUI, KC_LALT, K33, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \ +) + #endif #else -#define LAYOUT_miryoku(\ + #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ @@ -1240,7 +1241,7 @@ XXX, XXX, K00, K01, K02, K03, K04, XXX, K05, K06, K07, K08, K09, XX #+END_SRC -**** [[../../layouts/community/60_ansi/manna-harbour_miryoku/keymap.c][layouts/community/60_ansi/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/60_ansi/manna-harbour_miryoku/keymap.c][layouts/community/60_ansi/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1251,7 +1252,7 @@ Required by the build system. #+END_SRC -*** ergodox +**** ergodox For the ergodox layout, the main 5x3 alphas are used as usual. The primary and secondary thumb keys are the inner and outer 2u thumb keys and the tertiary @@ -1270,7 +1271,7 @@ make ergodox_ez:manna-harbour_miryoku:flash # ergodox_ez #+END_SRC -**** [[../../layouts/community/ergodox/manna-harbour_miryoku/config.h][layouts/community/ergodox/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/ergodox/manna-harbour_miryoku/config.h][layouts/community/ergodox/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1302,7 +1303,7 @@ XXX, XXX, XXX, XXX, K32, K37, XXX, XXX, XXX, XXX,\ #+END_SRC -**** [[../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c][layouts/community/ergodox/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c][layouts/community/ergodox/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1313,7 +1314,9 @@ Required by the build system. #+END_SRC -*** ortho_4x10 +**** ortho_4x10 + +An alternative with 180 degree rotation is also provided to enable the USB cable to be relocated for use with laptops. To select this mapping, append ~MIRYOKU_MAPPING=ROTATE~ to the ~make~ command line when building. Keyboards supporting this layout: newgame40, nimrod, marksard/rhymestone, pabile/p40. @@ -1321,10 +1324,11 @@ Example build command lines: #+BEGIN_SRC sh :tangle no make marksard/rhymestone:manna-harbour_miryoku:flash # marksard/rhymestone +make pabile/p40:manna-harbour_miryoku:flash MIRYOKU_MAPPING=ROTATE # pabile/p40, rotate #+END_SRC -**** [[../../layouts/community/ortho_4x10/manna-harbour_miryoku/config.h][layouts/community/ortho_4x10/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/ortho_4x10/manna-harbour_miryoku/config.h][layouts/community/ortho_4x10/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1335,22 +1339,39 @@ Contains subset mapping. #pragma once +#define XXX KC_NO + +#if defined MIRYOKU_MAPPING_ROTATE +#define LAYOUT_miryoku( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_ortho_4x10( \ +XXX, XXX, K37, K36, K35, K34, K33, K32, XXX, XXX, \ +K29, K28, K27, K26, K25, K24, K23, K22, K21, K20, \ +K19, K18, K17, K16, K15, K14, K13, K12, K11, K10, \ +K09, K08, K07, K06, K05, K04, K03, K02, K01, K00 \ +) +#else #define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_ortho_4x10(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO\ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_ortho_4x10( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ ) +#endif #+END_SRC -**** [[../../layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1361,7 +1382,7 @@ Required by the build system. #+END_SRC -*** ortho_4x12 +**** ortho_4x12 For the ortho_4x12 layout, the middle two columns, and the 2 keys on each end of the bottom row are unused. This allows the hands to be positioned without ulnar @@ -1398,7 +1419,7 @@ make keebio/levinson:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS #+END_SRC -**** [[../../layouts/community/ortho_4x12/manna-harbour_miryoku/config.h][layouts/community/ortho_4x12/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/ortho_4x12/manna-harbour_miryoku/config.h][layouts/community/ortho_4x12/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1452,7 +1473,7 @@ KC_NO, KC_NO, K32, K33, K34, KC_NO, KC_NO, K35, K36, K37, KC_NO, KC_ #+END_SRC -**** [[../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1463,7 +1484,7 @@ Required by the build system. #+END_SRC -*** ortho_5x12 +**** ortho_5x12 As per ortho_4x12 but the top row is unused. @@ -1480,7 +1501,7 @@ make keebio/nyquist/rev3:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_TH #+END_SRC -**** [[../../layouts/community/ortho_5x12/manna-harbour_miryoku/config.h][layouts/community/ortho_5x12/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/ortho_5x12/manna-harbour_miryoku/config.h][layouts/community/ortho_5x12/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1537,7 +1558,7 @@ KC_NO, KC_NO, K32, K33, K34, KC_NO, KC_NO, K35, K36, K37, KC_NO, KC_ #+END_SRC -**** [[../../layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1548,7 +1569,7 @@ Required by the build system. #+END_SRC -*** ortho_5x15 +**** ortho_5x15 For the ortho_5x15 layout, the top row, middle 5 columns, and the 2 keys on each end of the bottom row are unused. This allows the hands to be positioned @@ -1574,7 +1595,7 @@ make idobo:manna-harbour_miryoku:flash # idobo #+END_SRC -**** [[../../layouts/community/ortho_5x15/manna-harbour_miryoku/config.h][layouts/community/ortho_5x15/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/ortho_5x15/manna-harbour_miryoku/config.h][layouts/community/ortho_5x15/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1621,7 +1642,7 @@ XXX, XXX, K32, K33, K34, XXX, XXX, XXX, XXX, XXX, K35, K36, K37, XXX, XXX\ #+RESULTS: -**** [[../../layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c][layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c][layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1632,7 +1653,7 @@ Required by the build system. #+END_SRC -*** planck_mit +**** planck_mit The middle two columns including the middle 2u key, and the 2 keys on each end of the bottom row are unused. @@ -1647,7 +1668,7 @@ make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=planck_mit # planck re #+END_SRC -**** [[../../layouts/community/planck_mit/manna-harbour_miryoku/config.h][layouts/community/planck_mit/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/planck_mit/manna-harbour_miryoku/config.h][layouts/community/planck_mit/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1673,7 +1694,7 @@ KC_NO, KC_NO, K32, K33, K34, KC_NO, K35, K36, K37, KC_NO, KC_ #+END_SRC -**** [[../../layouts/community/planck_mit/manna-harbour_miryoku/keymap.c][layouts/community/planck_mit/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/planck_mit/manna-harbour_miryoku/keymap.c][layouts/community/planck_mit/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1684,7 +1705,7 @@ Required by the build system. #+END_SRC -*** split_3x5_3 +**** split_3x5_3 Keyboards supporting this layout: arch_36, boardsource/microdox, centromere, crkbd, eek, miniaxe, minidox/rev1, pteron36, squiggle/rev1, suihankey/split/rev1. @@ -1696,7 +1717,7 @@ make minidox:manna-harbour_miryoku:flash # minidox #+END_SRC -**** [[../../layouts/community/split_3x5_3/manna-harbour_miryoku/config.h][layouts/community/split_3x5_3/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/split_3x5_3/manna-harbour_miryoku/config.h][layouts/community/split_3x5_3/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1722,7 +1743,7 @@ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ #+END_SRC -**** [[../../layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c][layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c][layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1733,7 +1754,7 @@ Required by the build system. #+END_SRC -*** split_3x6_3 +**** split_3x6_3 The outer columns are unused. @@ -1747,7 +1768,7 @@ make crkbd:manna-harbour_miryoku:flash # crkbd #+END_SRC -**** [[../../layouts/community/split_3x6_3/manna-harbour_miryoku/config.h][layouts/community/split_3x6_3/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/split_3x6_3/manna-harbour_miryoku/config.h][layouts/community/split_3x6_3/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1773,7 +1794,7 @@ KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 #+END_SRC -**** [[../../layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c][layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c][layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1784,14 +1805,14 @@ Required by the build system. #+END_SRC -** Keyboards +*** Keyboards To use the keymap on a keyboard which does not support the layouts feature, ~LAYOUT_miryoku~ is defined as a macro mapping onto the keyboard's own ~LAYOUT~ macro, leaving the unused keys as ~KC_NO~. -*** atreus +**** atreus Only the main 5x3 alphas and the inner 3 thumb keys are used. @@ -1802,7 +1823,7 @@ make atreus:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/atreus/keymaps/manna-harbour_miryoku/config.h][keyboards/atreus/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/atreus/keymaps/manna-harbour_miryoku/config.h][keyboards/atreus/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1830,7 +1851,7 @@ XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX\ #+END_SRC -**** [[../../keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c][keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c][keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1841,7 +1862,57 @@ Required by the build system. #+END_SRC -*** ergotravel +**** bastardkb/scylla + +To build for this keyboard, + +#+BEGIN_SRC sh :tangle no +make bastardkb/scylla:manna-harbour_miryoku:flash +#+END_SRC + + +***** [[../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h][keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h]] + +Contains subset mapping. + +#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h +// <
> + +<> + +#pragma once + +#define XXX KC_NO + +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_split_4x6_5( \ +XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ + K32, K33, K34, K35, K36, K37, \ + XXX, XXX, XXX, XXX \ +) +#+END_SRC + + +***** [[../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c][keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c]] + +Required by the build system. + +#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c +// <
> + +<> +#+END_SRC + + +**** ergotravel To build for this keyboard, @@ -1850,7 +1921,7 @@ make ergotravel:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h][keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h][keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1878,7 +1949,7 @@ XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX \ #+END_SRC -**** [[../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c][keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c][keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1889,7 +1960,7 @@ Required by the build system. #+END_SRC -*** for_science +**** for_science The top row is unused. @@ -1900,7 +1971,7 @@ make for_science:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/for_science/keymaps/manna-harbour_miryoku/config.h][keyboards/for_science/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/for_science/keymaps/manna-harbour_miryoku/config.h][keyboards/for_science/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1929,7 +2000,7 @@ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ #+END_SRC -**** [[../../keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c][keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c][keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1940,7 +2011,7 @@ Required by the build system. #+END_SRC -*** gergo +**** gergo Only the main 5x3 alphas and the outer 3 thumb keys are used. @@ -1951,7 +2022,7 @@ make gergo:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/gergo/keymaps/manna-harbour_miryoku/config.h][keyboards/gergo/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/gergo/keymaps/manna-harbour_miryoku/config.h][keyboards/gergo/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1979,7 +2050,7 @@ XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, #+END_SRC -**** [[../../keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c][keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c][keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1990,7 +2061,7 @@ Required by the build system. #+END_SRC -*** handwired/dactyl_manuform/4x5 +**** handwired/dactyl_manuform/4x5 Only the main 5x3 alphas and the main 3 thumb keys are used. @@ -2001,7 +2072,7 @@ make handwired/dactyl_manuform/4x5:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h][keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h][keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2032,7 +2103,7 @@ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ #+END_SRC -**** [[../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c][keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c][keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2043,7 +2114,7 @@ Required by the build system. #+END_SRC -*** handwired/dactyl_manuform/5x6 +**** handwired/dactyl_manuform/5x6 Only the main 5x3 alphas and the main 3 thumb keys are used. @@ -2054,7 +2125,7 @@ make handwired/dactyl_manuform/5x6:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h][keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h][keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2086,7 +2157,7 @@ XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, X #+END_SRC -**** [[../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c][keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c][keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2097,7 +2168,7 @@ Required by the build system. #+END_SRC -*** keebio/iris +**** keebio/iris Only the main 5x3 alphas and the bottom 3 thumb keys are used. @@ -2108,7 +2179,7 @@ make keebio/iris/rev4:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h][keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h][keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2137,7 +2208,7 @@ XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ #+END_SRC -**** [[../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c][keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c][keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2148,7 +2219,7 @@ Required by the build system. #+END_SRC -*** keyboardio/atreus +**** keyboardio/atreus Only the main 5x3 alphas and the inner 3 thumb keys are used. @@ -2159,7 +2230,7 @@ make keyboardio/atreus:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h][keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h][keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2187,7 +2258,7 @@ XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX \ #+END_SRC -**** [[../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c][keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c][keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2198,82 +2269,7 @@ Required by the build system. #+END_SRC -*** kyria - -Only the main 5x3 alphas and the middle 3 lower thumb keys are used. - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-kyria.png]] - -An alternative subset mapping is also provided with the thumb keys shifted one -position in the direction of thumb extension. To select this mapping, append -~MIRYOKU_MAPPING=EXTENDED_THUMBS~ to the ~make~ command line when building. - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-kyria-extended_thumbs.png]] - - -To build for this keyboard, - -#+BEGIN_SRC sh :tangle no -make kyria:manna-harbour_miryoku:flash -make kyria:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # extended thumb position -#+END_SRC - - -**** [[../../keyboards/kyria/keymaps/manna-harbour_miryoku/config.h][keyboards/kyria/keymaps/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/kyria/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ - XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ -) -#else -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ - XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX \ -) -#endif -#+END_SRC - - -**** [[../../keyboards/kyria/keymaps/manna-harbour_miryoku/keymap.c][keyboards/kyria/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/kyria/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - -*** lily58 +**** lily58 Only the main 5x3 alphas and the inner 3 thumb keys are used. @@ -2284,7 +2280,7 @@ make lily58:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/lily58/keymaps/manna-harbour_miryoku/config.h][keyboards/lily58/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/lily58/keymaps/manna-harbour_miryoku/config.h][keyboards/lily58/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2313,7 +2309,7 @@ XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ #+END_SRC -**** [[../../keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c][keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c][keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2324,7 +2320,7 @@ Required by the build system. #+END_SRC -*** moonlander +**** moonlander The main 5x3 alphas are used as usual. The primary, secondary, and tertiary thumb keys are the closest piano key, middle piano key, and the innermost key of @@ -2337,7 +2333,7 @@ make moonlander:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h][keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h][keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2367,7 +2363,7 @@ XXX, XXX, XXX, XXX, K32, XXX, XXX, K37, XXX, XXX, XXX, XXX,\ #+END_SRC -**** [[../../keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c][keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c][keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2378,7 +2374,7 @@ Required by the build system. #+END_SRC -*** redox_w +**** redox_w Only the main 5x3 alphas and the main 3 thumb keys are used. @@ -2389,7 +2385,7 @@ make redox_w:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h][keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h][keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2420,7 +2416,7 @@ XXX, XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX, #+RESULTS: -**** [[../../keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c][keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c][keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2431,7 +2427,7 @@ Required by the build system. #+END_SRC -*** sofle +**** sofle To build for this keyboard, @@ -2440,7 +2436,7 @@ make sofle:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/sofle/keymaps/manna-harbour_miryoku/config.h][keyboards/sofle/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/sofle/keymaps/manna-harbour_miryoku/config.h][keyboards/sofle/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2469,7 +2465,7 @@ XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ #+END_SRC -**** [[../../keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c][keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c][keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2480,7 +2476,82 @@ Required by the build system. #+END_SRC -*** torn +**** splitkb/kyria + +Only the main 5x3 alphas and the middle 3 lower thumb keys are used. + +[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-kyria.png]] + +An alternative subset mapping is also provided with the thumb keys shifted one +position in the direction of thumb extension. To select this mapping, append +~MIRYOKU_MAPPING=EXTENDED_THUMBS~ to the ~make~ command line when building. + +[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-kyria-extended_thumbs.png]] + + +To build for this keyboard, + +#+BEGIN_SRC sh :tangle no +make splitkb/kyria:manna-harbour_miryoku:flash +make splitkb/kyria:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # extended thumb position +#+END_SRC + + +***** [[../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h][keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h]] + +Contains subset mapping. + +#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h +// <
> + +<> + +#pragma once + +#define XXX KC_NO + +#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ + XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ +) +#else +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ + XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX \ +) +#endif +#+END_SRC + + +***** [[../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c][keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c]] + +Required by the build system. + +#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c +// <
> + +<> +#+END_SRC + + +**** torn To build for this keyboard, @@ -2489,7 +2560,7 @@ make torn:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/torn/keymaps/manna-harbour_miryoku/config.h][keyboards/torn/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/torn/keymaps/manna-harbour_miryoku/config.h][keyboards/torn/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2517,7 +2588,7 @@ KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 #+RESULTS: -**** [[../../keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c][keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c][keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2528,7 +2599,7 @@ Required by the build system. #+END_SRC -** Customisation +*** Customisation To add customisations to a keyboard or layout while importing the miryoku keymap, copy ~config.h~ and ~keymap.c~ from the keyboard or layout's @@ -2542,7 +2613,7 @@ layout and modify ~LAYOUT_miryoku~ in ~config.h~ referring to the keyboard or layout's ~LAYOUT~ macro. -*** Examples +**** Examples To use any of the examples, create a new branch from the miryoku development branch and follow the same steps as seen in the commit messages and code changes @@ -2550,28 +2621,28 @@ in the examples, making the appropriate changes for your keyboard and desired customisations. -**** Add Layers +***** Add Layers - https://github.com/manna-harbour/qmk_firmware/commits/miryoku-examples-add-layers/keyboards/crkbd/keymaps/miryoku-examples-add-layers -* Experimental Features +** Experimental Features -** Bilateral Combinations +*** Bilateral Combinations - [[https://github.com/manna-harbour/qmk_firmware/issues/29][Bilateral Combinations]] -** Retro Shift +*** Retro Shift - [[https://github.com/manna-harbour/qmk_firmware/issues/33][Retro Shift]] -* Documentation :noexport_1: +** Documentation -** QMK +*** QMK - https://docs.qmk.fm/ - https://docs.qmk.fm/#/config_options @@ -2588,18 +2659,13 @@ customisations. - https://docs.qmk.fm/#/tap_hold -** Org Mode +*** Org Mode - https://orgmode.org/ - https://orgmode.org/manual/Tables.html - https://orgmode.org/manual/Working-with-Source-Code.html -* Contact - -For feature requests or issues with code or documentation please -[[https://github.com/manna-harbour/qmk_firmware/issues/new][open an issue]]. - -For more general discussion please [[https://github.com/manna-harbour/manna-harbour/tree/main/contact][contact Manna Harbour]]. +** [[https://github.com/manna-harbour][https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/manna-harbour-boa-32.png]] diff --git a/users/manna-harbour_miryoku/rules.mk b/users/manna-harbour_miryoku/rules.mk index 809e630354d8..085f0b501995 100644 --- a/users/manna-harbour_miryoku/rules.mk +++ b/users/manna-harbour_miryoku/rules.mk @@ -1,6 +1,6 @@ # Copyright 2019 Manna Harbour # https://github.com/manna-harbour/miryoku -# generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +# generated -*- buffer-read-only: t -*- MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control diff --git a/users/stanrc85/rgblight_layers_osa.c b/users/stanrc85/rgblight_layers_osa.c index 59366fa34a95..aff96c96992b 100644 --- a/users/stanrc85/rgblight_layers_osa.c +++ b/users/stanrc85/rgblight_layers_osa.c @@ -11,7 +11,7 @@ const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( {2, 2, HSV_GREEN}, {6, 2, HSV_GREEN} -); +); const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( {2, 2, HSV_BLUE}, @@ -60,7 +60,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { } bool led_update_user(led_t led_state) { - //rgblight_set_layer_state(0, led_state.caps_lock); + rgblight_set_layer_state(0, led_state.caps_lock); writePin(C7, led_state.caps_lock); writePin(C6, middle); writePin(B6, bottom); diff --git a/users/stanrc85/rules.mk b/users/stanrc85/rules.mk index cafda97b1a67..d17f2df007fb 100644 --- a/users/stanrc85/rules.mk +++ b/users/stanrc85/rules.mk @@ -26,6 +26,7 @@ endif ifeq ($(strip $(KEYBOARD)), tkc/osav2) SRC += rgblight_layers_osa.c VELOCIKEY_ENABLE=yes + SRC += rgb_timeout.c endif ifeq ($(strip $(KEYBOARD)), boardsource/the_mark) RGB_MATRIX_ENABLE = yes diff --git a/users/zigotica/combos.c b/users/zigotica/combos.c new file mode 100644 index 000000000000..8fb5b3c9fccb --- /dev/null +++ b/users/zigotica/combos.c @@ -0,0 +1,40 @@ +/* Copyright 2020 Sergi Meseguer +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "combos.h" + +enum combos { + EM_EMAIL, + CL_CAPSL, + COMBO_LENGTH +}; +uint16_t COMBO_LEN = COMBO_LENGTH; + +const uint16_t PROGMEM email_combo[] = {LT(_SYM, KC_E), KC_M, COMBO_END}; +const uint16_t PROGMEM caps_combo[] = {KC_C, KC_L, COMBO_END}; + +combo_t key_combos[] = { + [EM_EMAIL] = COMBO_ACTION(email_combo), + [CL_CAPSL] = COMBO(caps_combo, KC_CAPSLOCK), +}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + switch(combo_index) { + case EM_EMAIL: + if (pressed) { + SEND_STRING("zigotica@gmail.com"); + } + break; + } +} + diff --git a/users/zigotica/combos.h b/users/zigotica/combos.h new file mode 100644 index 000000000000..c75a107b9a6e --- /dev/null +++ b/users/zigotica/combos.h @@ -0,0 +1,17 @@ +/* Copyright 2020 Sergi Meseguer +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 . +*/ + + +#pragma once +#include "zigotica.h" + diff --git a/users/zigotica/rows.h b/users/zigotica/rows.h new file mode 100644 index 000000000000..e73d72bbe2bb --- /dev/null +++ b/users/zigotica/rows.h @@ -0,0 +1,194 @@ +/* Copyright 2020 Sergi Meseguer +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 . +*/ + +#pragma once +#include "zigotica.h" + +// clang-format off +#define _BLANK_ROW _______, _______, _______, _______, _______ +#define _BLANK_THUMB _______, _______ + +/* + * STENAI Layer + * + * ,---------------------------------------. ,---------------------------------------. + * | | | | | | | | | | | | + * | ` ~ | W | D | P | F | | K | Y | U | Q | ' " | + * | | | | | | | | | | | | + * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + * | | | | | | | | | | | | + * | H | R | S | T | G | | M | N | A | I | O | + * | alt | ctrl | shft | meta | | | | meta | shft | ctrl | alt | + * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + * | | | | | | | | | | | | + * | B | X | C | V | [ { | | , < | L | Z | J | . > | + * | | | | | TD ]} | | TD ; | | | | TD : | + * `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------. + * | | | | | | + * | ESC | SPC | | E | INTRO | + * | num | nav | | sym | fn | + * `---------------' `---------------' + * + */ +#define _STENAI_L1 KC_GRV, KC_W, KC_D, KC_P, KC_F +#define _STENAI_L2 LALT_T(KC_H), LCTL_T(KC_R), LSFT_T(KC_S), LGUI_T(KC_T), KC_G +#define _STENAI_L3 KC_B, KC_X, KC_C, KC_V, ZK_BRC +#define _STENAI_LT LT(_NUM, KC_ESC), LT(_NAV, KC_SPC) + +#define _STENAI_R1 KC_K, KC_Y, KC_U, KC_Q, KC_QUOT +#define _STENAI_R2 KC_M, RGUI_T(KC_N), RSFT_T(KC_A), RCTL_T(KC_I), RALT_T(KC_O) +#define _STENAI_R3 ZK_SEMI, KC_L, KC_Z, KC_J, ZK_COLON +#define _STENAI_RT LT(_SYM, KC_E), LT(_FN, KC_ENT) + + +#define _COLEMAK_L1 KC_Q, KC_W, KC_F, KC_P, KC_G +#define _COLEMAK_L2 KC_A, KC_R, KC_S, KC_T, KC_D +#define _COLEMAK_L3 KC_Z, KC_X, KC_C, KC_V, KC_B + +#define _COLEMAK_R1 KC_J, KC_L, KC_U, KC_Y, KC_SCLN +#define _COLEMAK_R2 KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT +#define _COLEMAK_R3 KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH + +#define _QWERTY_L1 KC_Q, KC_W, KC_E, KC_R, KC_T +#define _QWERTY_L2 KC_A, KC_S, KC_D, KC_F, KC_G +#define _QWERTY_L3 KC_Z, KC_X, KC_C, KC_V, KC_B + +#define _QWERTY_R1 KC_Y, KC_U, KC_I, KC_O, KC_P +#define _QWERTY_R2 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT +#define _QWERTY_R3 KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH + +/* + * NUM Layer + * + * ,---------------------------------------. ,---------------------------------------. + * | | | | | | | | | | | | + * | | - | + | = | | | | 7 | 8 | 9 | | + * | | | | | | | | | | | | + * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + * | | | | | | | | | | | | + * | | | | | | | | 1 | 2 | 3 | | + * | | | | | | | | | | | | + * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + * | | | | | | | | | | | | + * | | | / | * | | | | 4 | 5 | 6 | | + * | | | | | | | | | | | | + * `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------. + * |:::::::| | | | | + * |:::::::| | | 0 | BACK | + * |:::::::| | | | | + * `---------------' `---------------' + * + */ +#define ____NUM_L1 _______, KC_MINS, KC_PLUS, KC_EQL, _______ +#define ____NUM_L2 _BLANK_ROW +#define ____NUM_L3 _______, _______, KC_SLSH, KC_ASTR, _______ +#define ____NUM_LT _BLANK_THUMB + +#define ____NUM_R1 _______, KC_7, KC_8, KC_9, _______ +#define ____NUM_R2 _______, KC_1, KC_2, KC_3, _______ +#define ____NUM_R3 _______, KC_4, KC_5, KC_6, _______ +#define ____NUM_RT KC_0, KC_BSPC + +/* +* NAVIGATION Layer +* +* ,---------------------------------------. ,---------------------------------------. +* | | | | | | | | | | | | +* | | PREV | PLAY | NEXT | | | WHDN | HOME | UP | PGUP | | +* | | | | | | | | | | | | +* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| +* | | | | | | | | | | | | +* | | | | | | | WHUP | LF | DN | RG | | +* | | | | | | | | | | | | +* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| +* | | | | | | | | | | | | +* | | | | | | | | END | | PGDN | | +* | | | | | | | | | | | | +* `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------. +* | |:::::::| | | | +* | |:::::::| | | DEL | +* | |:::::::| | | | +* `---------------' `---------------' +*/ +#define ____NAV_L1 _______, KC_MPRV, KC_MPLY, KC_MNXT, _______ +#define ____NAV_L2 _BLANK_ROW +#define ____NAV_L3 _BLANK_ROW +#define ____NAV_LT _BLANK_THUMB + +#define ____NAV_R1 KC_WH_D, KC_HOME, KC_UP, KC_PGUP, _______ +#define ____NAV_R2 KC_WH_U, KC_LEFT, KC_DOWN, KC_RGHT, _______ +#define ____NAV_R3 _______, KC_END, _______, KC_PGDN, _______ +#define ____NAV_RT _______, KC_DEL + +/* +* SYMBOLS Layer +* +* ,---------------------------------------. ,---------------------------------------. +* | | | | | | | | | | | | +* | % | & | ? | | | ! | | | | | | | +* | | | | | | | | | | | | +* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| +* | | | | | | | | | | | | +* | # | @ | : | ; | $ | | | | | | | +* | | | | | | | | | | | | +* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| +* | | | | | | | | | | | | +* | ( | ~ | / | \ | ^ | | | | | | | +* | | | | | | | | | | | | +* `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------. +* | | | |:::::::| | +* | | TAB | |:::::::| | +* | | | |:::::::| | +* `---------------' `---------------' +*/ +#define ____SYM_L1 KC_PERC, KC_AMPR, KC_QUES, KC_PIPE, KC_EXLM +#define ____SYM_L2 KC_HASH, KC_AT, KC_COLN, KC_SCLN, KC_DLR +#define ____SYM_L3 ZK_PRN, KC_TILD, KC_SLSH, KC_BSLS, KC_CIRC +#define ____SYM_LT _______, KC_TAB + +#define ____SYM_R1 _BLANK_ROW +#define ____SYM_R2 _BLANK_ROW +#define ____SYM_R3 _BLANK_ROW +#define ____SYM_RT _BLANK_THUMB + +/* +* FUNCTION KEYS Layer +* +* ,---------------------------------------. ,---------------------------------------. +* | | | | | | | | | | | | +* | | | | | | | | F7 | F8 | F9 | F10 | +* | | | | | | | | | | | | +* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| +* | | | | | | | | | | | | +* | | | | | | | | F1 | F2 | F3 | F11 | +* | | | | | | | | | | | | +* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| +* | | | | | | | | | | | | +* | | | | | | | | F4 | F5 | F6 | F12 | +* | | | | | | | | | | | | +* `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------. +* | | | | |:::::::| +* | | TAB | | |:::::::| +* | | | | |:::::::| +* `---------------' `---------------' +*/ +#define ____FN_L1 _BLANK_ROW +#define ____FN_L2 _BLANK_ROW +#define ____FN_L3 _BLANK_ROW +#define ____FN_LT _______, KC_TAB + +#define ____FN_R1 _______, KC_F7, KC_F8, KC_F9, KC_F10 +#define ____FN_R2 _______, KC_F1, KC_F2, KC_F3, KC_F11 +#define ____FN_R3 _______, KC_F4, KC_F5, KC_F6, KC_F12 +#define ____FN_RT _BLANK_THUMB +// clang-format on diff --git a/users/zigotica/rules.mk b/users/zigotica/rules.mk new file mode 100644 index 000000000000..019e6f6dda1b --- /dev/null +++ b/users/zigotica/rules.mk @@ -0,0 +1,18 @@ +SRC += zigotica.c + +ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) + SRC += tapdances.c +endif + +ifeq ($(strip $(COMBO_ENABLE)), yes) + SRC += combos.c +endif + +ifeq ($(strip $(OLED_ENABLE)), yes) + SRC += oled.c +endif + +ifeq ($(strip $(ENCODER_ENABLE)), yes) + SRC += encoder.c +endif + diff --git a/users/zigotica/tapdances.c b/users/zigotica/tapdances.c new file mode 100644 index 000000000000..74bb1b605e11 --- /dev/null +++ b/users/zigotica/tapdances.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Sergi Meseguer +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "tapdances.h" + +void ios_media(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + tap_code(KC_MPLY); + } else if (state->count == 2) { + tap_code(KC_MNXT); + } else if (state->count == 3) { + tap_code(KC_MPRV); + } else { + reset_tap_dance(state); + } +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [0] = ACTION_TAP_DANCE_FN(ios_media), + [1] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_SCOLON), + [2] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_COLON), + [3] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), + [4] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN), +}; diff --git a/users/zigotica/tapdances.h b/users/zigotica/tapdances.h new file mode 100644 index 000000000000..051c8a90bc7f --- /dev/null +++ b/users/zigotica/tapdances.h @@ -0,0 +1,24 @@ +/* Copyright 2020 Sergi Meseguer +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 . +*/ + + +#pragma once +#include "zigotica.h" + +#ifdef TAP_DANCE_ENABLE + #define ZK_MEDIA TD(0) + #define ZK_SEMI TD(1) + #define ZK_COLON TD(2) + #define ZK_BRC TD(3) + #define ZK_PRN TD(4) +#endif diff --git a/users/zigotica/zigotica.c b/users/zigotica/zigotica.c new file mode 100644 index 000000000000..9de57406c450 --- /dev/null +++ b/users/zigotica/zigotica.c @@ -0,0 +1,14 @@ +/* Copyright 2020 Sergi Meseguer +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "zigotica.h" diff --git a/users/zigotica/zigotica.h b/users/zigotica/zigotica.h new file mode 100644 index 000000000000..e9ff5ff16cde --- /dev/null +++ b/users/zigotica/zigotica.h @@ -0,0 +1,51 @@ +/* Copyright 2020 Sergi Meseguer +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 . +*/ + +#pragma once +#include QMK_KEYBOARD_H + +#include "rows.h" + +#ifdef SPLIT_KEYBOARD +enum userspace_layers { + BASE = 0, + _NUM, + _NAV, + _SYM, + _FN, +}; +#else +enum userspace_layers { + _TERMINAL = 0, + _FIGMA, + _BROWSER, + _VIM, +}; +#endif + + +#ifdef TAP_DANCE_ENABLE +# include "tapdances.h" +#endif + +#ifdef COMBO_ENABLE +# include "combos.h" +#endif + +#ifdef OLED_ENABLE + #include "oled.h" +#endif + +#ifdef ENCODER_ENABLE + #include "encoder.h" +#endif diff --git a/util/install/arch.sh b/util/install/arch.sh index bef98ac37f63..33c39212d3d8 100755 --- a/util/install/arch.sh +++ b/util/install/arch.sh @@ -6,7 +6,8 @@ _qmk_install() { sudo pacman --needed --noconfirm -S \ base-devel clang diffutils gcc git unzip wget zip python-pip \ avr-binutils arm-none-eabi-binutils arm-none-eabi-gcc \ - arm-none-eabi-newlib avrdude dfu-programmer dfu-util + arm-none-eabi-newlib avrdude dfu-programmer dfu-util \ + riscv64-elf-binutils riscv64-elf-gcc riscv64-elf-newlib sudo pacman --needed --noconfirm -U https://archive.archlinux.org/packages/a/avr-gcc/avr-gcc-8.3.0-1-x86_64.pkg.tar.xz sudo pacman --needed --noconfirm -S avr-libc # Must be installed after the above, or it will bring in the latest avr-gcc instead diff --git a/util/install/debian.sh b/util/install/debian.sh index 57588e371abc..2a188334b699 100755 --- a/util/install/debian.sh +++ b/util/install/debian.sh @@ -15,7 +15,8 @@ _qmk_install() { build-essential clang-format diffutils gcc git unzip wget zip \ python3-pip binutils-avr gcc-avr avr-libc binutils-arm-none-eabi \ gcc-arm-none-eabi libnewlib-arm-none-eabi avrdude dfu-programmer \ - dfu-util teensy-loader-cli libhidapi-hidraw0 libusb-dev + dfu-util teensy-loader-cli libhidapi-hidraw0 libusb-dev \ + picolibc-riscv64-unknown-elf gcc-riscv64-unknown-elf binutils-riscv64-unknown-elf python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt }