#[macro_export]
macro_rules! layer {
([$([$($x: expr), +]), +]) => {
[$([$($x), +]),+]
};
}
#[macro_export]
macro_rules! k {
($k: ident) => {
$crate::types::action::KeyAction::Single($crate::types::action::Action::Key(
$crate::types::keycode::KeyCode::$k,
))
};
}
#[macro_export]
macro_rules! wm {
($x: ident, $m: expr) => {
$crate::types::action::KeyAction::Single($crate::types::action::Action::KeyWithModifier(
$crate::types::keycode::KeyCode::$x,
$m,
))
};
}
#[macro_export]
macro_rules! a {
($a: ident) => {
$crate::types::action::KeyAction::$a
};
}
#[macro_export]
macro_rules! mo {
($x: literal) => {
$crate::types::action::KeyAction::Single($crate::types::action::Action::LayerOn($x))
};
}
#[macro_export]
macro_rules! lm {
($x: literal, $m: expr) => {
$crate::types::action::KeyAction::Single($crate::types::action::Action::LayerOnWithModifier($x, $m))
};
}
#[macro_export]
macro_rules! lt {
($x: literal, $k: ident) => {
$crate::types::action::KeyAction::TapHold(
$crate::types::action::Action::Key($crate::types::keycode::KeyCode::$k),
$crate::types::action::Action::LayerOn($x),
$crate::types::action::MorseProfile::const_default(),
)
};
}
#[macro_export]
macro_rules! ltp {
($x: literal, $k: ident, $p: expr) => {
$crate::types::action::KeyAction::TapHold(
$crate::types::action::Action::Key($crate::types::keycode::KeyCode::$k),
$crate::types::action::Action::LayerOn($x),
$p,
)
};
}
#[macro_export]
macro_rules! mt {
($k: ident, $m: expr) => {
$crate::types::action::KeyAction::TapHold(
$crate::types::action::Action::Key($crate::types::keycode::KeyCode::$k),
$crate::types::action::Action::Modifier($m),
$crate::types::action::MorseProfile::const_default(),
)
};
}
#[macro_export]
macro_rules! mtp {
($k: ident, $m: expr, $p: expr) => {
$crate::types::action::KeyAction::TapHold(
$crate::types::action::Action::Key($crate::types::keycode::KeyCode::$k),
$crate::types::action::Action::Modifier($m),
$p,
)
};
}
#[macro_export]
macro_rules! th {
($t: ident, $h: ident) => {
$crate::types::action::KeyAction::TapHold(
$crate::types::action::Action::Key($crate::types::keycode::KeyCode::$t),
$crate::types::action::Action::Key($crate::types::keycode::KeyCode::$h),
$crate::types::action::MorseProfile::const_default(),
)
};
}
#[macro_export]
macro_rules! thp {
($t: ident, $h: ident, $p: expr) => {
$crate::types::action::KeyAction::TapHold(
$crate::types::action::Action::Key($crate::types::keycode::KeyCode::$t),
$crate::types::action::Action::Key($crate::types::keycode::KeyCode::$h),
$p,
)
};
}
#[macro_export]
macro_rules! osl {
($x: literal) => {
$crate::types::action::KeyAction::Single($crate::types::action::Action::OneShotLayer($x))
};
}
#[macro_export]
macro_rules! osm {
($m: expr) => {
$crate::types::action::KeyAction::Single($crate::types::action::Action::OneShotModifier($m))
};
}
#[macro_export]
macro_rules! tg {
($x: literal) => {
$crate::types::action::KeyAction::Single($crate::types::action::Action::LayerToggle($x))
};
}
#[macro_export]
macro_rules! tt {
($x: literal) => {
$crate::types::action::KeyAction::TapHold(
$crate::types::action::Action::LayerToggle($x),
$crate::types::action::Action::LayerOn($x),
$crate::types::action::MorseProfile::const_default(),
)
};
}
#[macro_export]
macro_rules! ttp {
($x: literal, $p: expr) => {
$crate::types::action::KeyAction::TapHold(
$crate::types::action::Action::LayerToggle($x),
$crate::types::action::Action::LayerOn($x),
$p,
)
};
}
#[macro_export]
macro_rules! to {
($x: literal) => {
$crate::types::action::KeyAction::Single($crate::types::action::Action::LayerToggleOnly($x))
};
}
#[macro_export]
macro_rules! df {
($x: literal) => {
$crate::types::action::KeyAction::Single($crate::types::action::Action::DefaultLayer($x))
};
}
#[macro_export]
macro_rules! shifted {
($x: ident) => {
$crate::wm!(
$x,
$crate::types::modifier::ModifierCombination::new_from(false, false, false, true, false)
)
};
}
#[macro_export]
macro_rules! encoder {
($clockwise: expr, $counter_clockwise: expr) => {
$crate::types::action::EncoderAction::new($clockwise, $counter_clockwise)
};
}
#[macro_export]
macro_rules! td {
($index: literal) => {
$crate::types::action::KeyAction::Morse($index)
};
}
#[macro_export]
macro_rules! morse {
($index: literal) => {
$crate::types::action::KeyAction::Morse($index)
};
}
#[macro_export]
macro_rules! macros {
($index: literal) => {
$crate::types::action::KeyAction::Single($crate::types::action::Action::TriggerMacro($index))
};
}