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§
- crate::key::Context for LayeredKey that tracks active layers.
- A key whose behavior depends on which layer is active.
- Unit-like struct, for crate::key::PressedKeyState of ModifierKey.
Enums§
- Events from ModifierKey which affect Context.
- Errors when constructing Layers.
- Modifier layer key affects what layers are active.
Constants§
- The default Context with no active layers.
Traits§
- Tracks state of active layers.
- Trait for layers of LayeredKey.
Functions§
- Constructs an array of keys for the given array.
Type Aliases§
- The type used for layer index.