Make Layer shifting two-dimensional

This commit is contained in:
2023-08-28 13:53:24 +02:00
parent 727e0bbd72
commit c34c317f4e

View File

@ -29,12 +29,24 @@ pub enum Button {
Key(Key),
ModTap(Key, Modifier),
Compose(Key, Key, Option<Key>),
NextLayer,
PrevLayer,
HoldLayer(u16),
Layer(LayerShift, LayerDir, u16),
None,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum LayerDir {
Left,
Right,
Up,
Down,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum LayerShift {
Move,
Peek,
}
impl Display for Button {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
@ -43,9 +55,7 @@ impl Display for Button {
Button::ModTap(key, modifier) => write!(f, "{key:?}/{modifier}"),
Button::Compose(k1, k2, None) => write!(f, "⎄ {k1:?} {k2:?}"),
Button::Compose(k1, k2, Some(k3)) => write!(f, "⎄ {k1:?} {k2:?} {k3:?}"),
Button::NextLayer => write!(f, ""),
Button::PrevLayer => write!(f, ""),
Button::HoldLayer(layer) => write!(f, "HL{layer}"),
Button::Layer(..) => write!(f, "Lr"),
Button::None => write!(f, "Ø"),
}
}