Make Layer shifting two-dimensional
This commit is contained in:
@ -29,12 +29,24 @@ pub enum Button {
|
|||||||
Key(Key),
|
Key(Key),
|
||||||
ModTap(Key, Modifier),
|
ModTap(Key, Modifier),
|
||||||
Compose(Key, Key, Option<Key>),
|
Compose(Key, Key, Option<Key>),
|
||||||
NextLayer,
|
Layer(LayerShift, LayerDir, u16),
|
||||||
PrevLayer,
|
|
||||||
HoldLayer(u16),
|
|
||||||
None,
|
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 {
|
impl Display for Button {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
match self {
|
match self {
|
||||||
@ -43,9 +55,7 @@ impl Display for Button {
|
|||||||
Button::ModTap(key, modifier) => write!(f, "{key:?}/{modifier}"),
|
Button::ModTap(key, modifier) => write!(f, "{key:?}/{modifier}"),
|
||||||
Button::Compose(k1, k2, None) => write!(f, "⎄ {k1:?} {k2:?}"),
|
Button::Compose(k1, k2, None) => write!(f, "⎄ {k1:?} {k2:?}"),
|
||||||
Button::Compose(k1, k2, Some(k3)) => write!(f, "⎄ {k1:?} {k2:?} {k3:?}"),
|
Button::Compose(k1, k2, Some(k3)) => write!(f, "⎄ {k1:?} {k2:?} {k3:?}"),
|
||||||
Button::NextLayer => write!(f, "↘"),
|
Button::Layer(..) => write!(f, "Lr"),
|
||||||
Button::PrevLayer => write!(f, "↖"),
|
|
||||||
Button::HoldLayer(layer) => write!(f, "HL{layer}"),
|
|
||||||
Button::None => write!(f, "Ø"),
|
Button::None => write!(f, "Ø"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user