#[macro_export]
macro_rules! layer {
([$([$($x: expr), +]), +]) => {
[$([$($x), +]),+]
};
}
#[macro_export]
macro_rules! k {
($k: ident) => {
$crate::action::KeyAction::Single($crate::action::Action::Key($crate::keycode::KeyCode::$k))
};
}
#[macro_export]
macro_rules! a {
($a: ident) => {
$crate::action::KeyAction::$a
};
}
#[macro_export]
macro_rules! mk {
($k: ident) => {
$crate::action::KeyAction::Single($crate::action::Action::MouseKey(
$crate::keycode::KeyCode::$k,
))
};
}
#[macro_export]
macro_rules! sc {
($k: ident) => {
$crate::action::KeyAction::Single($crate::action::Action::SystemControl(
$crate::keycode::KeyCode::$k,
))
};
}
#[macro_export]
macro_rules! cc {
($k: ident) => {
$crate::action::KeyAction::Single($crate::action::Action::ConsumerControl(
$crate::keycode::KeyCode::$k,
))
};
}
#[macro_export]
macro_rules! mo {
($x: literal) => {
$crate::action::KeyAction::Single($crate::action::Action::LayerOn($x))
};
}
#[macro_export]
macro_rules! lm {
($x: literal, $m: expr) => {
$crate::action::KeyAction::WithModifier($crate::action::Action::LayerOn($x), $m)
};
}
#[macro_export]
macro_rules! lt {
($x: literal, $k: ident) => {
$crate::action::KeyAction::TapHold(
$crate::keycode::KeyCode::$k,
$crate::action::Action::LayerOn($x),
)
};
}
#[macro_export]
macro_rules! osl {
($x: literal) => {
$crate::action::KeyAction::OneShot($crate::action::Action::LayerOn($x))
};
}
#[macro_export]
macro_rules! tg {
($x: literal) => {
$crate::action::KeyAction::Single($crate::action::Action::LayerToggle($x))
};
}
#[macro_export]
macro_rules! tt {
($x: literal) => {
$crate::action::TapHold(
$crate::action::Action::LayerToggle($x),
$crate::action::Action::LayerOn($x),
)
};
}