1use super::CONST_CONFIG;
4
5pub mod keymanager {
9 pub use rktk_keymanager::keycode;
10 pub use rktk_keymanager::keymap;
11}
12
13pub mod rktk_keys {
14 use rktk_keymanager::keycode::prelude::*;
15
16 macro_rules! gen_rktk_keys {
17 ($($name:ident = $value:literal),* $(,)?) => {
18 #[derive(
23 Debug, Clone, Copy, PartialEq, Eq, strum::EnumIter, strum::IntoStaticStr, strum::FromRepr,
24 )]
25 #[repr(u8)]
26 pub enum RktkKeys {
27 $(
28 $name = $value,
29 )*
30 }
31
32 paste::paste! {
33 $(pub const [<$name:snake:upper>] : KeyAction = KeyAction::Normal(KeyCode::Custom1($value));)*
34 }
35 };
36 }
37
38 gen_rktk_keys! {
39 FlashClear = 0,
40 OutputBle = 1,
41 OutputUsb = 2,
42 BleBondClear = 3,
43 Bootloader = 4,
44 PowerOff = 5,
45 RgbOff = 6,
46 RgbBrightnessUp = 7,
47 RgbBrightnessDown = 8,
48 RgbPatternRainbow = 9,
49 }
50
51 use core::fmt::{self, Display, Formatter};
52 impl Display for RktkKeys {
53 fn fmt(&self, f: &mut Formatter) -> fmt::Result {
54 let s: &'static str = self.into();
55 write!(f, "{s}")
56 }
57 }
58}
59
60pub mod prelude {
61 pub use super::rktk_keys::*;
62 pub use rktk_keymanager::keycode::prelude::*;
63}
64
65pub type Keymap = rktk_keymanager::keymap::Keymap<
66 { CONST_CONFIG.key_manager.layer_count as usize },
67 { CONST_CONFIG.keyboard.rows as usize },
68 { CONST_CONFIG.keyboard.cols as usize },
69 { CONST_CONFIG.keyboard.encoder_count as usize },
70 { CONST_CONFIG.key_manager.tap_dance_max_definitions },
71 { CONST_CONFIG.key_manager.tap_dance_max_repeats },
72 { CONST_CONFIG.key_manager.combo_key_max_definitions },
73 { CONST_CONFIG.key_manager.combo_key_max_sources },
74>;
75
76pub type Layer = rktk_keymanager::keymap::Layer<
77 { CONST_CONFIG.keyboard.rows as usize },
78 { CONST_CONFIG.keyboard.cols as usize },
79 { CONST_CONFIG.keyboard.encoder_count as usize },
80>;
81
82pub type LayerKeymap = rktk_keymanager::keymap::LayerKeymap<
83 { CONST_CONFIG.keyboard.rows as usize },
84 { CONST_CONFIG.keyboard.cols as usize },
85>;