-
-
Notifications
You must be signed in to change notification settings - Fork 150
Open
Description
Now defining keymap and layout in Rust code is cumbersome. An approach is to reuse the matrix_map and layers parsing, add a proc-macro for defining keymap in Rust code, like:
// keymap.rs
const KEYMAP: [[[KeyAction; COL]; ROW]; NUM_LAYER] = keymap! {
matrix_map: "
(0,0) (0,1) (0,2)
(1,0) (1,1) (1,2)
",
layers: [
{
layer: 0,
name: "base_layer",
layout: "
A B C
D E F
"
},
{
layer: 1,
name: "fn_layer",
layout: "
F1 F2 F3
F4 F5 F6
"
}
]
}
// Alternative
const KEYMAP: [[[KeyAction; COL]; ROW]; NUM_LAYER] = keymap! {
matrix_map: "
(0,0) (0,1) (0,2)
(1,0) (1,1) (1,2)
"
layer(layer = 0, name = "base_layer"): "
A B C
D E F
"
layer(layer = 1, name = "fn_layer"): "
F1 F2 F3
F4 F5 F6
"
}Metadata
Metadata
Assignees
Labels
No labels