diff --git a/common/config.h b/common/config.h index 164154b..0a6f726 100644 --- a/common/config.h +++ b/common/config.h @@ -5,6 +5,15 @@ #pragma once +// we don't have any lock switches +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +// deactivate more features +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION +#define NO_MUSIC_MODE + // enable NKRO by default #define FORCE_NKRO @@ -26,6 +35,9 @@ #define SPLIT_MODS_ENABLE #define SPLIT_OLED_ENABLE +// select hand configuration +#define SPLIT_USB_DETECT + // // underglow configuration // diff --git a/common/keymap.h b/common/keymap.h index ef712af..2af3c81 100644 --- a/common/keymap.h +++ b/common/keymap.h @@ -96,6 +96,17 @@ char chordal_hold_handedness(keypos_t key) return (key.row < MATRIX_ROWS / 2) ? 'L' : 'R'; } +bool get_chordal_hold(uint16_t tap_hold_keycode, keyrecord_t* tap_hold_record, + uint16_t other_keycode, keyrecord_t* other_record) { + // Allow hold between any pair of mod-tap keys. + if (IS_QK_MOD_TAP(tap_hold_keycode) && IS_QK_MOD_TAP(other_keycode)) { + return true; + } + + // Otherwise defer to the opposite hands rule. + return get_chordal_hold_default(tap_hold_record, other_record); +} + #ifndef CC_NO_LED void keyboard_post_init_user(void) { @@ -147,3 +158,14 @@ layer_state_t layer_state_set_user(layer_state_t state) { } #endif + +// Simplify unused magic config functions +#ifndef MAGIC_ENABLE +uint8_t mod_config(uint8_t mod) { return mod; } +uint16_t keycode_config(uint16_t keycode) { return keycode; } +#endif + +// Reduce marix scanning delay +#ifndef DIRECT_PINS +void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } +#endif diff --git a/rules.mk b/rules.mk index 4b9859f..dc1f7b2 100644 --- a/rules.mk +++ b/rules.mk @@ -1,8 +1,20 @@ # Enable N-Key Rollover NKRO_ENABLE = yes +# less features we don't use +COMMAND_ENABLE = no +CONSOLE_ENABLE = no +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +MOUSEKEY_ENABLE = no +MUSIC_ENABLE = no +SPACE_CADET_ENABLE = no + # add bongocat & luna for OLEDs ifeq ($(strip $(OLED_ENABLE)), yes) SRC += features/oled_bongocat.c SRC += features/oled_luna.c endif + +# good optimizations +LTO_ENABLE = yes