Skip to main content

ModifierKey

Enum ModifierKey 

pub enum ModifierKey {
    Hold(u32, KeyboardModifiers),
    Toggle(u32),
    Sticky(u32),
    SetActiveLayers(ModifierBitset),
    Default(u32),
    Lock(LayerLockTarget),
}
Expand description

Modifier layer key affects what layers are active.

Variants§

§

Hold(u32, KeyboardModifiers)

Activates the given layer when held.

§

Toggle(u32)

Toggles whether the given layer is active when pressed.

§

Sticky(u32)

Sticky layer modifier, similar to sticky modifier key.

Acts the same as Hold variant if interrupted. If tapped, then the layer is activated for the next key tap.

§

SetActiveLayers(ModifierBitset)

Sets the set of active layers to the given layers when the key is pressed.

§

Default(u32)

Sets the default layer.

§

Lock(LayerLockTarget)

Layer lock key.

Inverts lock on the LayerLockTarget: if unlocked, lock and activate; if locked, unlock and deactivate.

While a layer is locked, releasing a ModifierKey::Hold that activated it leaves the layer active. Pressing that ModifierKey::Hold again unlocks and turns the layer off.

Implementations§

§

impl ModifierKey

pub const fn hold(layer: u32) -> ModifierKey

Create a new ModifierKey that activates the given layer when held.

pub const fn with_keyboard_modifiers( self, mods: KeyboardModifiers, ) -> ModifierKey

Adds keyboard modifiers to a Hold modifier key.

pub const fn sticky(layer: u32) -> ModifierKey

Create a new ModifierKey that activates the layer when held, or makes it sticky when tapped.

pub const fn toggle(layer: u32) -> ModifierKey

Create a new ModifierKey that toggles the given layer.

pub const fn set_active_layers(layers: &[u32]) -> ModifierKey

Create a new ModifierKey that sets the active layers to the given slice of layers when pressed.

Each LayerIndex in the slice must be at most MAX_BITSET_LAYER.

pub const fn set_active_layers_from_bitset(bitset: LayerBitset) -> ModifierKey

Create a new ModifierKey that sets the active layers bitset.

pub const fn set_active_layers_from_bitset_with_mask( layers: LayerBitset, mask: LayerBitset, ) -> ModifierKey

Create a new ModifierKey that sets the active layers bitset.

pub const fn default(layer: u32) -> ModifierKey

Create a new ModifierKey that sets the default layer.

pub const fn lock() -> ModifierKey

Create a ModifierKey::Lock that targets the highest currently active layer.

pub const fn lock_layer(layer: u32) -> ModifierKey

Create a ModifierKey::Lock that targets a specific layer.

pub fn new_pressed_key(&self) -> (ModifierKeyState, Option<LayerEvent>)

Create a new input::PressedKey and key::ScheduledEvent for the given keymap index.

Pressing a ModifierKey::Hold emits a LayerEvent::Activated event.

Trait Implementations§

§

impl Clone for ModifierKey

§

fn clone(&self) -> ModifierKey

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Copy for ModifierKey

§

impl Debug for ModifierKey

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for ModifierKey

§

fn deserialize<__D>( __deserializer: __D, ) -> Result<ModifierKey, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl PartialEq for ModifierKey

§

fn eq(&self, other: &ModifierKey) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl StructuralPartialEq for ModifierKey

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.