mirror of
https://github.com/qmk/qmk_firmware.git
synced 2024-11-25 12:46:41 +00:00
[Keymap] Drashna updates for 0.19 (#19175)
* Fix up bastardkb boards since blackpill support is officially added. * Check for blackpill version, not elite c. * Add checks in chibiOS config since multiple ARM controllers supported. * Rework rules.mk for keymaps to better handle arm vs avr support * Start moving away from `matrix_*_*` functions. * `housekeeping_task_*` instead of `matrix_scan_*` * `keyboard_(pre|post)_init_*` instead of `matrix_init_*` * Add ℂℴmⅈℂ unicode input method. * Clean up unicode code to be more compact and flexible. * Remove/move Pro Micro LED commands to userspace and better filter them * Fixup OLED code * Use newer quantum keycode functions/preprocessors rather than manual bit manipulation * Make unicode mode render much more compact/simple. * Make qmk secrets more self contained * Remove custom implementation of split watchdog
This commit is contained in:
parent
8a8000b4ec
commit
4a87af0e9a
@ -18,87 +18,90 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#undef PRODUCT
|
#ifdef KEYBOARD_bastardkb_charybdis_3x5_blackpill
|
||||||
#define PRODUCT "Charybdis Nano (Blackpill)"
|
|
||||||
|
|
||||||
#undef MATRIX_ROW_PINS
|
# undef MATRIX_ROW_PINS
|
||||||
#define MATRIX_ROW_PINS \
|
# define MATRIX_ROW_PINS \
|
||||||
{ B12, B13, B14, B15 }
|
{ B12, B13, B14, B15 }
|
||||||
#undef MATRIX_COL_PINS
|
# undef MATRIX_COL_PINS
|
||||||
#define MATRIX_COL_PINS \
|
# define MATRIX_COL_PINS \
|
||||||
{ A15, B3, B4, B5, B6 }
|
{ A15, B3, B4, B5, B6 }
|
||||||
|
|
||||||
|
# undef MATRIX_ROW_PINS_RIGHT
|
||||||
|
# define MATRIX_ROW_PINS_RIGHT \
|
||||||
|
{ B12, B13, B14, B15 }
|
||||||
|
# undef MATRIX_COL_PINS_RIGHT
|
||||||
|
# define MATRIX_COL_PINS_RIGHT \
|
||||||
|
{ A15, B3, B4, B5, B6 }
|
||||||
|
|
||||||
#undef MATRIX_ROW_PINS_RIGHT
|
# define USB_VBUS_PIN B10
|
||||||
#define MATRIX_ROW_PINS_RIGHT \
|
# undef SPLIT_HAND_PIN
|
||||||
{ B12, B13, B14, B15 }
|
# define SPLIT_HAND_PIN C14 // high = left, low = right
|
||||||
#undef MATRIX_COL_PINS_RIGHT
|
|
||||||
#define MATRIX_COL_PINS_RIGHT \
|
|
||||||
{ A15, B3, B4, B5, B6 }
|
|
||||||
|
|
||||||
#define USB_VBUS_PIN B10
|
|
||||||
#define SPLIT_HAND_PIN C14 // high = left, low = right
|
|
||||||
|
|
||||||
// WS2812 RGB LED strip input and number of LEDs
|
// WS2812 RGB LED strip input and number of LEDs
|
||||||
#undef RGB_DI_PIN
|
# undef RGB_DI_PIN
|
||||||
#define RGB_DI_PIN A1
|
# define RGB_DI_PIN A1
|
||||||
#undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
|
# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
|
||||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
|
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
|
||||||
#define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
|
# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
|
||||||
#define WS2812_PWM_CHANNEL 2 // default: 2
|
# 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_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_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_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.
|
# undef WS2812_DMA_STREAM
|
||||||
#define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
# 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_PWM_TARGET_PERIOD 800000
|
# define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||||
|
# define WS2812_PWM_TARGET_PERIOD 800000
|
||||||
|
|
||||||
#define DEBUG_LED_PIN C13
|
# define DEBUG_LED_PIN C13
|
||||||
|
|
||||||
/* Audio config */
|
/* Audio config */
|
||||||
#define AUDIO_PIN B1
|
# define AUDIO_PIN B1
|
||||||
#define AUDIO_PWM_DRIVER PWMD3
|
# define AUDIO_PWM_DRIVER PWMD3
|
||||||
#define AUDIO_PWM_CHANNEL 4
|
# define AUDIO_PWM_CHANNEL 4
|
||||||
#define AUDIO_PWM_PAL_MODE 2
|
# define AUDIO_PWM_PAL_MODE 2
|
||||||
|
|
||||||
/* serial.c configuration for split keyboard */
|
/* serial.c configuration for split keyboard */
|
||||||
#undef SOFT_SERIAL_PIN
|
# undef SOFT_SERIAL_PIN
|
||||||
#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
|
# define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
|
||||||
#define SERIAL_USART_TX_PIN A2
|
# undef SERIAL_USART_TX_PIN
|
||||||
#define SERIAL_USART_RX_PIN A3
|
# define SERIAL_USART_TX_PIN A2
|
||||||
#define SERIAL_USART_DRIVER SD2
|
# undef SERIAL_USART_RX_PIN
|
||||||
#define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
|
# define SERIAL_USART_RX_PIN A3
|
||||||
#define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
|
# define SERIAL_USART_DRIVER SD2
|
||||||
#define SERIAL_USART_TIMEOUT 100 // USART driver timeout. default 100
|
# define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
|
||||||
#define SERIAL_USART_SPEED 921600
|
# define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
|
||||||
|
# define SERIAL_USART_TIMEOUT 100 // USART driver timeout. default 100
|
||||||
|
# define SERIAL_USART_SPEED 921600
|
||||||
// #define SERIAL_USART_PIN_SWAP // swap RX and TX pins on master
|
// #define SERIAL_USART_PIN_SWAP // swap RX and TX pins on master
|
||||||
// To use the highest possible baudrate (3.75Mbit/s) uncomment the following
|
// To use the highest possible baudrate (3.75Mbit/s) uncomment the following
|
||||||
// line, this can result in dropped communications so lower the speed if there
|
// line, this can result in dropped communications so lower the speed if there
|
||||||
// are many timeouts.
|
// are many timeouts.
|
||||||
// #define SERIAL_USART_SPEED (STM32_PCLK2 >> 4)
|
// #define SERIAL_USART_SPEED (STM32_PCLK2 >> 4)
|
||||||
|
|
||||||
#define CRC8_USE_TABLE
|
# define CRC8_USE_TABLE
|
||||||
#define CRC8_OPTIMIZE_SPEED
|
# define CRC8_OPTIMIZE_SPEED
|
||||||
|
|
||||||
/* spi config for eeprom and pmw3360 sensor */
|
/* spi config for eeprom and pmw3360 sensor */
|
||||||
#define SPI_DRIVER SPID1
|
# define SPI_DRIVER SPID1
|
||||||
#define SPI_SCK_PIN A5
|
# define SPI_SCK_PIN A5
|
||||||
#define SPI_SCK_PAL_MODE 5
|
# define SPI_SCK_PAL_MODE 5
|
||||||
#define SPI_MOSI_PIN A7
|
# define SPI_MOSI_PIN A7
|
||||||
#define SPI_MOSI_PAL_MODE 5
|
# define SPI_MOSI_PAL_MODE 5
|
||||||
#define SPI_MISO_PIN A6
|
# define SPI_MISO_PIN A6
|
||||||
#define SPI_MISO_PAL_MODE 5
|
# define SPI_MISO_PAL_MODE 5
|
||||||
|
|
||||||
/* eeprom config */
|
/* eeprom config */
|
||||||
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
|
# define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
|
||||||
#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64
|
# define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64
|
||||||
// #define EXTERNAL_EEPROM_BYTE_COUNT 8196
|
// #define EXTERNAL_EEPROM_BYTE_COUNT 8196
|
||||||
// #define EXTERNAL_EEPROM_PAGE_SIZE 32
|
// #define EXTERNAL_EEPROM_PAGE_SIZE 32
|
||||||
// #define EXTERNAL_EEPROM_ADDRESS_SIZE 2
|
// #define EXTERNAL_EEPROM_ADDRESS_SIZE 2
|
||||||
|
|
||||||
/* pmw3360 config */
|
/* pmw3360 config */
|
||||||
#undef PMW33XX_CS_PIN
|
# undef PMW33XX_CS_PIN
|
||||||
#define PMW33XX_CS_PIN B0
|
# define PMW33XX_CS_PIN B0
|
||||||
|
#endif
|
||||||
|
|
||||||
#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200
|
#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200
|
||||||
#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400
|
#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400
|
||||||
|
@ -15,11 +15,13 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define HAL_USE_PWM TRUE
|
#if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill)
|
||||||
#define HAL_USE_SERIAL TRUE
|
# define HAL_USE_PWM TRUE
|
||||||
#define HAL_USE_I2C TRUE
|
# define HAL_USE_SERIAL TRUE
|
||||||
#define HAL_USE_SPI TRUE
|
# define HAL_USE_I2C TRUE
|
||||||
#define SPI_USE_WAIT TRUE
|
# define HAL_USE_SPI TRUE
|
||||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
# define SPI_USE_WAIT TRUE
|
||||||
|
# define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
||||||
|
#endif
|
||||||
|
|
||||||
#include_next <halconf.h>
|
#include_next <halconf.h>
|
||||||
|
@ -83,24 +83,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
void matrix_init_keyemap(void) { setPinInputHigh(A0); }
|
#if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill)
|
||||||
|
void keyboard_pre_init_keymap(void) {
|
||||||
|
setPinInputHigh(A0);
|
||||||
|
}
|
||||||
|
|
||||||
void matrix_scan_keymap(void) {
|
void housekeeping_task_keymap(void) {
|
||||||
if (!readPin(A0)) {
|
if (!readPin(A0)) {
|
||||||
reset_keyboard();
|
reset_keyboard();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USB_VBUS_PIN
|
# ifdef USB_VBUS_PIN
|
||||||
bool usb_vbus_state(void) {
|
bool usb_vbus_state(void) {
|
||||||
setPinInputLow(USB_VBUS_PIN);
|
setPinInputLow(USB_VBUS_PIN);
|
||||||
wait_us(5);
|
wait_us(5);
|
||||||
return readPin(USB_VBUS_PIN);
|
return readPin(USB_VBUS_PIN);
|
||||||
}
|
}
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
|
void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
|
||||||
for (int32_t i = 0; i < 40; i++) {
|
for (int32_t i = 0; i < 40; i++) {
|
||||||
__asm__ volatile("nop" ::: "memory");
|
__asm__ volatile("nop" ::: "memory");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
@ -18,25 +18,27 @@
|
|||||||
|
|
||||||
#include_next "mcuconf.h"
|
#include_next "mcuconf.h"
|
||||||
|
|
||||||
#undef STM32_I2C_USE_I2C1
|
#if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill)
|
||||||
#define STM32_I2C_USE_I2C1 TRUE
|
# undef STM32_I2C_USE_I2C1
|
||||||
|
# define STM32_I2C_USE_I2C1 TRUE
|
||||||
|
|
||||||
// #undef STM32_I2C_I2C1_RX_DMA_STREAM
|
// #undef STM32_I2C_I2C1_RX_DMA_STREAM
|
||||||
// #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
|
// #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
|
||||||
#undef STM32_I2C_I2C1_TX_DMA_STREAM
|
# undef STM32_I2C_I2C1_TX_DMA_STREAM
|
||||||
#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)
|
# define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)
|
||||||
|
|
||||||
#undef STM32_PWM_USE_TIM2
|
# undef STM32_PWM_USE_TIM2
|
||||||
#define STM32_PWM_USE_TIM2 TRUE
|
# define STM32_PWM_USE_TIM2 TRUE
|
||||||
|
|
||||||
#undef STM32_PWM_USE_TIM3
|
# undef STM32_PWM_USE_TIM3
|
||||||
#define STM32_PWM_USE_TIM3 TRUE
|
# define STM32_PWM_USE_TIM3 TRUE
|
||||||
|
|
||||||
#undef STM32_SPI_USE_SPI1
|
# undef STM32_SPI_USE_SPI1
|
||||||
#define STM32_SPI_USE_SPI1 TRUE
|
# define STM32_SPI_USE_SPI1 TRUE
|
||||||
|
|
||||||
#undef STM32_SERIAL_USE_USART2
|
# undef STM32_SERIAL_USE_USART2
|
||||||
#define STM32_SERIAL_USE_USART2 TRUE
|
# define STM32_SERIAL_USE_USART2 TRUE
|
||||||
|
|
||||||
#undef STM32_ST_USE_TIMER
|
# undef STM32_ST_USE_TIMER
|
||||||
#define STM32_ST_USE_TIMER 5
|
# define STM32_ST_USE_TIMER 5
|
||||||
|
#endif
|
||||||
|
@ -1,28 +1,45 @@
|
|||||||
# MCU name
|
RGB_MATRIX_ENABLE = no
|
||||||
MCU = STM32F411
|
CUSTOM_UNICODE_ENABLE = no
|
||||||
BOARD = BLACKPILL_STM32_F411
|
CUSTOM_POINTING_DEVICE = no
|
||||||
|
CUSTOM_SPLIT_TRANSPORT_SYNC = no
|
||||||
|
|
||||||
# Bootloader selection
|
|
||||||
# BOOTLOADER = stm32-dfu
|
|
||||||
BOOTLOADER := tinyuf2
|
|
||||||
|
|
||||||
LTO_ENABLE := no
|
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/blackpill)
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER := tinyuf2
|
||||||
|
|
||||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
LTO_ENABLE := no
|
||||||
KEYBOARD_SHARED_EP = yes
|
|
||||||
MOUSE_SHARED_EP = yes
|
|
||||||
|
|
||||||
EEPROM_DRIVER = spi
|
AUDIO_SUPPORTED = yes
|
||||||
WS2812_DRIVER = pwm
|
AUDIO_ENABLE = yes
|
||||||
SERIAL_DRIVER = usart
|
AUDIO_DRIVER = pwm_hardware
|
||||||
AUDIO_DRIVER = pwm_hardware
|
|
||||||
|
|
||||||
AUDIO_SUPPORTED = yes
|
OVERLOAD_FEATURES = yes
|
||||||
AUDIO_ENABLE = yes
|
endif
|
||||||
MOUSEKEY_ENABLE = yes
|
|
||||||
NKRO_ENABLE = yes
|
|
||||||
CONSOLE_ENABLE = yes
|
|
||||||
|
|
||||||
AUTOCORRECT_ENABLE = yes
|
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/v2/stemcell)
|
||||||
|
OVERLOAD_FEATURES = yes
|
||||||
|
endif
|
||||||
|
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/v2/splinky)
|
||||||
|
OVERLOAD_FEATURES = yes
|
||||||
|
endif
|
||||||
|
|
||||||
DEBOUNCE_TYPE = asym_eager_defer_pk
|
|
||||||
|
ifeq ($(strip $(OVERLOAD_FEATURES)), yes)
|
||||||
|
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||||
|
KEYBOARD_SHARED_EP = yes
|
||||||
|
MOUSE_SHARED_EP = yes
|
||||||
|
|
||||||
|
MOUSEKEY_ENABLE = yes
|
||||||
|
NKRO_ENABLE = yes
|
||||||
|
CONSOLE_ENABLE = yes
|
||||||
|
RGB_MATRIX_ENABLE = yes
|
||||||
|
|
||||||
|
AUTOCORRECT_ENABLE = yes
|
||||||
|
|
||||||
|
CUSTOM_UNICODE_ENABLE = yes
|
||||||
|
CUSTOM_POINTING_DEVICE = yes
|
||||||
|
CUSTOM_SPLIT_TRANSPORT_SYNC = yes
|
||||||
|
|
||||||
|
DEBOUNCE_TYPE = asym_eager_defer_pk
|
||||||
|
endif
|
||||||
|
@ -16,99 +16,49 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#undef PRODUCT
|
#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
|
||||||
#define PRODUCT "Charybdis (4x6) Blackpill"
|
# undef MATRIX_COL_PINS
|
||||||
|
# define MATRIX_COL_PINS \
|
||||||
|
{ B0, B1, B12, B3, B4, B5 }
|
||||||
|
|
||||||
#undef MATRIX_COL_PINS
|
# define USB_VBUS_PIN B10
|
||||||
#define MATRIX_COL_PINS \
|
# define DEBUG_LED_PIN C13
|
||||||
{ B0, B1, B12, B3, B4, B5 }
|
|
||||||
#undef MATRIX_COL_PINS_RIGHT
|
|
||||||
#define MATRIX_COL_PINS_RIGHT \
|
|
||||||
{ B0, B1, B12, B3, B4, B5 }
|
|
||||||
|
|
||||||
#undef MATRIX_ROW_PINS
|
# define AUDIO_PIN B7
|
||||||
#define MATRIX_ROW_PINS \
|
# define AUDIO_PWM_DRIVER PWMD4
|
||||||
{ B15, A2, B8, A8, B9 }
|
# define AUDIO_PWM_CHANNEL 2
|
||||||
#undef MATRIX_ROW_PINS_RIGHT
|
# define AUDIO_PWM_PAL_MODE 2
|
||||||
#define MATRIX_ROW_PINS_RIGHT \
|
# define AUDIO_INIT_DELAY
|
||||||
{ B15, A2, B8, A8, B9 }
|
# define AUDIO_ENABLE_TONE_MULTIPLEXING
|
||||||
|
# define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10
|
||||||
|
|
||||||
|
# define SERIAL_USART_SPEED (1 * 1024 * 1024)
|
||||||
|
|
||||||
#define DIODE_DIRECTION ROW2COL
|
# undef POINTING_DEVICE_CS_PIN
|
||||||
#define SPLIT_HAND_PIN A3
|
# define POINTING_DEVICE_CS_PIN A15 // b14
|
||||||
#undef MASTER_RIGHT
|
# define PMW33XX_LIFTOFF_DISTANCE 0b1111
|
||||||
#define USB_VBUS_PIN B10
|
#endif
|
||||||
|
|
||||||
#undef RGB_DI_PIN
|
|
||||||
#define RGB_DI_PIN A1
|
|
||||||
#define WS2812_EXTERNAL_PULLUP
|
|
||||||
#define WS2812_PWM_DRIVER PWMD2
|
|
||||||
#define WS2812_PWM_CHANNEL 2
|
|
||||||
#define WS2812_PWM_PAL_MODE 1
|
|
||||||
#define WS2812_EXTERNAL_PULLUP
|
|
||||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM1
|
|
||||||
#define WS2812_DMA_CHANNEL 3
|
|
||||||
#define WS2812_PWM_TARGET_PERIOD 800000
|
|
||||||
|
|
||||||
#define DEBUG_LED_PIN C13
|
|
||||||
|
|
||||||
#define AUDIO_PIN B7
|
|
||||||
#define AUDIO_PWM_DRIVER PWMD4
|
|
||||||
#define AUDIO_PWM_CHANNEL 2
|
|
||||||
#define AUDIO_PWM_PAL_MODE 2
|
|
||||||
#define AUDIO_INIT_DELAY
|
|
||||||
#define AUDIO_ENABLE_TONE_MULTIPLEXING
|
|
||||||
#define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10
|
|
||||||
|
|
||||||
#undef SOFT_SERIAL_PIN
|
|
||||||
// #define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
|
|
||||||
#define SERIAL_USART_TX_PIN A9
|
|
||||||
// #define SERIAL_USART_RX_PIN A3
|
|
||||||
// #define SERIAL_USART_DRIVER SD2
|
|
||||||
// #define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
|
|
||||||
// #define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
|
|
||||||
// #define SERIAL_USART_TIMEOUT 100 // USART driver timeout. default 100
|
|
||||||
// #define SERIAL_USART_SPEED 921600
|
|
||||||
#define SERIAL_USART_SPEED (1.5 * 1024 * 1024)
|
|
||||||
|
|
||||||
#define CRC8_USE_TABLE
|
|
||||||
#define CRC8_OPTIMIZE_SPEED
|
|
||||||
|
|
||||||
/* spi config for eeprom and pmw3360 sensor */
|
|
||||||
#define SPI_DRIVER SPID1
|
|
||||||
#define SPI_SCK_PIN A5
|
|
||||||
#define SPI_SCK_PAL_MODE 5
|
|
||||||
#define SPI_MOSI_PIN A7
|
|
||||||
#define SPI_MOSI_PAL_MODE 5
|
|
||||||
#define SPI_MISO_PIN A6
|
|
||||||
#define SPI_MISO_PAL_MODE 5
|
|
||||||
|
|
||||||
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
|
|
||||||
#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64
|
|
||||||
|
|
||||||
#undef PMW33XX_CS_PIN
|
|
||||||
#define PMW33XX_CS_PIN A15 // b14
|
|
||||||
#define PMW33XX_LIFTOFF_DISTANCE 0b1111
|
|
||||||
#undef ROTATIONAL_TRANSFORM_ANGLE
|
#undef ROTATIONAL_TRANSFORM_ANGLE
|
||||||
#define ROTATIONAL_TRANSFORM_ANGLE -65
|
#define ROTATIONAL_TRANSFORM_ANGLE 25
|
||||||
|
#define POINTING_DEVICE_ROTATION_270
|
||||||
#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200
|
|
||||||
#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400
|
|
||||||
#define CHARYBDIS_MINIMUM_SNIPING_DPI 200
|
|
||||||
#define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100
|
|
||||||
|
|
||||||
/* RGB Matrix. */
|
/* RGB Matrix. */
|
||||||
|
|
||||||
#undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
|
#undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
|
||||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
|
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
|
||||||
|
|
||||||
|
#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200
|
||||||
|
#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400
|
||||||
|
#define CHARYBDIS_MINIMUM_SNIPING_DPI 200
|
||||||
|
#define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100
|
||||||
|
|
||||||
#define CHARYBDIS_CONFIG_SYNC
|
#define CHARYBDIS_CONFIG_SYNC
|
||||||
|
|
||||||
#define BOOTMAGIC_LITE_ROW 0
|
#define BOOTMAGIC_LITE_ROW 0
|
||||||
#define BOOTMAGIC_LITE_COLUMN 0
|
#define BOOTMAGIC_LITE_COLUMN 0
|
||||||
#define BOOTMAGIC_LITE_ROW_RIGHT 5
|
#define BOOTMAGIC_LITE_ROW_RIGHT 5
|
||||||
#define BOOTMAGIC_LITE_COLUMN_RIGHT 0
|
#define BOOTMAGIC_LITE_COLUMN_RIGHT 0
|
||||||
#define BOOTMAGIC_LITE_EEPROM_ROW 1
|
#define BOOTMAGIC_LITE_EEPROM_ROW 1
|
||||||
#define BOOTMAGIC_LITE_EEPROM_COLUMN 0
|
#define BOOTMAGIC_LITE_EEPROM_COLUMN 0
|
||||||
#define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 1
|
#define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 1
|
||||||
#define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 0
|
#define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 0
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
/* Copyright 2020 Nick Brassel (tzarc)
|
|
||||||
*
|
|
||||||
* 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 3 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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#define HAL_USE_PWM TRUE
|
|
||||||
#define HAL_USE_PAL TRUE
|
|
||||||
#define HAL_USE_SERIAL TRUE
|
|
||||||
// #define HAL_USE_I2C TRUE
|
|
||||||
#define HAL_USE_SPI TRUE
|
|
||||||
#define SPI_USE_WAIT TRUE
|
|
||||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
|
||||||
|
|
||||||
#include_next <halconf.h>
|
|
@ -83,12 +83,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
SFT_T(KC_SPACE), ALT_T(KC_Q), _______
|
SFT_T(KC_SPACE), ALT_T(KC_Q), _______
|
||||||
),
|
),
|
||||||
[_MOUSE] = LAYOUT_charybdis_4x6(
|
[_MOUSE] = LAYOUT_charybdis_4x6(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, _______,
|
||||||
_______, _______, _______, _______, _______, _______, KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, _______,
|
_______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, DRGSCRL,
|
||||||
_______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING,
|
_______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING,
|
||||||
_______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, DRGSCRL, _______,
|
_______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______,
|
||||||
_______, SNIPING, SNIPING, _______, _______,
|
_______, _______, _______, _______, _______,
|
||||||
_______, _______, _______
|
_______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
[_LOWER] = LAYOUT_charybdis_4x6_wrapper(
|
[_LOWER] = LAYOUT_charybdis_4x6_wrapper(
|
||||||
@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
|
|
||||||
[_ADJUST] = LAYOUT_charybdis_4x6_wrapper(
|
[_ADJUST] = LAYOUT_charybdis_4x6_wrapper(
|
||||||
QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_SUPER, KC_NOMODE,KC_BLOCKS,KC_REGIONAL,TG_GAME,TG_DBLO, QK_BOOT,
|
QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_SUPER, KC_NOMODE,KC_COMIC,KC_REGIONAL,TG_GAME,TG_DBLO, QK_BOOT,
|
||||||
VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EE_CLR,
|
VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EE_CLR,
|
||||||
KEYLOCK, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG_MODS,
|
KEYLOCK, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG_MODS,
|
||||||
UC_NEXT, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY,
|
UC_NEXT, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY,
|
||||||
@ -121,8 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
|
|
||||||
void matrix_init_keymap(void) {
|
void keyboard_post_init_keymap(void) {
|
||||||
setPinInputHigh(A0);
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
g_led_config.flags[53] = g_led_config.flags[54] = g_led_config.flags[55] =
|
g_led_config.flags[53] = g_led_config.flags[54] = g_led_config.flags[55] =
|
||||||
g_led_config.flags[0] = g_led_config.flags[1] = g_led_config.flags[2] = g_led_config.flags[3] =
|
g_led_config.flags[0] = g_led_config.flags[1] = g_led_config.flags[2] = g_led_config.flags[3] =
|
||||||
@ -131,11 +130,17 @@ void matrix_init_keymap(void) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_scan_keymap(void) {
|
#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
|
||||||
|
void keyboard_pre_init_keymap(void) {
|
||||||
|
setPinInputHigh(A0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void housekeeping_task_keymap(void) {
|
||||||
if (!readPin(A0)) {
|
if (!readPin(A0)) {
|
||||||
reset_keyboard();
|
reset_keyboard();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef USB_VBUS_PIN
|
#ifdef USB_VBUS_PIN
|
||||||
bool usb_vbus_state(void) {
|
bool usb_vbus_state(void) {
|
||||||
@ -145,12 +150,13 @@ bool usb_vbus_state(void) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
|
||||||
void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
|
void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
|
||||||
for (int32_t i = 0; i < 40; i++) {
|
for (int32_t i = 0; i < 40; i++) {
|
||||||
__asm__ volatile("nop" ::: "memory");
|
__asm__ volatile("nop" ::: "memory");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef SWAP_HANDS_ENABLE
|
#ifdef SWAP_HANDS_ENABLE
|
||||||
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
|
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
@ -18,23 +18,10 @@
|
|||||||
|
|
||||||
#include_next "mcuconf.h"
|
#include_next "mcuconf.h"
|
||||||
|
|
||||||
#undef STM32_PWM_USE_ADVANCED
|
#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
|
||||||
#define STM32_PWM_USE_ADVANCED TRUE
|
# undef STM32_PWM_USE_ADVANCED
|
||||||
|
# define STM32_PWM_USE_ADVANCED TRUE
|
||||||
|
|
||||||
#undef STM32_PWM_USE_TIM1
|
# undef STM32_PWM_USE_TIM4
|
||||||
#define STM32_PWM_USE_TIM1 TRUE
|
# define STM32_PWM_USE_TIM4 TRUE
|
||||||
|
#endif
|
||||||
#undef STM32_PWM_USE_TIM2
|
|
||||||
#define STM32_PWM_USE_TIM2 TRUE
|
|
||||||
|
|
||||||
#undef STM32_PWM_USE_TIM4
|
|
||||||
#define STM32_PWM_USE_TIM4 TRUE
|
|
||||||
|
|
||||||
#undef STM32_SPI_USE_SPI1
|
|
||||||
#define STM32_SPI_USE_SPI1 TRUE
|
|
||||||
|
|
||||||
#undef STM32_SERIAL_USE_USART1
|
|
||||||
#define STM32_SERIAL_USE_USART1 TRUE
|
|
||||||
|
|
||||||
#undef STM32_ST_USE_TIMER
|
|
||||||
#define STM32_ST_USE_TIMER 5
|
|
||||||
|
@ -1,34 +1,56 @@
|
|||||||
# MCU name
|
CUSTOM_UNICODE_ENABLE = no
|
||||||
MCU = STM32F411
|
CUSTOM_POINTING_DEVICE = no
|
||||||
BOARD = BLACKPILL_STM32_F411
|
CUSTOM_SPLIT_TRANSPORT_SYNC = no
|
||||||
|
|
||||||
# Bootloader selection
|
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/blackpill)
|
||||||
BOOTLOADER := tinyuf2
|
# MCU name
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER := tinyuf2
|
||||||
|
|
||||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
AUDIO_ENABLE = yes # Audio output
|
||||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
AUDIO_SUPPORTED = yes # is set to no in kb, needs to be forcibly enabled
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
AUDIO_DRIVER = pwm_hardware
|
||||||
CONSOLE_ENABLE = yes # Console for debug
|
|
||||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
|
||||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
|
||||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
|
||||||
AUDIO_ENABLE = yes # Audio output
|
|
||||||
AUDIO_SUPPORTED = yes # is set to no in kb, needs to be forcibly enabled
|
|
||||||
|
|
||||||
KEYBOARD_SHARED_EP = yes
|
BACKLIGHT_DRIVER = pwm
|
||||||
MOUSE_SHARED_EP = yes
|
|
||||||
|
|
||||||
EEPROM_DRIVER = spi
|
OVERLOAD_FEATURES = yes
|
||||||
WS2812_DRIVER = pwm
|
endif
|
||||||
SERIAL_DRIVER = usart
|
|
||||||
AUDIO_DRIVER = pwm_hardware
|
|
||||||
BACKLIGHT_DRIVER = pwm
|
|
||||||
|
|
||||||
AUTOCORRECT_ENABLE = yes
|
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/v2/stemcell)
|
||||||
CAPS_WORD_ENABLE = yes
|
OVERLOAD_FEATURES = yes
|
||||||
SWAP_HANDS_ENABLE = yes
|
endif
|
||||||
TAP_DANCE_ENABLE = yes
|
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/v2/splinky)
|
||||||
DEBOUNCE_TYPE = asym_eager_defer_pk
|
OVERLOAD_FEATURES = yes
|
||||||
WPM_ENABLE = yes
|
endif
|
||||||
LTO_ENABLE = no
|
ifeq ($(strip $(MCU)), atmega32u4)
|
||||||
# OPT = 3
|
LTO_ENABLE = yes
|
||||||
|
BOOTLOADER = qmk-hid
|
||||||
|
BOOTLOADER_SIZE = 512
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(OVERLOAD_FEATURES)), yes)
|
||||||
|
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 # Enable N-Key Rollover
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
|
||||||
|
KEYBOARD_SHARED_EP = yes
|
||||||
|
MOUSE_SHARED_EP = yes
|
||||||
|
|
||||||
|
AUTOCORRECT_ENABLE = yes
|
||||||
|
CAPS_WORD_ENABLE = yes
|
||||||
|
SWAP_HANDS_ENABLE = yes
|
||||||
|
TAP_DANCE_ENABLE = yes
|
||||||
|
DEBOUNCE_TYPE = asym_eager_defer_pk
|
||||||
|
WPM_ENABLE = yes
|
||||||
|
LTO_ENABLE = no
|
||||||
|
# OPT = 3
|
||||||
|
|
||||||
|
CUSTOM_UNICODE_ENABLE = yes
|
||||||
|
CUSTOM_POINTING_DEVICE = yes
|
||||||
|
CUSTOM_SPLIT_TRANSPORT_SYNC = yes
|
||||||
|
|
||||||
|
endif
|
||||||
|
23
keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h
Normal file
23
keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define HAL_USE_SPI TRUE
|
||||||
|
#define HAL_USE_I2C TRUE
|
||||||
|
|
||||||
|
#include_next "halconf.h"
|
@ -112,7 +112,7 @@ bool oled_task_keymap(void) {
|
|||||||
};
|
};
|
||||||
oled_write_raw_P(header_image, sizeof(header_image));
|
oled_write_raw_P(header_image, sizeof(header_image));
|
||||||
oled_set_cursor(7, 0);
|
oled_set_cursor(7, 0);
|
||||||
oled_write_P(PSTR("Rock On"), true);
|
oled_write_P(PSTR("Dilemma"), true);
|
||||||
|
|
||||||
render_default_layer_state(1, 1);
|
render_default_layer_state(1, 1);
|
||||||
render_layer_state(1, 2);
|
render_layer_state(1, 2);
|
||||||
@ -158,3 +158,19 @@ bool oled_task_keymap(void) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef SWAP_HANDS_ENABLE
|
||||||
|
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/* Left hand, matrix positions */
|
||||||
|
{{0, 4}, {3, 4}, {2, 4}, {5, 4}, {4, 4}},
|
||||||
|
{{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}},
|
||||||
|
{{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}},
|
||||||
|
{{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}},
|
||||||
|
/* Right hand, matrix positions */
|
||||||
|
{{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}},
|
||||||
|
{{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}},
|
||||||
|
{{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}},
|
||||||
|
{{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}},
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
26
keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h
Normal file
26
keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include_next "mcuconf.h"
|
||||||
|
|
||||||
|
#undef RP_SPI_USE_SPI1
|
||||||
|
#define RP_SPI_USE_SPI1 TRUE
|
||||||
|
|
||||||
|
#undef RP_I2C_USE_I2C1
|
||||||
|
#define RP_I2C_USE_I2C1 TRUE
|
@ -60,8 +60,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
|
|
||||||
[_MOUSE] = LAYOUT_4x6_right(
|
[_MOUSE] = LAYOUT_4x6_right(
|
||||||
_______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, DPI_CONFIG, _______,
|
_______, _______, _______, _______, _______, _______, KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, SNP_TOG,
|
||||||
_______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, _______,
|
_______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING,
|
||||||
_______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______,
|
_______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______,
|
||||||
_______, _______, _______, _______,
|
_______, _______, _______, _______,
|
||||||
_______, _______, _______,
|
_______, _______, _______,
|
||||||
|
@ -132,6 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef ENCODER_ENABLE
|
||||||
#ifdef ENCODER_MAP_ENABLE
|
#ifdef ENCODER_MAP_ENABLE
|
||||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||||
[_DEFAULT_LAYER_1] = { { KC_VOLD, KC_VOLU }, { KC_WH_D, KC_WH_U } },
|
[_DEFAULT_LAYER_1] = { { KC_VOLD, KC_VOLU }, { KC_WH_D, KC_WH_U } },
|
||||||
@ -185,6 +186,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef OLED_ENABLE
|
#ifdef OLED_ENABLE
|
||||||
# include "keyrecords/unicode.h"
|
# include "keyrecords/unicode.h"
|
||||||
@ -209,36 +211,7 @@ void oled_render_large_display(bool side) {
|
|||||||
// clang-format on
|
// clang-format on
|
||||||
oled_write_P(logo, false);
|
oled_write_P(logo, false);
|
||||||
|
|
||||||
# ifdef CUSTOM_UNICODE_ENABLE
|
render_unicode_mode(1, 14);
|
||||||
oled_set_cursor(1, 14);
|
|
||||||
oled_write_ln_P(PSTR("Unicode:"), false);
|
|
||||||
switch (typing_mode) {
|
|
||||||
case UCTM_WIDE:
|
|
||||||
oled_write_P(PSTR(" Wide"), false);
|
|
||||||
break;
|
|
||||||
case UCTM_SCRIPT:
|
|
||||||
oled_write_P(PSTR(" Script"), false);
|
|
||||||
break;
|
|
||||||
case UCTM_BLOCKS:
|
|
||||||
oled_write_P(PSTR(" Blocks"), false);
|
|
||||||
break;
|
|
||||||
case UCTM_REGIONAL:
|
|
||||||
oled_write_P(PSTR(" Regional"), false);
|
|
||||||
break;
|
|
||||||
case UCTM_AUSSIE:
|
|
||||||
oled_write_P(PSTR(" Aussie"), false);
|
|
||||||
break;
|
|
||||||
case UCTM_ZALGO:
|
|
||||||
oled_write_P(PSTR(" Zalgo"), false);
|
|
||||||
break;
|
|
||||||
case UCTM_NO_MODE:
|
|
||||||
oled_write_P(PSTR(" Normal"), false);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
oled_write_P(PSTR(" Unknown"), false);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
# endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,40 +1,52 @@
|
|||||||
COMMAND_ENABLE = no
|
AUTOCORRECT_ENABLE = no
|
||||||
RGBLIGHT_ENABLE = yes
|
AUDIO_ENABLE = no
|
||||||
RGBLIGHT_STARTUP_ANIMATION = yes
|
ENCODER_ENABLE = no
|
||||||
AUDIO_ENABLE = yes
|
CUSTOM_BOOTMAGIC_ENABLE = no
|
||||||
|
CUSTOM_UNICODE_ENABLE = no
|
||||||
HAPTIC_ENABLE = no
|
HAPTIC_ENABLE = no
|
||||||
TAP_DANCE_ENABLE = yes
|
OLED_ENABLE = no
|
||||||
OLED_ENABLE = yes
|
OLED_DRIVER = custom
|
||||||
WPM_ENABLE = yes
|
RGBLIGHT_ENABLE = no
|
||||||
ENCODER_ENABLE = yes
|
SWAP_HANDS_ENABLE = no
|
||||||
ENCODER_MAP_ENABLE = yes
|
TAP_DANCE_ENABLE = no
|
||||||
AUTOCORRECT_ENABLE = yes
|
WPM_ENABLE = no
|
||||||
CAPS_WORD_ENABLE = yes
|
|
||||||
DEFERRED_EXEC_ENABLE = yes
|
|
||||||
|
|
||||||
ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/elite_c)
|
ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/elite_c)
|
||||||
RGBLIGHT_ENABLE = no
|
BOOTLOADER = qmk-hid
|
||||||
AUDIO_ENABLE = no
|
BOOTLOADER_SIZE = 512
|
||||||
HAPTIC_ENABLE = no
|
CUSTOM_SPLIT_TRANSPORT_SYNC = no
|
||||||
TAP_DANCE_ENABLE = no
|
LTO_ENABLE = yes
|
||||||
OLED_ENABLE = no
|
endif
|
||||||
WPM_ENABLE = no
|
ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/arduinomicro)
|
||||||
ENCODER_ENABLE = no
|
BOOTLOADER = qmk-hid
|
||||||
AUTOCORRECT_ENABLE = no
|
BOOTLOADER_SIZE = 512
|
||||||
LTO_SUPPORTED = yes
|
CUSTOM_SPLIT_TRANSPORT_SYNC = no
|
||||||
SWAP_HANDS_ENABLE = no
|
LTO_ENABLE = yes
|
||||||
CUSTOM_UNICODE_ENABLE = no
|
|
||||||
CAPS_WORD_ENABLE = no
|
|
||||||
BOOTLOADER = qmk-hid
|
|
||||||
BOOTLOADER_SIZE = 512
|
|
||||||
endif
|
endif
|
||||||
ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/teensy2pp)
|
ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/teensy2pp)
|
||||||
AUTOCORRECT_ENABLE = no
|
AUTOCORRECT_ENABLE = no
|
||||||
CAPS_WORD_ENABLE = yes
|
OVERLOAD_FEATURES = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
endif
|
endif
|
||||||
ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/f411)
|
ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/f411)
|
||||||
BOOTLOADER = tinyuf2
|
BOOTLOADER = tinyuf2
|
||||||
|
AUTOCORRECT_ENABLE = yes
|
||||||
|
LTO_SUPPORTED = no
|
||||||
|
OVERLOAD_FEATURES = yes
|
||||||
endif
|
endif
|
||||||
# DEBOUNCE_TYPE = sym_eager_pk
|
# DEBOUNCE_TYPE = sym_eager_pk
|
||||||
|
|
||||||
OLED_DRIVER = custom
|
ifeq ($(strip $(OVERLOAD_FEATURES)), yes)
|
||||||
|
AUDIO_ENABLE = yes
|
||||||
|
CAPS_WORD_ENABLE = yes
|
||||||
|
CUSTOM_BOOTMAGIC_ENABLE = yes
|
||||||
|
CUSTOM_UNICODE_ENABLE = yes
|
||||||
|
ENCODER_ENABLE = yes
|
||||||
|
ENCODER_MAP_ENABLE = yes
|
||||||
|
OLED_ENABLE = yes
|
||||||
|
RGBLIGHT_ENABLE = yes
|
||||||
|
RGBLIGHT_STARTUP_ANIMATION = yes
|
||||||
|
TAP_DANCE_ENABLE = yes
|
||||||
|
SWAP_HANDS_ENABLE = yes
|
||||||
|
WPM_ENABLE = yes
|
||||||
|
endif
|
||||||
|
@ -30,7 +30,9 @@
|
|||||||
# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
|
# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
|
||||||
# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
|
# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
|
||||||
|
|
||||||
# define RGBLIGHT_LIMIT_VAL 225
|
# ifndef RGBLIGHT_LIMIT_VAL
|
||||||
|
# define RGBLIGHT_LIMIT_VAL 225
|
||||||
|
# endif
|
||||||
#endif // RGBLIGHT_ENABLE
|
#endif // RGBLIGHT_ENABLE
|
||||||
|
|
||||||
#ifdef AUDIO_ENABLE
|
#ifdef AUDIO_ENABLE
|
||||||
@ -49,12 +51,14 @@
|
|||||||
# define QMK_SPEAKER C6
|
# define QMK_SPEAKER C6
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef PRODUCT
|
|
||||||
#if defined(KEYBOARD_keebio_iris_rev2)
|
#if defined(KEYBOARD_keebio_iris_rev2)
|
||||||
|
# undef PRODUCT
|
||||||
# define PRODUCT "Drashna Hacked Iris Rev 2"
|
# define PRODUCT "Drashna Hacked Iris Rev 2"
|
||||||
#elif defined(KEYBOARD_keebio_iris_rev3)
|
#elif defined(KEYBOARD_keebio_iris_rev3)
|
||||||
|
# undef PRODUCT
|
||||||
# define PRODUCT "Drashna Hacked Iris Rev 3"
|
# define PRODUCT "Drashna Hacked Iris Rev 3"
|
||||||
#elif defined(KEYBOARD_keebio_iris_rev4)
|
#elif defined(KEYBOARD_keebio_iris_rev4)
|
||||||
|
# undef PRODUCT
|
||||||
# define PRODUCT "Drashna Hacked Iris Rev 4"
|
# define PRODUCT "Drashna Hacked Iris Rev 4"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -101,16 +101,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
};
|
};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
void matrix_init_keymap(void) {
|
|
||||||
#ifndef CONVERT_TO_PROTON_C
|
|
||||||
setPinOutput(D5);
|
|
||||||
writePinHigh(D5);
|
|
||||||
|
|
||||||
setPinOutput(B0);
|
|
||||||
writePinHigh(B0);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void keyboard_post_init_keymap(void) {
|
void keyboard_post_init_keymap(void) {
|
||||||
#if BACKLIGHT_ENABLE
|
#if BACKLIGHT_ENABLE
|
||||||
backlight_enable();
|
backlight_enable();
|
||||||
|
@ -14,7 +14,3 @@ INDICATOR_LIGHTS = no
|
|||||||
RGBLIGHT_STARTUP_ANIMATION = no
|
RGBLIGHT_STARTUP_ANIMATION = no
|
||||||
CUSTOM_UNICODE_ENABLE = no
|
CUSTOM_UNICODE_ENABLE = no
|
||||||
CUSTOM_SPLIT_TRANSPORT_SYNC = no
|
CUSTOM_SPLIT_TRANSPORT_SYNC = no
|
||||||
|
|
||||||
ifneq ($(strip $(KEYBOARD)), keebio/iris/rev6)
|
|
||||||
RGBLIGHT_ENABLE = yes
|
|
||||||
endif
|
|
||||||
|
@ -74,13 +74,3 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
|||||||
//}
|
//}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_init_keymap(void) {
|
|
||||||
#ifndef CONVERT_TO_PROTON_C
|
|
||||||
setPinOutput(D5);
|
|
||||||
writePinHigh(D5);
|
|
||||||
|
|
||||||
setPinOutput(B0);
|
|
||||||
writePinHigh(B0);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
@ -21,4 +21,5 @@ LAYOUTS = ortho_5x7
|
|||||||
# SRC := $(filter-out split_util.c,$(SRC))
|
# SRC := $(filter-out split_util.c,$(SRC))
|
||||||
# SRC += quantum/matrix.c
|
# SRC += quantum/matrix.c
|
||||||
|
|
||||||
BOOTLOADER = qmk-dfu
|
BOOTLOADER = qmk-hid
|
||||||
|
BOOTLOADER_SIZE = 512
|
||||||
|
@ -53,10 +53,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
# endif
|
# endif
|
||||||
#endif // AUDIO_ENABLE
|
#endif // AUDIO_ENABLE
|
||||||
|
|
||||||
#undef PRODUCT
|
|
||||||
#ifdef KEYBOARD_orthodox_rev1
|
#ifdef KEYBOARD_orthodox_rev1
|
||||||
|
# undef PRODUCT
|
||||||
# define PRODUCT "Drashna Hacked Orthodox Rev .1"
|
# define PRODUCT "Drashna Hacked Orthodox Rev .1"
|
||||||
#elif KEYBOARD_orthodox_rev3
|
#elif KEYBOARD_orthodox_rev3
|
||||||
|
# undef PRODUCT
|
||||||
# define PRODUCT "Drashna Hacked Orthodox Rev .3"
|
# define PRODUCT "Drashna Hacked Orthodox Rev .3"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -68,13 +68,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
void matrix_init_keymap(void) {
|
|
||||||
#ifndef CONVERT_TO_PROTON_C
|
|
||||||
setPinOutput(D5);
|
|
||||||
writePinHigh(D5);
|
|
||||||
|
|
||||||
setPinOutput(B0);
|
|
||||||
writePinHigh(B0);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
@ -144,6 +144,7 @@ void oled_render_large_display(bool side) {
|
|||||||
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
|
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
|
||||||
};
|
};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
oled_set_cursor(0,7);
|
||||||
oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
|
oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -157,9 +158,11 @@ const rgblight_segment_t PROGMEM gui_layers[] = RGBLIGHT_LAYER_SEGMENTS({7,
|
|||||||
|
|
||||||
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(shift_layers, control_layers, alt_layers, gui_layers);
|
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(shift_layers, control_layers, alt_layers, gui_layers);
|
||||||
|
|
||||||
void keyboard_post_init_keymap(void) { rgblight_layers = my_rgb_layers; }
|
void keyboard_post_init_keymap(void) {
|
||||||
|
rgblight_layers = my_rgb_layers;
|
||||||
|
}
|
||||||
|
|
||||||
void matrix_scan_keymap(void) {
|
void housekeeping_task_keymap(void) {
|
||||||
uint8_t mods = mod_config(get_mods() | get_oneshot_mods());
|
uint8_t mods = mod_config(get_mods() | get_oneshot_mods());
|
||||||
rgblight_set_layer_state(0, mods & MOD_MASK_SHIFT);
|
rgblight_set_layer_state(0, mods & MOD_MASK_SHIFT);
|
||||||
rgblight_set_layer_state(1, mods & MOD_MASK_CTRL);
|
rgblight_set_layer_state(1, mods & MOD_MASK_CTRL);
|
||||||
|
@ -268,7 +268,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_scan_keymap(void) { // runs frequently to update info
|
void housekeeping_task_keymap(void) { // runs frequently to update info
|
||||||
uint8_t modifiers = get_mods();
|
uint8_t modifiers = get_mods();
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
uint8_t led_usb_state = host_keyboard_leds();
|
||||||
uint8_t one_shot = get_oneshot_mods();
|
uint8_t one_shot = get_oneshot_mods();
|
||||||
|
@ -66,12 +66,14 @@
|
|||||||
#endif // KEYBOARD_planck_light
|
#endif // KEYBOARD_planck_light
|
||||||
|
|
||||||
#if defined(KEYBOARD_planck)
|
#if defined(KEYBOARD_planck)
|
||||||
# undef PRODUCT
|
|
||||||
# if defined(KEYBOARD_planck_light)
|
# if defined(KEYBOARD_planck_light)
|
||||||
|
# undef PRODUCT
|
||||||
# define PRODUCT "Drashna Hacked RGB Beacon(Planck Light)"
|
# define PRODUCT "Drashna Hacked RGB Beacon(Planck Light)"
|
||||||
# elif defined(KEYBOARD_planck_rev6)
|
# elif defined(KEYBOARD_planck_rev6)
|
||||||
|
# undef PRODUCT
|
||||||
# define PRODUCT "Drashna Hacked Planck Rev6"
|
# define PRODUCT "Drashna Hacked Planck Rev6"
|
||||||
# elif defined(KEYBOARD_planck_ez)
|
# elif defined(KEYBOARD_planck_ez)
|
||||||
|
# undef PRODUCT
|
||||||
# define PRODUCT "Drashna Hacked Planck EZ"
|
# define PRODUCT "Drashna Hacked Planck EZ"
|
||||||
# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
|
# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
|
||||||
# endif
|
# endif
|
||||||
|
@ -249,23 +249,12 @@ bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_init_keymap(void) {
|
void keyboard_post_init_keymap(void) {
|
||||||
# ifdef KEYBOARD_planck_light
|
# ifdef KEYBOARD_planck_light
|
||||||
writePinLow(D6);
|
writePinLow(D6);
|
||||||
# endif
|
# endif
|
||||||
// rgblight_mode(RGB_MATRIX_MULTISPLASH);
|
// rgblight_mode(RGB_MATRIX_MULTISPLASH);
|
||||||
}
|
}
|
||||||
#else // RGB_MATRIX_INIT
|
|
||||||
|
|
||||||
void matrix_init_keymap(void) {
|
|
||||||
# if !defined(CONVERT_TO_PROTON_C) && !defined(KEYBOARD_planck)
|
|
||||||
setPinOutput(D5);
|
|
||||||
writePinHigh(D5);
|
|
||||||
|
|
||||||
setPinOutput(B0);
|
|
||||||
writePinHigh(B0);
|
|
||||||
# endif
|
|
||||||
}
|
|
||||||
#endif // RGB_MATRIX_INIT
|
#endif // RGB_MATRIX_INIT
|
||||||
|
|
||||||
#ifdef ENCODER_ENABLE
|
#ifdef ENCODER_ENABLE
|
||||||
|
@ -20,7 +20,7 @@ ifeq ($(strip $(KEYBOARD)), planck/rev6)
|
|||||||
AUDIO_ENABLE = yes
|
AUDIO_ENABLE = yes
|
||||||
EEPROM_DRIVER = i2c
|
EEPROM_DRIVER = i2c
|
||||||
ENCODER_MAP_ENABLE = yes
|
ENCODER_MAP_ENABLE = yes
|
||||||
AUTOCORRECTION_ENABLE = yes
|
AUTOCORRECT_ENABLE = yes
|
||||||
CAPS_WORD_ENABLE = yes
|
CAPS_WORD_ENABLE = yes
|
||||||
endif
|
endif
|
||||||
ifeq ($(strip $(KEYBOARD)), planck/light)
|
ifeq ($(strip $(KEYBOARD)), planck/light)
|
||||||
@ -39,6 +39,13 @@ ifeq ($(strip $(KEYBOARD)), planck/ez)
|
|||||||
CONSOLE_ENABLE = yes
|
CONSOLE_ENABLE = yes
|
||||||
COMMAND_ENABLE = yes
|
COMMAND_ENABLE = yes
|
||||||
AUDIO_ENABLE = yes
|
AUDIO_ENABLE = yes
|
||||||
AUTOCORRECTION_ENABLE = yes
|
AUTOCORRECT_ENABLE = yes
|
||||||
CAPS_WORD_ENABLE = yes
|
CAPS_WORD_ENABLE = yes
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(MCU)), atmega32u4)
|
||||||
|
BOOTLOADER = qmk-hid
|
||||||
|
BOOTLOADER_SIZE = 512
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
CUSTOM_UNICODE_ENABLE = no
|
||||||
|
endif
|
||||||
|
@ -16,3 +16,9 @@ ifeq ($(strip $(KEYBOARD)), fractal)
|
|||||||
BOOTLOADER = qmk-dfu
|
BOOTLOADER = qmk-dfu
|
||||||
CUSTOM_UNICODE_ENABLE = no
|
CUSTOM_UNICODE_ENABLE = no
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(MCU)), atmega32u4)
|
||||||
|
BOOTLOADER = qmk-dfu
|
||||||
|
BOOTLOADER_SIZE = 512
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
endif
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
|
|
||||||
#define CH_CFG_ST_RESOLUTION 16
|
#if defined(KEYBOARD_crkbd)
|
||||||
#define CH_CFG_ST_FREQUENCY 10000
|
# define CH_CFG_ST_RESOLUTION 16
|
||||||
|
# define CH_CFG_ST_FREQUENCY 10000
|
||||||
|
#endif
|
||||||
|
|
||||||
#if __has_include("platforms/chibios/common/configs/chconf.h")
|
#if __has_include("platforms/chibios/common/configs/chconf.h")
|
||||||
# include_next "platforms/chibios/common/configs/chconf.h"
|
# include_next "platforms/chibios/common/configs/chconf.h"
|
||||||
|
@ -80,8 +80,13 @@
|
|||||||
# define NO_MUSIC_MODE
|
# define NO_MUSIC_MODE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAPTIC_ENABLE
|
#if defined(HAPTIC_ENABLE)
|
||||||
# define SOLENOID_PIN B7
|
# if defined(CONVERT_TO_PROTON_C)
|
||||||
|
# define A13 PAL_LINE(GPIOA, 13)
|
||||||
|
# define SOLENOID_PIN A13
|
||||||
|
# else
|
||||||
|
# define SOLENOID_PIN B7
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef PRODUCT
|
#undef PRODUCT
|
||||||
|
@ -15,8 +15,9 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// #define HAL_USE_DAC TRUE
|
#if defined(KEYBOARD_crkbd)
|
||||||
#define HAL_USE_PWM TRUE
|
# define HAL_USE_PWM TRUE
|
||||||
#define HAL_USE_SERIAL TRUE
|
# define HAL_USE_SERIAL TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
#include_next <halconf.h>
|
#include_next <halconf.h>
|
||||||
|
@ -238,8 +238,7 @@ void render_small_kitty(void) {
|
|||||||
void oled_driver_render_logo_right(void) {
|
void oled_driver_render_logo_right(void) {
|
||||||
render_small_kitty();
|
render_small_kitty();
|
||||||
|
|
||||||
oled_set_cursor(0, 4);
|
render_default_layer_state(0, 4);
|
||||||
render_default_layer_state();
|
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -17,20 +17,16 @@
|
|||||||
|
|
||||||
#include_next <mcuconf.h>
|
#include_next <mcuconf.h>
|
||||||
|
|
||||||
// #undef STM32_HSE_ENABLED
|
#if defined(KEYBOARD_crkbd)
|
||||||
// #define STM32_HSE_ENABLED FALSE
|
|
||||||
// #undef STM32_GPT_USE_TIM15
|
|
||||||
// #define STM32_GPT_USE_TIM15 FALSE
|
|
||||||
|
|
||||||
#undef STM32_PWM_USE_TIM2
|
# undef STM32_PWM_USE_TIM2
|
||||||
#define STM32_PWM_USE_TIM2 TRUE
|
# define STM32_PWM_USE_TIM2 TRUE
|
||||||
#undef STM32_PWM_USE_TIM3
|
# undef STM32_PWM_USE_TIM3
|
||||||
#define STM32_PWM_USE_TIM3 FALSE
|
# define STM32_PWM_USE_TIM3 FALSE
|
||||||
|
|
||||||
#undef STM32_SERIAL_USE_USART1
|
# undef STM32_SERIAL_USE_USART1
|
||||||
#define STM32_SERIAL_USE_USART1 TRUE
|
# define STM32_SERIAL_USE_USART1 TRUE
|
||||||
|
|
||||||
// #undef STM32_PWM_TIM15_IRQ_PRIORITY
|
# undef STM32_ST_USE_TIMER
|
||||||
// #define STM32_PWM_TIM15_IRQ_PRIORITY 16
|
# define STM32_ST_USE_TIMER 3
|
||||||
#undef STM32_ST_USE_TIMER
|
#endif
|
||||||
#define STM32_ST_USE_TIMER 3
|
|
||||||
|
@ -13,6 +13,10 @@ AUDIO_ENABLE = no # Audio output
|
|||||||
UNICODE_ENABLE = no # Unicode
|
UNICODE_ENABLE = no # Unicode
|
||||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||||
SWAP_HANDS_ENABLE = no # Enable one-hand typing
|
SWAP_HANDS_ENABLE = no # Enable one-hand typing
|
||||||
|
OS_DETECTION_ENABLE = no
|
||||||
|
CUSTOM_UNICODE_ENABLE = no
|
||||||
|
CUSTOM_POINTING_DEVICE = no
|
||||||
|
CUSTOM_SPLIT_TRANSPORT_SYNC = no
|
||||||
|
|
||||||
USE_ARM_CONFIG ?= no
|
USE_ARM_CONFIG ?= no
|
||||||
ifeq ($(strip $(CONVERT_TO)), proton_c)
|
ifeq ($(strip $(CONVERT_TO)), proton_c)
|
||||||
@ -27,19 +31,26 @@ endif
|
|||||||
ifeq ($(strip $(MCU)), STM32F401)
|
ifeq ($(strip $(MCU)), STM32F401)
|
||||||
USE_ARM_CONFIG = yes
|
USE_ARM_CONFIG = yes
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(strip $(MCU)), STM32F411)
|
||||||
|
USE_ARM_CONFIG = yes
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(MCU)), atmega32u4)
|
||||||
|
BOOTLOADER = qmk-hid
|
||||||
|
BOOTLOADER_SIZE = 512
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(USE_ARM_CONFIG)), yes)
|
ifeq ($(strip $(USE_ARM_CONFIG)), yes)
|
||||||
HAPTIC_ENABLE = no
|
HAPTIC_ENABLE = no
|
||||||
WS2812_DRIVER = pwm # won't work without a patch to the ctpc mk file
|
WS2812_DRIVER = pwm # won't work without a patch to the ctpc mk file
|
||||||
SERIAL_DRIVER = usart
|
SERIAL_DRIVER = usart
|
||||||
SWAP_HANDS_ENABLE = yes
|
|
||||||
WPM_ENABLE = yes
|
WPM_ENABLE = yes
|
||||||
AUTOCORRECTION_ENABLE = yes
|
AUTOCORRECT_ENABLE = yes
|
||||||
CAPS_WORD_ENABLE = yes
|
CAPS_WORD_ENABLE = yes
|
||||||
else
|
OS_DETECTION_ENABLE = yes
|
||||||
CUSTOM_UNICODE_ENABLE = no
|
CUSTOM_UNICODE_ENABLE = no
|
||||||
BOOTLOADER = qmk-hid
|
CUSTOM_POINTING_DEVICE = no
|
||||||
BOOTLOADER_SIZE = 512
|
CUSTOM_SPLIT_TRANSPORT_SYNC = no
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(KEYBOARD)), crkbd/rev1)
|
ifeq ($(strip $(KEYBOARD)), crkbd/rev1)
|
||||||
@ -47,7 +58,3 @@ ifeq ($(strip $(KEYBOARD)), crkbd/rev1)
|
|||||||
RGB_MATRIX_ENABLE = yes
|
RGB_MATRIX_ENABLE = yes
|
||||||
HAPTIC_ENABLE = no
|
HAPTIC_ENABLE = no
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(KEYBOARD)), cantor)
|
|
||||||
SWAP_HANDS_ENABLE = no
|
|
||||||
endif
|
|
||||||
|
@ -44,7 +44,7 @@ void bootmagic_lite(void) {
|
|||||||
if (matrix_get_row(row) & (1 << col)) {
|
if (matrix_get_row(row) & (1 << col)) {
|
||||||
perform_reset = true;
|
perform_reset = true;
|
||||||
}
|
}
|
||||||
#ifdef STM32F411xE
|
#if defined(STM32F411xE) && !defined(CONVERTER_ENABLED)
|
||||||
if (!readPin(A0)) {
|
if (!readPin(A0)) {
|
||||||
perform_reset = true;
|
perform_reset = true;
|
||||||
}
|
}
|
||||||
|
@ -20,22 +20,6 @@ void keyboard_pre_init_user(void) {
|
|||||||
// functions in the keymaps
|
// functions in the keymaps
|
||||||
// Call user matrix init, set default RGB colors and then
|
// Call user matrix init, set default RGB colors and then
|
||||||
// call the keymap's init function
|
// call the keymap's init function
|
||||||
__attribute__((weak)) void matrix_init_keymap(void) {}
|
|
||||||
__attribute__((weak)) void matrix_init_secret(void) {}
|
|
||||||
void matrix_init_user(void) {
|
|
||||||
#if defined(BOOTLOADER_CATERINA) && defined(__AVR__) && defined(__AVR_ATmega32U4__)
|
|
||||||
DDRD &= ~(1 << 5);
|
|
||||||
PORTD &= ~(1 << 5);
|
|
||||||
|
|
||||||
DDRB &= ~(1 << 0);
|
|
||||||
PORTB &= ~(1 << 0);
|
|
||||||
#endif
|
|
||||||
#ifdef CUSTOM_UNICODE_ENABLE
|
|
||||||
matrix_init_unicode();
|
|
||||||
#endif
|
|
||||||
matrix_init_secret();
|
|
||||||
matrix_init_keymap();
|
|
||||||
}
|
|
||||||
|
|
||||||
__attribute__((weak)) void keyboard_post_init_keymap(void) {}
|
__attribute__((weak)) void keyboard_post_init_keymap(void) {}
|
||||||
void keyboard_post_init_user(void) {
|
void keyboard_post_init_user(void) {
|
||||||
@ -51,6 +35,17 @@ void keyboard_post_init_user(void) {
|
|||||||
#ifdef I2C_SCANNER_ENABLE
|
#ifdef I2C_SCANNER_ENABLE
|
||||||
keyboard_post_init_i2c();
|
keyboard_post_init_i2c();
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CUSTOM_UNICODE_ENABLE
|
||||||
|
keyboard_post_init_unicode();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(BOOTLOADER_CATERINA) && defined(__AVR__) && defined(__AVR_ATmega32U4__)
|
||||||
|
DDRD &= ~(1 << 5);
|
||||||
|
PORTD &= ~(1 << 5);
|
||||||
|
|
||||||
|
DDRB &= ~(1 << 0);
|
||||||
|
PORTB &= ~(1 << 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
keyboard_post_init_keymap();
|
keyboard_post_init_keymap();
|
||||||
}
|
}
|
||||||
@ -106,7 +101,6 @@ void suspend_wakeup_init_user(void) {
|
|||||||
// No global matrix scan code, so just run keymap's matrix
|
// No global matrix scan code, so just run keymap's matrix
|
||||||
// scan function
|
// scan function
|
||||||
__attribute__((weak)) void matrix_scan_keymap(void) {}
|
__attribute__((weak)) void matrix_scan_keymap(void) {}
|
||||||
__attribute__((weak)) void matrix_scan_secret(void) {}
|
|
||||||
void matrix_scan_user(void) {
|
void matrix_scan_user(void) {
|
||||||
static bool has_ran_yet;
|
static bool has_ran_yet;
|
||||||
if (!has_ran_yet) {
|
if (!has_ran_yet) {
|
||||||
@ -117,9 +111,6 @@ void matrix_scan_user(void) {
|
|||||||
#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
|
#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
|
||||||
run_diablo_macro_check();
|
run_diablo_macro_check();
|
||||||
#endif // TAP_DANCE_ENABLE
|
#endif // TAP_DANCE_ENABLE
|
||||||
#ifdef CAPS_WORD_ENABLE
|
|
||||||
caps_word_task();
|
|
||||||
#endif
|
|
||||||
#if defined(CUSTOM_RGB_MATRIX)
|
#if defined(CUSTOM_RGB_MATRIX)
|
||||||
matrix_scan_rgb_matrix();
|
matrix_scan_rgb_matrix();
|
||||||
#endif
|
#endif
|
||||||
@ -129,7 +120,6 @@ void matrix_scan_user(void) {
|
|||||||
#ifdef CUSTOM_OLED_DRIVER
|
#ifdef CUSTOM_OLED_DRIVER
|
||||||
matrix_scan_oled();
|
matrix_scan_oled();
|
||||||
#endif
|
#endif
|
||||||
matrix_scan_secret();
|
|
||||||
|
|
||||||
matrix_scan_keymap();
|
matrix_scan_keymap();
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
void matrix_init_keymap(void);
|
void keyboard_post_init_keymap(void);
|
||||||
void matrix_init_secret(void);
|
void matrix_init_secret(void);
|
||||||
void shutdown_keymap(void);
|
void shutdown_keymap(void);
|
||||||
void suspend_power_down_keymap(void);
|
void suspend_power_down_keymap(void);
|
||||||
@ -19,7 +19,7 @@ void eeconfig_init_keymap(void);
|
|||||||
void housekeeping_task_keymap(void);
|
void housekeeping_task_keymap(void);
|
||||||
|
|
||||||
#ifdef CUSTOM_UNICODE_ENABLE
|
#ifdef CUSTOM_UNICODE_ENABLE
|
||||||
void matrix_init_unicode(void);
|
void keyboard_post_init_unicode(void);
|
||||||
#endif
|
#endif
|
||||||
#ifdef SPLIT_KEYBOARD
|
#ifdef SPLIT_KEYBOARD
|
||||||
void matrix_slave_scan_keymap(void);
|
void matrix_slave_scan_keymap(void);
|
||||||
|
@ -15,11 +15,6 @@ My [Ergodox EZ Keymap](https://github.com/qmk/qmk_firmware/blob/master/layouts/c
|
|||||||
You can see a list of these files in [callbacks.c](callbacks.c), or a shortend list here
|
You can see a list of these files in [callbacks.c](callbacks.c), or a shortend list here
|
||||||
|
|
||||||
```c
|
```c
|
||||||
__attribute__((weak)) void matrix_init_keymap(void) {}
|
|
||||||
void matrix_init_user(void) {
|
|
||||||
matrix_init_keymap();
|
|
||||||
}
|
|
||||||
|
|
||||||
__attribute__((weak)) void keyboard_post_init_keymap(void) {}
|
__attribute__((weak)) void keyboard_post_init_keymap(void) {}
|
||||||
void keyboard_post_init_user(void) {
|
void keyboard_post_init_user(void) {
|
||||||
keyboard_post_init_keymap();
|
keyboard_post_init_keymap();
|
||||||
|
@ -130,14 +130,35 @@ void keyboard_post_init_i2c(void) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(AUTOCORRECT_ENABLE) && defined(AUDIO_ENABLE)
|
#if defined(AUTOCORRECT_ENABLE)
|
||||||
# ifdef USER_SONG_LIST
|
# if defined(AUDIO_ENABLE)
|
||||||
|
# ifdef USER_SONG_LIST
|
||||||
float autocorrect_song[][2] = SONG(MARIO_GAMEOVER);
|
float autocorrect_song[][2] = SONG(MARIO_GAMEOVER);
|
||||||
# else
|
# else
|
||||||
float autocorrect_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
float autocorrect_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||||
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
bool apply_autocorrect(uint8_t backspaces, const char *str) {
|
bool apply_autocorrect(uint8_t backspaces, const char *str) {
|
||||||
|
if (layer_state_is(_GAMEPAD)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// TO-DO use unicode stuff for this. Will probably have to reverse engineer
|
||||||
|
// send string to get working properly, to send char string.
|
||||||
|
|
||||||
|
# if defined(AUDIO_ENABLE)
|
||||||
PLAY_SONG(autocorrect_song);
|
PLAY_SONG(autocorrect_song);
|
||||||
|
# endif
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(CAPS_WORD_ENABLE) && !defined(NO_ACTION_ONESHOT)
|
||||||
|
void oneshot_locked_mods_changed_user(uint8_t mods) {
|
||||||
|
if (mods & MOD_MASK_SHIFT) {
|
||||||
|
del_mods(MOD_MASK_SHIFT);
|
||||||
|
set_oneshot_locked_mods(~MOD_MASK_SHIFT & get_oneshot_locked_mods());
|
||||||
|
caps_word_on();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
@ -45,6 +45,7 @@ enum userspace_custom_keycodes {
|
|||||||
KC_AUSSIE,
|
KC_AUSSIE,
|
||||||
KC_ZALGO,
|
KC_ZALGO,
|
||||||
KC_SUPER,
|
KC_SUPER,
|
||||||
|
KC_COMIC,
|
||||||
KC_ACCEL,
|
KC_ACCEL,
|
||||||
NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes
|
NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes
|
||||||
};
|
};
|
||||||
|
@ -7,7 +7,18 @@
|
|||||||
#include "unicode.h"
|
#include "unicode.h"
|
||||||
#include "process_unicode_common.h"
|
#include "process_unicode_common.h"
|
||||||
|
|
||||||
uint8_t typing_mode = UCTM_NO_MODE;
|
uint8_t unicode_typing_mode = UCTM_NO_MODE;
|
||||||
|
const char unicode_mode_str[UNCODES_MODE_END][13] PROGMEM = {
|
||||||
|
" Normal\0",
|
||||||
|
" Wide\0",
|
||||||
|
" Script\0",
|
||||||
|
" Blocks\0",
|
||||||
|
" Regional\0",
|
||||||
|
" Aussie\0",
|
||||||
|
" Zalgo\0",
|
||||||
|
"Super Script\0",
|
||||||
|
" Comic\0",
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Registers the unicode keystrokes based on desired unicode
|
* @brief Registers the unicode keystrokes based on desired unicode
|
||||||
@ -91,6 +102,45 @@ DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_script, 0x1D4EA, 0x1D4D
|
|||||||
DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_boxes, 0x1F170, 0x1F170, '0', '1', 0x2002);
|
DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_boxes, 0x1F170, 0x1F170, '0', '1', 0x2002);
|
||||||
DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_regional, 0x1F1E6, 0x1F1E6, '0', '1', 0x2003);
|
DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_regional, 0x1F1E6, 0x1F1E6, '0', '1', 0x2003);
|
||||||
|
|
||||||
|
// DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_normal,
|
||||||
|
// 'a', // a
|
||||||
|
// 'b', // b
|
||||||
|
// 'c', // c
|
||||||
|
// 'd', // d
|
||||||
|
// 'e', // e
|
||||||
|
// 'f', // f
|
||||||
|
// 'g', // g
|
||||||
|
// 'h', // h
|
||||||
|
// 'i', // i
|
||||||
|
// 'j', // j
|
||||||
|
// 'k', // k
|
||||||
|
// 'l', // l
|
||||||
|
// 'm', // m
|
||||||
|
// 'n', // n
|
||||||
|
// 'o', // o
|
||||||
|
// 'p', // p
|
||||||
|
// 'q', // q
|
||||||
|
// 'r', // r
|
||||||
|
// 's', // s
|
||||||
|
// 't', // t
|
||||||
|
// 'u', // u
|
||||||
|
// 'v', // v
|
||||||
|
// 'w', // w
|
||||||
|
// 'x', // x
|
||||||
|
// 'y', // y
|
||||||
|
// 'z', // z
|
||||||
|
// '1', // 1
|
||||||
|
// '2', // 2
|
||||||
|
// '3', // 3
|
||||||
|
// '4', // 4
|
||||||
|
// '5', // 5
|
||||||
|
// '6', // 6
|
||||||
|
// '7', // 7
|
||||||
|
// '8', // 8
|
||||||
|
// '9', // 9
|
||||||
|
// '0' // 0
|
||||||
|
// );
|
||||||
|
|
||||||
DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_aussie,
|
DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_aussie,
|
||||||
0x0250, // a
|
0x0250, // a
|
||||||
'q', // b
|
'q', // b
|
||||||
@ -169,6 +219,45 @@ DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_super,
|
|||||||
0x2070 // 0
|
0x2070 // 0
|
||||||
);
|
);
|
||||||
|
|
||||||
|
DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_comic,
|
||||||
|
0x212B, // a
|
||||||
|
0x212C, // b
|
||||||
|
0x2102, // c
|
||||||
|
0x2145, // d
|
||||||
|
0x2107, // e
|
||||||
|
0x2132, // f
|
||||||
|
0x2141, // g
|
||||||
|
0x210D, // h
|
||||||
|
0x2148, // i
|
||||||
|
0x2111, // j
|
||||||
|
'k', // k
|
||||||
|
0x2143, // l
|
||||||
|
'm', // m
|
||||||
|
0x2115, // n
|
||||||
|
0x2134, // o
|
||||||
|
0x2119, // p
|
||||||
|
0x211A, // q
|
||||||
|
0x211B, // r
|
||||||
|
0x20B7, // s
|
||||||
|
0x20B8, // t
|
||||||
|
0x2127, // u
|
||||||
|
'v', // v
|
||||||
|
0x20A9, // w
|
||||||
|
'x', // x
|
||||||
|
0x213D, // y
|
||||||
|
'z', // z
|
||||||
|
'1', // 1
|
||||||
|
'2', // 2
|
||||||
|
'3', // 3
|
||||||
|
'4', // 4
|
||||||
|
'5', // 5
|
||||||
|
'6', // 6
|
||||||
|
'7', // 7
|
||||||
|
'8', // 8
|
||||||
|
'9', // 9
|
||||||
|
'0' // 0
|
||||||
|
);
|
||||||
|
|
||||||
bool process_record_aussie(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_aussie(uint16_t keycode, keyrecord_t *record) {
|
||||||
bool is_shifted = (get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT;
|
bool is_shifted = (get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT;
|
||||||
if ((KC_A <= keycode) && (keycode <= KC_0)) {
|
if ((KC_A <= keycode) && (keycode <= KC_0)) {
|
||||||
@ -280,12 +369,12 @@ bool process_record_unicode(uint16_t keycode, keyrecord_t *record) {
|
|||||||
register_unicode(0x203D);
|
register_unicode(0x203D);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KC_NOMODE ... KC_SUPER:
|
case KC_NOMODE ... KC_COMIC:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
if (typing_mode != keycode - KC_NOMODE) {
|
if (unicode_typing_mode != keycode - KC_NOMODE) {
|
||||||
typing_mode = keycode - KC_NOMODE;
|
unicode_typing_mode = keycode - KC_NOMODE;
|
||||||
} else {
|
} else {
|
||||||
typing_mode = UCTM_NO_MODE;
|
unicode_typing_mode = UCTM_NO_MODE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -295,23 +384,26 @@ bool process_record_unicode(uint16_t keycode, keyrecord_t *record) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) && record->tap.count) {
|
if (IS_QK_MOD_TAP(keycode) && record->tap.count) {
|
||||||
keycode &= 0xFF;
|
keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode);
|
||||||
|
}
|
||||||
|
if (IS_QK_LAYER_TAP(keycode) && record->tap.count) {
|
||||||
|
keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typing_mode == UCTM_WIDE) {
|
if (unicode_typing_mode == UCTM_WIDE) {
|
||||||
if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) {
|
if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) {
|
||||||
return process_record_glyph_replacement(keycode, record, unicode_range_translator_wide);
|
return process_record_glyph_replacement(keycode, record, unicode_range_translator_wide);
|
||||||
}
|
}
|
||||||
} else if (typing_mode == UCTM_SCRIPT) {
|
} else if (unicode_typing_mode == UCTM_SCRIPT) {
|
||||||
if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) {
|
if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) {
|
||||||
return process_record_glyph_replacement(keycode, record, unicode_range_translator_script);
|
return process_record_glyph_replacement(keycode, record, unicode_range_translator_script);
|
||||||
}
|
}
|
||||||
} else if (typing_mode == UCTM_BLOCKS) {
|
} else if (unicode_typing_mode == UCTM_BLOCKS) {
|
||||||
if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) {
|
if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) {
|
||||||
return process_record_glyph_replacement(keycode, record, unicode_range_translator_boxes);
|
return process_record_glyph_replacement(keycode, record, unicode_range_translator_boxes);
|
||||||
}
|
}
|
||||||
} else if (typing_mode == UCTM_REGIONAL) {
|
} else if (unicode_typing_mode == UCTM_REGIONAL) {
|
||||||
if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) {
|
if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) {
|
||||||
if (!process_record_glyph_replacement(keycode, record, unicode_range_translator_regional)) {
|
if (!process_record_glyph_replacement(keycode, record, unicode_range_translator_regional)) {
|
||||||
wait_us(500);
|
wait_us(500);
|
||||||
@ -319,22 +411,26 @@ bool process_record_unicode(uint16_t keycode, keyrecord_t *record) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (typing_mode == UCTM_SUPER) {
|
} else if (unicode_typing_mode == UCTM_SUPER) {
|
||||||
if (((KC_A <= keycode) && (keycode <= KC_0))) {
|
if (((KC_A <= keycode) && (keycode <= KC_0))) {
|
||||||
return process_record_glyph_replacement(keycode, record, unicode_lut_translator_super);
|
return process_record_glyph_replacement(keycode, record, unicode_lut_translator_super);
|
||||||
}
|
}
|
||||||
} else if (typing_mode == UCTM_AUSSIE) {
|
} else if (unicode_typing_mode == UCTM_COMIC) {
|
||||||
|
if (((KC_A <= keycode) && (keycode <= KC_0))) {
|
||||||
|
return process_record_glyph_replacement(keycode, record, unicode_lut_translator_comic);
|
||||||
|
}
|
||||||
|
} else if (unicode_typing_mode == UCTM_AUSSIE) {
|
||||||
return process_record_aussie(keycode, record);
|
return process_record_aussie(keycode, record);
|
||||||
} else if (typing_mode == UCTM_ZALGO) {
|
} else if (unicode_typing_mode == UCTM_ZALGO) {
|
||||||
return process_record_zalgo(keycode, record);
|
return process_record_zalgo(keycode, record);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize the default unicode mode on firmware startu
|
* @brief Initialize the default unicode mode on firmware startup
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void matrix_init_unicode(void) {
|
void keyboard_post_init_unicode(void) {
|
||||||
unicode_input_mode_init();
|
unicode_input_mode_init();
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
enum unicode_typing_mode {
|
enum unicode_typing_modes {
|
||||||
UCTM_NO_MODE,
|
UCTM_NO_MODE,
|
||||||
UCTM_WIDE,
|
UCTM_WIDE,
|
||||||
UCTM_SCRIPT,
|
UCTM_SCRIPT,
|
||||||
@ -12,6 +12,9 @@ enum unicode_typing_mode {
|
|||||||
UCTM_AUSSIE,
|
UCTM_AUSSIE,
|
||||||
UCTM_ZALGO,
|
UCTM_ZALGO,
|
||||||
UCTM_SUPER,
|
UCTM_SUPER,
|
||||||
|
UCTM_COMIC,
|
||||||
|
UNCODES_MODE_END,
|
||||||
};
|
};
|
||||||
|
|
||||||
extern uint8_t typing_mode;
|
extern uint8_t unicode_typing_mode;
|
||||||
|
extern const PROGMEM char unicode_mode_str[UNCODES_MODE_END][13];
|
||||||
|
@ -67,18 +67,22 @@ static const char PROGMEM code_to_name[256] = {
|
|||||||
* @param record keyrecord_t data structure
|
* @param record keyrecord_t data structure
|
||||||
*/
|
*/
|
||||||
void add_keylog(uint16_t keycode, keyrecord_t *record) {
|
void add_keylog(uint16_t keycode, keyrecord_t *record) {
|
||||||
if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) || (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) {
|
if (keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) {
|
||||||
if (((keycode & 0xFF) == KC_BSPC) && mod_config(get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL) {
|
keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode);
|
||||||
memset(keylog_str, ' ', OLED_KEYLOGGER_LENGTH);
|
} else if (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) {
|
||||||
return;
|
keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode);
|
||||||
}
|
} else if (keycode >= QK_MODS && keycode <= QK_MODS_MAX) {
|
||||||
if (record->tap.count) {
|
keycode = QK_MODS_GET_BASIC_KEYCODE(keycode);
|
||||||
keycode &= 0xFF;
|
|
||||||
} else if (keycode > 0xFF) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (keycode > 0xFF) {
|
|
||||||
|
|
||||||
|
if ((keycode == KC_BSPC) && mod_config(get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL) {
|
||||||
|
memset(keylog_str, ' ', OLED_KEYLOGGER_LENGTH);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (record->tap.count) {
|
||||||
|
keycode &= 0xFF;
|
||||||
|
} else if (keycode > 0xFF) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -426,13 +430,14 @@ void render_bootmagic_status(uint8_t col, uint8_t line) {
|
|||||||
oled_write_P(logo[0][0], !is_bootmagic_on);
|
oled_write_P(logo[0][0], !is_bootmagic_on);
|
||||||
}
|
}
|
||||||
#ifndef OLED_DISPLAY_VERBOSE
|
#ifndef OLED_DISPLAY_VERBOSE
|
||||||
|
oled_write_P(PSTR(" "), false);
|
||||||
oled_write_P(logo[1][1], is_bootmagic_on);
|
oled_write_P(logo[1][1], is_bootmagic_on);
|
||||||
oled_write_P(logo[0][1], !is_bootmagic_on);
|
oled_write_P(logo[0][1], !is_bootmagic_on);
|
||||||
#endif
|
#endif
|
||||||
oled_write_P(PSTR(" "), false);
|
oled_write_P(PSTR(" "), false);
|
||||||
oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NKRO), keymap_config.nkro);
|
oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NKRO), keymap_config.nkro);
|
||||||
oled_write_P(PSTR(" "), false);
|
oled_write_P(PSTR(" "), false);
|
||||||
#if defined(AUTOCORRECTION_ENABLE) || defined(AUTOCORRECT_ENABLE)
|
#if defined(AUTOCORRECT_ENABLE)
|
||||||
oled_write_P(PSTR("CRCT"), autocorrect_is_enabled());
|
oled_write_P(PSTR("CRCT"), autocorrect_is_enabled());
|
||||||
oled_write_P(PSTR(" "), false);
|
oled_write_P(PSTR(" "), false);
|
||||||
#else
|
#else
|
||||||
@ -732,33 +737,8 @@ void render_kitty(uint8_t col, uint8_t line) {
|
|||||||
void render_unicode_mode(uint8_t col, uint8_t line) {
|
void render_unicode_mode(uint8_t col, uint8_t line) {
|
||||||
#ifdef CUSTOM_UNICODE_ENABLE
|
#ifdef CUSTOM_UNICODE_ENABLE
|
||||||
oled_set_cursor(col, line);
|
oled_set_cursor(col, line);
|
||||||
oled_write_ln_P(PSTR("Unicode:"), false);
|
oled_write_P(PSTR("Unicode:"), false);
|
||||||
switch (typing_mode) {
|
oled_write_P(unicode_mode_str[unicode_typing_mode], false);
|
||||||
case UCTM_WIDE:
|
|
||||||
oled_write_P(PSTR(" Wide"), false);
|
|
||||||
break;
|
|
||||||
case UCTM_SCRIPT:
|
|
||||||
oled_write_P(PSTR(" Script"), false);
|
|
||||||
break;
|
|
||||||
case UCTM_BLOCKS:
|
|
||||||
oled_write_P(PSTR(" Blocks"), false);
|
|
||||||
break;
|
|
||||||
case UCTM_REGIONAL:
|
|
||||||
oled_write_P(PSTR(" Regional"), false);
|
|
||||||
break;
|
|
||||||
case UCTM_AUSSIE:
|
|
||||||
oled_write_P(PSTR(" Aussie"), false);
|
|
||||||
break;
|
|
||||||
case UCTM_ZALGO:
|
|
||||||
oled_write_P(PSTR(" Zalgo"), false);
|
|
||||||
break;
|
|
||||||
case UCTM_NO_MODE:
|
|
||||||
oled_write_P(PSTR(" Normal"), false);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
oled_write_P(PSTR(" Unknown"), false);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
# define RGB_MATRIX_REST_MODE RGB_MATRIX_CYCLE_OUT_IN
|
# define RGB_MATRIX_REST_MODE RGB_MATRIX_CYCLE_OUT_IN
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
# undef RGB_MATRIX_DEFAULT_MODE
|
||||||
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_REST_MODE
|
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_REST_MODE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -128,15 +129,15 @@
|
|||||||
# define TAPPING_TERM 175
|
# define TAPPING_TERM 175
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SECURE_UNLOCK_SEQUENCE
|
#if (__has_include("../../../qmk_secrets/config.h") && !defined(NO_SECRETS))
|
||||||
# define SECURE_UNLOCK_SEQUENCE \
|
# include "../../../qmk_secrets/config.h"
|
||||||
{ \
|
|
||||||
{2, 1}, {2, 2}, {2, 3}, { \
|
|
||||||
2, 4 \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SPLIT_KEYBOARD) && defined(PROTOCOL_CHIBIOS) && !defined(USB_SUSPEND_WAKEUP_DELAY)
|
#if defined(SPLIT_KEYBOARD) && defined(PROTOCOL_CHIBIOS) && !defined(USB_SUSPEND_WAKEUP_DELAY)
|
||||||
# define USB_SUSPEND_WAKEUP_DELAY 200
|
# define USB_SUSPEND_WAKEUP_DELAY 200
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef XAP_ENABLE
|
||||||
|
# undef DYNAMIC_KEYMAP_LAYER_COUNT
|
||||||
|
# define DYNAMIC_KEYMAP_LAYER_COUNT 12
|
||||||
|
#endif
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
# define RGBLIGHT_SLEEP
|
#define RGBLIGHT_SLEEP
|
||||||
# define RGBLIGHT_EFFECT_TWINKLE_LIFE 250
|
#define RGBLIGHT_EFFECT_TWINKLE_LIFE 250
|
||||||
# define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 24
|
#define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 24
|
||||||
|
|
||||||
|
#ifdef RGBLIGHT_DEFAULT_MODE
|
||||||
|
# undef RGBLIGHT_DEFAULT_MODE
|
||||||
|
#endif
|
||||||
|
@ -132,6 +132,9 @@ ifeq ($(strip $(AUTOCORRECTION_ENABLE)), yes)
|
|||||||
AUTOCORRECT_ENABLE = yes
|
AUTOCORRECT_ENABLE = yes
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes)
|
CUSTOM_BOOTMAGIC_ENABLE ?= yes
|
||||||
SRC += bootmagic_better.c
|
ifeq ($(strip $(CUSTOM_BOOTMAGIC_ENABLE)), yes)
|
||||||
|
ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes)
|
||||||
|
SRC += bootmagic_better.c
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
@ -7,6 +7,9 @@
|
|||||||
#define SPLIT_LAYER_STATE_ENABLE
|
#define SPLIT_LAYER_STATE_ENABLE
|
||||||
#define SPLIT_LED_STATE_ENABLE
|
#define SPLIT_LED_STATE_ENABLE
|
||||||
#define SPLIT_MODS_ENABLE
|
#define SPLIT_MODS_ENABLE
|
||||||
|
#ifndef POINTING_DEVICE_ENABLE
|
||||||
|
# define SPLIT_WATCHDOG_ENABLE
|
||||||
|
#endif
|
||||||
#ifdef WPM_ENABLE
|
#ifdef WPM_ENABLE
|
||||||
# define SPLIT_WPM_ENABLE
|
# define SPLIT_WPM_ENABLE
|
||||||
#endif
|
#endif
|
||||||
@ -17,5 +20,5 @@
|
|||||||
# define SELECT_SOFT_SERIAL_SPEED 1
|
# define SELECT_SOFT_SERIAL_SPEED 1
|
||||||
#endif
|
#endif
|
||||||
#ifdef CUSTOM_SPLIT_TRANSPORT_SYNC
|
#ifdef CUSTOM_SPLIT_TRANSPORT_SYNC
|
||||||
# define SPLIT_TRANSACTION_IDS_USER RPC_ID_USER_STATE_SYNC, RPC_ID_USER_KEYMAP_SYNC, RPC_ID_USER_CONFIG_SYNC, RPC_ID_USER_WATCHDOG_SYNC, RPC_ID_USER_KEYLOG_STR
|
# define SPLIT_TRANSACTION_IDS_USER RPC_ID_USER_STATE_SYNC, RPC_ID_USER_KEYMAP_SYNC, RPC_ID_USER_CONFIG_SYNC, RPC_ID_USER_PLACEHOLDER, RPC_ID_USER_KEYLOG_STR
|
||||||
#endif
|
#endif
|
||||||
|
@ -25,11 +25,6 @@ extern bool tap_toggling;
|
|||||||
extern bool swap_hands;
|
extern bool swap_hands;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SPLIT_WATCHDOG_TIMEOUT)
|
|
||||||
static bool watchdog_ping_done = false;
|
|
||||||
static uint32_t watchdog_timer = 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern userspace_config_t userspace_config;
|
extern userspace_config_t userspace_config;
|
||||||
extern bool host_driver_disabled;
|
extern bool host_driver_disabled;
|
||||||
|
|
||||||
@ -54,12 +49,6 @@ void user_config_sync(uint8_t initiator2target_buffer_size, const void* initiato
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(SPLIT_WATCHDOG_TIMEOUT)
|
|
||||||
void watchdog_handler(uint8_t in_buflen, const void* in_data, uint8_t out_buflen, void* out_data) {
|
|
||||||
watchdog_ping_done = true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CUSTOM_OLED_DRIVER
|
#ifdef CUSTOM_OLED_DRIVER
|
||||||
# include "oled/oled_stuff.h"
|
# include "oled/oled_stuff.h"
|
||||||
void keylogger_string_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) {
|
void keylogger_string_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) {
|
||||||
@ -77,14 +66,6 @@ void keyboard_post_init_transport_sync(void) {
|
|||||||
#ifdef CUSTOM_OLED_DRIVER
|
#ifdef CUSTOM_OLED_DRIVER
|
||||||
transaction_register_rpc(RPC_ID_USER_KEYLOG_STR, keylogger_string_sync);
|
transaction_register_rpc(RPC_ID_USER_KEYLOG_STR, keylogger_string_sync);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SPLIT_WATCHDOG_TIMEOUT)
|
|
||||||
# if defined(PROTOCOL_LUFA)
|
|
||||||
wdt_disable();
|
|
||||||
# endif
|
|
||||||
transaction_register_rpc(RPC_ID_USER_WATCHDOG_SYNC, watchdog_handler);
|
|
||||||
watchdog_timer = timer_read32();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void user_transport_update(void) {
|
void user_transport_update(void) {
|
||||||
@ -103,7 +84,7 @@ void user_transport_update(void) {
|
|||||||
#endif
|
#endif
|
||||||
#ifdef UNICODE_COMMON_ENABLE
|
#ifdef UNICODE_COMMON_ENABLE
|
||||||
user_state.unicode_mode = unicode_config.input_mode;
|
user_state.unicode_mode = unicode_config.input_mode;
|
||||||
user_state.unicode_typing_mode = typing_mode;
|
user_state.unicode_typing_mode = unicode_typing_mode;
|
||||||
#endif
|
#endif
|
||||||
#ifdef SWAP_HANDS_ENABLE
|
#ifdef SWAP_HANDS_ENABLE
|
||||||
user_state.swap_hands = swap_hands;
|
user_state.swap_hands = swap_hands;
|
||||||
@ -117,7 +98,7 @@ void user_transport_update(void) {
|
|||||||
user_state.raw = transport_user_state;
|
user_state.raw = transport_user_state;
|
||||||
#ifdef UNICODE_COMMON_ENABLE
|
#ifdef UNICODE_COMMON_ENABLE
|
||||||
unicode_config.input_mode = user_state.unicode_mode;
|
unicode_config.input_mode = user_state.unicode_mode;
|
||||||
typing_mode = user_state.unicode_typing_mode;
|
unicode_typing_mode = user_state.unicode_typing_mode;
|
||||||
#endif
|
#endif
|
||||||
#if defined(OLED_ENABLE) && !defined(SPLIT_OLED_ENABLE) && defined(CUSTOM_OLED_DRIVER)
|
#if defined(OLED_ENABLE) && !defined(SPLIT_OLED_ENABLE) && defined(CUSTOM_OLED_DRIVER)
|
||||||
is_oled_enabled = user_state.is_oled_enabled;
|
is_oled_enabled = user_state.is_oled_enabled;
|
||||||
@ -219,28 +200,6 @@ void user_transport_sync(void) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(SPLIT_WATCHDOG_TIMEOUT)
|
|
||||||
if (!watchdog_ping_done) {
|
|
||||||
if (is_keyboard_master()) {
|
|
||||||
if (timer_elapsed32(watchdog_timer) > 100) {
|
|
||||||
uint8_t any_data = 1;
|
|
||||||
if (transaction_rpc_send(RPC_ID_USER_WATCHDOG_SYNC, sizeof(any_data), &any_data)) {
|
|
||||||
watchdog_ping_done = true; // successful ping
|
|
||||||
} else {
|
|
||||||
dprint("Watchdog ping failed!\n");
|
|
||||||
}
|
|
||||||
watchdog_timer = timer_read32();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (timer_elapsed32(watchdog_timer) > 3500) {
|
|
||||||
mcu_reset();
|
|
||||||
while (1) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void housekeeping_task_transport_sync(void) {
|
void housekeeping_task_transport_sync(void) {
|
||||||
|
Loading…
Reference in New Issue
Block a user