Skip to main content

rpk_common/
keycodes.rs

1pub mod key_range {
2    pub const MAX_LAYER_N: u16 = 0xff;
3
4    pub const LAYER: u16 = 0x600;
5    pub const TOGGLE: u16 = 0x700;
6    pub const SET_LAYOUT: u16 = 0x800;
7    pub const ONESHOT: u16 = 0x900;
8    pub const REPLACE_LAYERS: u16 = 0xa00;
9    pub const LAYERS_LAST: u16 = REPLACE_LAYERS + MAX_LAYER_N;
10
11    pub const BASIC_MIN: u16 = 0x4;
12    pub const BASIC_A: u16 = 0x4;
13    pub const BASIC_1: u16 = 0x1e;
14    pub const BASIC_0: u16 = 0x27;
15    pub const BASIC_MAX: u16 = 0xfe;
16    pub const MODIFIER_MIN: u16 = 0xe0;
17    pub const MODIFIER_MAX: u16 = 0xe7;
18    pub const CONSUMER_MIN: u16 = 0x100;
19    pub const CONSUMER_MAX: u16 = 0x3a0;
20    pub const SYS_CTL_MIN: u16 = 0x3a1;
21    pub const SYS_CTL_MAX: u16 = 0x3d5;
22    pub const MOUSE_MIN: u16 = 0x400;
23    pub const MOUSE_MAX: u16 = MOUSE_MIN + 0xff;
24
25    pub const LAYER_MIN: u16 = LAYER;
26    pub const LAYER_MAX: u16 = LAYER_MIN + MAX_LAYER_N;
27    pub const TOGGLE_MIN: u16 = TOGGLE;
28    pub const TOGGLE_MAX: u16 = TOGGLE_MIN + MAX_LAYER_N;
29    pub const SET_LAYOUT_MIN: u16 = SET_LAYOUT;
30    pub const SET_LAYOUT_MAX: u16 = SET_LAYOUT_MIN + MAX_LAYER_N;
31    pub const ONESHOT_MIN: u16 = ONESHOT;
32    pub const ONESHOT_MAX: u16 = ONESHOT_MIN + MAX_LAYER_N;
33    pub const REPLACE_LAYERS_MIN: u16 = REPLACE_LAYERS;
34    pub const REPLACE_LAXERS_MAX: u16 = REPLACE_LAYERS_MIN + MAX_LAYER_N;
35
36    pub const MACROS_MIN: u16 = 0x1000;
37    pub const MACROS_MAX: u16 = 0x1fff;
38
39    pub const FIRMWARE_MIN: u16 = MACROS_MAX + 1;
40    pub const FIRMWARE_MAX: u16 = FIRMWARE_MIN + 0xff;
41
42    pub const FW_RESET_KEYBOARD: u16 = FIRMWARE_MIN;
43    pub const FW_RESET_TO_USB_BOOT: u16 = FIRMWARE_MIN + 1;
44    pub const FW_CLEAR_ALL: u16 = FIRMWARE_MIN + 2;
45    pub const FW_CLEAR_LAYERS: u16 = FIRMWARE_MIN + 3;
46    pub const FW_STOP_ACTIVE: u16 = FIRMWARE_MIN + 4;
47
48    pub const MOUSE_BUTTON: u16 = 0;
49    pub const MOUSE_BUTTON_END: u16 = 7;
50    pub const MOUSE_DELTA: u16 = MOUSE_BUTTON_END + 1;
51    pub const MOUSE_DELTA_END: u16 = MOUSE_DELTA + 7;
52    pub const MOUSE_ACCEL: u16 = MOUSE_DELTA_END + 1;
53    pub const MOUSE_ACCEL_END: u16 = MOUSE_ACCEL + 2;
54
55    pub const SYS_CTL_BASE: u16 = 0x81;
56
57    pub fn base_code(code: u16) -> u16 {
58        code & 0xff00
59    }
60}
61
62pub mod macro_types {
63    pub const MODIFIER: u16 = 0;
64    pub const DUAL_ACTION: u16 = 1;
65    pub const TAP: u16 = 2;
66    pub const HOLD_RELEASE: u16 = 3;
67    pub const HOLD: u16 = 4;
68    pub const RELEASE: u16 = 5;
69    pub const DELAY: u16 = 6;
70}