Module layered

Source
Expand description

Layered keys. (Layering functionality).

§Layer Modifier Keys

§JSON

use smart_keymap::key::layered::ModifierKey;

let json = r#"
  { "Hold": 2 }
"#;
let expected_key: ModifierKey = ModifierKey::Hold(2);
let actual_key: ModifierKey = serde_json::from_str(json).unwrap();
assert_eq!(expected_key, actual_key);

§Layered Keys

§JSON

use smart_keymap::key;

use key::{composite, keyboard, layered};

type Key = layered::LayeredKey<keyboard::Key>;

let json = r#"
  {
    "base": { "key_code": 4 },
    "layered": [{ "key_code": 5 }, null, { "key_code": 7 }]
  }
"#;
let expected_key: Key = layered::LayeredKey::new(
  keyboard::Key::new(0x04),
  [Some(keyboard::Key::new(0x05)), None, Some(keyboard::Key::new(0x07))],
);
let actual_key: Key = serde_json::from_str(json).unwrap();
assert_eq!(expected_key, actual_key);

Re-exports§

pub use crate::init::LAYER_COUNT;

Structs§

Context
crate::key::Context for LayeredKey that tracks active layers.
LayeredKey
A key whose behavior depends on which layer is active.
ModifierKeyState
crate::key::KeyState of ModifierKey.

Enums§

LayerEvent
Events from ModifierKey which affect Context.
LayersError
Errors when constructing Layers.
ModifierKey
Modifier layer key affects what layers are active.

Constants§

DEFAULT_CONTEXT
The default Context with no active layers.

Traits§

LayerState
Tracks state of active layers.
Layers
Trait for layers of LayeredKey.

Functions§

layered_keys
Constructs an array of keys for the given array.

Type Aliases§

LayerIndex
The type used for layer index.