diff --git a/src/button.rs b/src/button.rs index 8d2d8ff..d387e85 100644 --- a/src/button.rs +++ b/src/button.rs @@ -26,7 +26,7 @@ impl From for u8 { pub enum Button { Mod(Modifier), Key(Key), - ModTap { keycode: Key, modifier: Modifier }, + ModTap(Key, Modifier), NextLayer, PrevLayer, None, @@ -36,11 +36,28 @@ impl Display for Button { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Button::Mod(modifier) => Debug::fmt(&modifier, f), - Button::Key(keycode) => write!(f, "{keycode:?}"), - Button::ModTap { keycode, modifier } => write!(f, "{keycode:?}/{modifier:?}"), + Button::Key(key) => write!(f, "{key:?}"), + Button::ModTap(key, modifier) => write!(f, "{key:?}/{modifier}"), Button::NextLayer => write!(f, "↘"), Button::PrevLayer => write!(f, "↖"), Button::None => write!(f, "Ø"), } } } + +impl Display for Modifier { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let s = match self { + Modifier::LCtrl => "⎈", + Modifier::LShift => "⇧", + Modifier::LAlt => "⎇", + Modifier::LMod => "◆", + Modifier::RCtrl => "⎈", + Modifier::RShift => "⇧", + Modifier::RAlt => "⎇", + Modifier::RMod => "◆", + }; + + write!(f, "{s}") + } +}