#[non_exhaustive]pub enum KeyAction {
No,
Transparent,
Single(Action),
Tap(Action),
TapHold(Action, Action, u8),
Morse(u8),
}Expand description
A KeyAction is the action at a keyboard position, stored in keymap. It can be a single action like triggering a key, or a composite keyboard action like tap/hold
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
No
No action
Transparent
Transparent action, next layer will be checked
Single(Action)
A single action, such as triggering a key, or activating a layer. Action is triggered when pressed and cancelled when released.
Tap(Action)
Don’t wait the release of the key, auto-release after a time threshold.
TapHold(Action, Action, u8)
Tap hold action. The u8 indexes the morse profile table; an index
with no table entry (e.g. u8::MAX, which the default-profile macros
emit) falls back to the default crate::morse::MorseProfile.
Morse(u8)
Morse action, references a morse configuration by index.
Implementations§
Source§impl KeyAction
impl KeyAction
Sourcepub fn to_action(self) -> Action
pub fn to_action(self) -> Action
Convert KeyAction to the internal Action.
Only valid for Single and Tap variant, returns Action::No for other variants.
Sourcepub fn is_morse(&self) -> bool
pub fn is_morse(&self) -> bool
‘morse’ is an alias for the superset of tap dance and tap hold keys, since their handling have many similarities
pub fn is_empty(&self) -> bool
Trait Implementations§
impl Copy for KeyAction
Source§impl<'de> Deserialize<'de> for KeyAction
impl<'de> Deserialize<'de> for KeyAction
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for KeyAction
Source§impl MaxSize for KeyAction
impl MaxSize for KeyAction
Source§const POSTCARD_MAX_SIZE: usize
const POSTCARD_MAX_SIZE: usize
Source§impl PartialEq for KeyAction
Combo and fork trigger matching compares key actions by their “identity” —
the tap/hold actions — ignoring the profile-table index.
impl PartialEq for KeyAction
Combo and fork trigger matching compares key actions by their “identity” — the tap/hold actions — ignoring the profile-table index.
This is intentional: a combo or fork may store a trigger with one profile index, but if the user later rebinds the key’s profile, the trigger should still match. The profile is a per-key timing config, not part of the key’s logical identity.