12345678910111213141516171819202122232425262728293031323334353637 |
- #define ENABLE_ONESHOT
- #ifdef ENABLE_ONESHOT
- #pragma once
- typedef enum {
- ONESHOT_LCTL = 0,
- ONESHOT_LSFT = 1,
- ONESHOT_LALT = 2,
- ONESHOT_LGUI = 3,
- ONESHOT_RCTL = 4,
- ONESHOT_RSFT = 5,
- ONESHOT_RALT = 6,
- ONESHOT_RGUI = 7,
- ONESHOT_NONE = 8,
- ONESHOT_MOD_COUNT = 8,
- } oneshot_mod;
- // This function should be called inside proces_record_user and does everything needed to get one shot modifiers working.
- // Returns true if the keycode needs further handling, false otherwise.
- int8_t update_oneshot_modifiers(uint16_t keycode, keyrecord_t *record, int8_t keycode_consumed);
- int8_t turnoff_oneshot_modifiers(void);
- // TO BE IMPLEMENTED BY THE USER
- // This function should return one of the oneshot_mod enumerations (see keymap.c implementation)
- oneshot_mod get_modifier_for_trigger_key(uint16_t keycode);
- // TO BE IMPLEMENTED BY THE USER
- // This function should return true for keycodes that must be ignored in the oneshot modifier behaviour.
- // You probably want to ignore layer keys. Trigger keys don't need to be specified here.
- bool is_oneshot_modifier_ignored_key(uint16_t keycode);
- // TO BE IMPLEMENTED BY THE USER
- // This function should return true for keycodes that should reset all oneshot modifiers.
- bool is_oneshot_modifier_cancel_key(uint16_t keycode);
- #endif
|