miniquad/native/linux_wayland/
keycodes.rs1use crate::event::KeyCode;
17use crate::native::linux_wayland::libxkbcommon::xkb_keysym_t;
18
19pub fn translate_keysym(keysym: xkb_keysym_t) -> KeyCode {
20 match keysym {
22 65307 => KeyCode::Escape,
23 65056 => KeyCode::Tab, 65289 => KeyCode::Tab,
25 65505 => KeyCode::LeftShift,
26 65506 => KeyCode::RightShift,
27 65507 => KeyCode::LeftControl,
28 65508 => KeyCode::RightControl,
29 65511 | 65513 => KeyCode::LeftAlt,
30 65406 | 65027 | 65512 | 65514 => KeyCode::RightAlt,
31 65515 => KeyCode::LeftSuper,
32 65516 => KeyCode::RightSuper,
33 65383 => KeyCode::Menu,
34 65407 => KeyCode::NumLock,
35 65509 => KeyCode::CapsLock,
36 65377 => KeyCode::PrintScreen,
37 65300 => KeyCode::ScrollLock,
38 65299 => KeyCode::Pause,
39 65535 => KeyCode::Delete,
40 65288 => KeyCode::Backspace,
41 65293 => KeyCode::Enter,
42 65360 => KeyCode::Home,
43 65367 => KeyCode::End,
44 65365 => KeyCode::PageUp,
45 65366 => KeyCode::PageDown,
46 65379 => KeyCode::Insert,
47 65361 => KeyCode::Left,
48 65363 => KeyCode::Right,
49 65364 => KeyCode::Down,
50 65362 => KeyCode::Up,
51 65470 => KeyCode::F1,
52 65471 => KeyCode::F2,
53 65472 => KeyCode::F3,
54 65473 => KeyCode::F4,
55 65474 => KeyCode::F5,
56 65475 => KeyCode::F6,
57 65476 => KeyCode::F7,
58 65477 => KeyCode::F8,
59 65478 => KeyCode::F9,
60 65479 => KeyCode::F10,
61 65480 => KeyCode::F11,
62 65481 => KeyCode::F12,
63 65482 => KeyCode::F13,
64 65483 => KeyCode::F14,
65 65484 => KeyCode::F15,
66 65485 => KeyCode::F16,
67 65486 => KeyCode::F17,
68 65487 => KeyCode::F18,
69 65488 => KeyCode::F19,
70 65489 => KeyCode::F20,
71 65490 => KeyCode::F21,
72 65491 => KeyCode::F22,
73 65492 => KeyCode::F23,
74 65493 => KeyCode::F24,
75 65494 => KeyCode::F25,
76 65455 => KeyCode::KpDivide,
77 65450 => KeyCode::KpMultiply,
78 65453 => KeyCode::KpSubtract,
79 65451 => KeyCode::KpAdd,
80 65438 => KeyCode::Kp0,
81 65436 => KeyCode::Kp1,
82 65433 => KeyCode::Kp2,
83 65435 => KeyCode::Kp3,
84 65430 => KeyCode::Kp4,
85 65437 => KeyCode::Kp5,
86 65432 => KeyCode::Kp6,
87 65429 => KeyCode::Kp7,
88 65431 => KeyCode::Kp8,
89 65434 => KeyCode::Kp9,
90 65439 => KeyCode::KpDecimal,
91 65469 => KeyCode::KpEqual,
92 65421 => KeyCode::KpEnter,
93 65 | 97 => KeyCode::A,
94 66 | 98 => KeyCode::B,
95 67 | 99 => KeyCode::C,
96 68 | 100 => KeyCode::D,
97 69 | 101 => KeyCode::E,
98 70 | 102 => KeyCode::F,
99 71 | 103 => KeyCode::G,
100 72 | 104 => KeyCode::H,
101 73 | 105 => KeyCode::I,
102 74 | 106 => KeyCode::J,
103 75 | 107 => KeyCode::K,
104 76 | 108 => KeyCode::L,
105 77 | 109 => KeyCode::M,
106 78 | 110 => KeyCode::N,
107 79 | 111 => KeyCode::O,
108 80 | 112 => KeyCode::P,
109 81 | 113 => KeyCode::Q,
110 82 | 114 => KeyCode::R,
111 83 | 115 => KeyCode::S,
112 84 | 116 => KeyCode::T,
113 85 | 117 => KeyCode::U,
114 86 | 118 => KeyCode::V,
115 87 | 119 => KeyCode::W,
116 88 | 120 => KeyCode::X,
117 89 | 121 => KeyCode::Y,
118 90 | 122 => KeyCode::Z,
119 49 => KeyCode::Key1,
120 50 => KeyCode::Key2,
121 51 => KeyCode::Key3,
122 52 => KeyCode::Key4,
123 53 => KeyCode::Key5,
124 54 => KeyCode::Key6,
125 55 => KeyCode::Key7,
126 56 => KeyCode::Key8,
127 57 => KeyCode::Key9,
128 48 => KeyCode::Key0,
129 32 => KeyCode::Space,
130 45 => KeyCode::Minus,
131 61 => KeyCode::Equal,
132 91 => KeyCode::LeftBracket,
133 93 => KeyCode::RightBracket,
134 92 => KeyCode::Backslash,
135 59 => KeyCode::Semicolon,
136 39 => KeyCode::Apostrophe,
137 96 => KeyCode::GraveAccent,
138 44 => KeyCode::Comma,
139 46 => KeyCode::Period,
140 47 => KeyCode::Slash,
141 60 => KeyCode::World1,
142 _ => KeyCode::Unknown,
143 }
144}