Eric Gebhart user space and keymaps (#17487)
Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
parent
49a78b8114
commit
050472a4d0
147 changed files with 13177 additions and 4102 deletions
37
users/ericgebhart/extensions/oneshot.h
Normal file
37
users/ericgebhart/extensions/oneshot.h
Normal file
|
@ -0,0 +1,37 @@
|
|||
#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
|
Loading…
Add table
Add a link
Reference in a new issue