diff --git a/src/button.rs b/src/button.rs index d626a32..ee074e4 100644 --- a/src/button.rs +++ b/src/button.rs @@ -29,12 +29,24 @@ pub enum Button { Key(Key), ModTap(Key, Modifier), Compose(Key, Key, Option), - 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, "Ø"), } }