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
use crate::{DecodedKey, HandleControl, KeyCode, KeyboardLayout, Modifiers};
pub use super::us104::Us104Key;
pub struct Uk105Key;
impl KeyboardLayout for Uk105Key {
fn map_keycode(
keycode: KeyCode,
modifiers: &Modifiers,
handle_ctrl: HandleControl,
) -> DecodedKey {
match keycode {
KeyCode::BackTick => {
if modifiers.alt_gr {
DecodedKey::Unicode('|')
} else if modifiers.is_shifted() {
DecodedKey::Unicode('¬')
} else {
DecodedKey::Unicode('`')
}
}
KeyCode::Key2 => {
if modifiers.is_shifted() {
DecodedKey::Unicode('"')
} else {
DecodedKey::Unicode('2')
}
}
KeyCode::Quote => {
if modifiers.is_shifted() {
DecodedKey::Unicode('@')
} else {
DecodedKey::Unicode('\'')
}
}
KeyCode::Key3 => {
if modifiers.is_shifted() {
DecodedKey::Unicode('£')
} else {
DecodedKey::Unicode('3')
}
}
KeyCode::Key4 => {
if modifiers.alt_gr {
DecodedKey::Unicode('€')
} else if modifiers.is_shifted() {
DecodedKey::Unicode('$')
} else {
DecodedKey::Unicode('4')
}
}
KeyCode::HashTilde => {
if modifiers.is_shifted() {
DecodedKey::Unicode('~')
} else {
DecodedKey::Unicode('#')
}
}
e => <super::Us104Key as KeyboardLayout>::map_keycode(e, modifiers, handle_ctrl),
}
}
}