1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/// Shift — upward arrow (⇧)
/// ```text
/// ...##...
/// ..####..
/// .######.
/// ...##...
/// ...##...
/// ...##...
/// ...##...
/// ........
/// ```
pub const SHIFT: = ;
/// Ctrl — chevron/caret (^)
/// ```text
/// ........
/// ...##...
/// ..####..
/// .##..##.
/// ##....##
/// ........
/// ........
/// ........
/// ```
pub const CTRL: = ;
/// Alt — letter A
/// ```text
/// ...##...
/// ..#..#..
/// .#....#.
/// .######.
/// .#....#.
/// .#....#.
/// ........
/// ........
/// ```
pub const ALT: = ;
/// GUI — four squares (⊞ Windows logo)
/// ```text
/// ........
/// .##.##.
/// .##.##.
/// ........
/// .##.##.
/// .##.##.
/// ........
/// ........
/// ```
pub const GUI: = ;
pub const ICON_SIZE: u32 = 8;
/// Bluetooth logo — 9×14, rounded rect with ᛒ rune in negative space.
/// Ported from zmk-dongle-display (englmaxi).
///
/// ```text
/// ..#####..
/// .##..###.
/// ###...###
/// ###.#..##
/// #...##..#
/// ##..#..##
/// ###...###
/// ###...###
/// ##..#..##
/// #...##..#
/// ###.#..##
/// ###...###
/// .##..###.
/// ..#####..
/// ```
pub const BT_ICON: = ;
pub const BT_ICON_W: u32 = 9;
pub const BT_ICON_H: u32 = 14;
/// Checkmark (✓) — 7 active rows to match CROSS visual weight
/// ```text
/// .......#
/// ......#.
/// .....#..
/// ....#...
/// #..#....
/// .##.....
/// .##.....
/// ........
/// ```
pub const CHECK: = ;
/// Cross / X (✗)
/// ```text
/// #.....#.
/// .#...#..
/// ..#.#...
/// ...#....
/// ..#.#...
/// .#...#..
/// #.....#.
/// ........
/// ```
pub const CROSS: = ;