use crate::{DeadKeys, Layout};
use lazy_static::lazy_static;
use std::collections::HashMap;
pub const ENTER_KEYCODE: u16 = 61480u16;
pub const TAB_KEYCODE: u16 = 61483u16;
pub const SHIFT_MODIFIER: u16 = 57346u16;
pub const RIGHT_ALT_MODIFIER: u16 = 57408u16;
pub const LEFT_ALT_MODIFIER: u16 = 57348u16;
pub const RIGHT_CTRL_MODIFIER: u16 = 57360u16;
pub const NUMLOCK: u16 = 61523u16;
pub const NUMPAD_KEYS: [u16; 10usize] = [
61538u16, 61529u16, 61530u16, 61531u16, 61532u16, 61533u16, 61534u16, 61535u16, 61536u16,
61537u16,
];
lazy_static! {
pub static ref LAYOUT_MAP: HashMap<&'static str, Layout> = {
let mut m = HashMap::new();
m.insert(
"LAYOUT_US_ENGLISH",
Layout::new(
64u16,
None,
None,
None,
None,
127u16,
vec![
44u16, 94u16, 116u16, 96u16, 97u16, 98u16, 100u16, 52u16, 102u16, 103u16,
101u16, 110u16, 54u16, 45u16, 55u16, 56u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 115u16, 51u16, 118u16, 46u16, 119u16,
120u16, 95u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 47u16, 49u16, 48u16, 99u16, 109u16,
53u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16, 14u16,
15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16, 25u16,
26u16, 27u16, 28u16, 29u16, 111u16, 113u16, 112u16, 117u16, 42u16,
],
DeadKeys::new(
None, None, None, None, None, None, None, None, None, None, None, None,
),
),
);
m.insert(
"LAYOUT_CANADIAN_FRENCH",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 95u16, 53u16, 97u16, 98u16, 100u16, 118u16, 102u16, 103u16,
101u16, 110u16, 54u16, 45u16, 55u16, 96u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 115u16, 51u16, 49u16, 46u16, 113u16, 99u16,
159u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16, 77u16,
78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16, 88u16,
89u16, 90u16, 91u16, 92u16, 93u16, 175u16, 181u16, 176u16, 300u16, 109u16,
812u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16, 14u16,
15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16, 25u16,
26u16, 27u16, 28u16, 29u16, 180u16, 117u16, 177u16, 179u16, 42u16,
],
DeadKeys::new(
Some(512u16),
None,
Some(1280u16),
Some(61488u16),
Some(1024u16),
Some(61552u16),
Some(768u16),
Some(61492u16),
Some(256u16),
Some(61487u16),
None,
None,
),
),
);
m.insert(
"LAYOUT_CANADIAN_MULTILINGUAL",
Layout::new(
64u16,
Some(128u16),
Some(2048u16),
Some(63u16),
Some(1792u16),
4095u16,
vec![
44u16, 94u16, 119u16, 96u16, 97u16, 98u16, 100u16, 118u16, 102u16, 103u16,
101u16, 110u16, 54u16, 45u16, 55u16, 53u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 115u16, 51u16, 182u16, 46u16, 183u16, 99u16,
95u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16, 77u16,
78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16, 88u16,
89u16, 90u16, 91u16, 92u16, 93u16, 166u16, 117u16, 167u16, 300u16, 109u16,
1324u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16, 14u16,
15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16, 25u16,
26u16, 27u16, 28u16, 29u16, 164u16, 181u16, 165u16, 2096u16, 42u16,
],
DeadKeys::new(
Some(768u16),
None,
Some(1024u16),
Some(63534u16),
Some(512u16),
Some(61551u16),
Some(1280u16),
Some(61615u16),
Some(256u16),
Some(61487u16),
Some(1536u16),
Some(61616u16),
),
),
);
m.insert(
"LAYOUT_DANISH",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 95u16, 96u16, 161u16, 98u16, 99u16, 49u16, 101u16, 102u16,
113u16, 45u16, 54u16, 56u16, 55u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 119u16, 118u16, 63u16, 103u16, 127u16,
109u16, 159u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 165u16, 191u16, 166u16, 300u16,
120u16, 812u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16,
14u16, 15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16,
25u16, 26u16, 27u16, 28u16, 29u16, 164u16, 174u16, 167u16, 1068u16, 42u16,
],
DeadKeys::new(
Some(512u16),
None,
None,
None,
Some(1280u16),
Some(61488u16),
Some(768u16),
Some(61550u16),
Some(256u16),
Some(61552u16),
Some(1024u16),
Some(61616u16),
),
),
);
m.insert(
"LAYOUT_FINNISH",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 95u16, 96u16, 161u16, 98u16, 99u16, 49u16, 101u16, 102u16,
113u16, 45u16, 54u16, 56u16, 55u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 119u16, 118u16, 63u16, 103u16, 127u16,
109u16, 159u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 165u16, 173u16, 166u16, 300u16,
120u16, 812u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16,
14u16, 15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16,
25u16, 26u16, 27u16, 28u16, 29u16, 164u16, 191u16, 167u16, 1068u16, 42u16,
],
DeadKeys::new(
Some(512u16),
None,
None,
None,
Some(1280u16),
Some(61488u16),
Some(768u16),
Some(61550u16),
Some(256u16),
Some(61552u16),
Some(1024u16),
Some(61616u16),
),
),
);
m.insert(
"LAYOUT_FRENCH",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 56u16, 32u16, 160u16, 48u16, 116u16, 30u16, 33u16, 34u16, 45u16, 49u16,
110u16, 16u16, 35u16, 118u16, 119u16, 103u16, 94u16, 95u16, 96u16, 97u16,
98u16, 99u16, 100u16, 101u16, 102u16, 55u16, 54u16, 63u16, 46u16, 127u16,
80u16, 167u16, 84u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 115u16, 81u16, 82u16, 83u16, 68u16, 85u16, 86u16, 87u16,
88u16, 89u16, 93u16, 91u16, 92u16, 90u16, 162u16, 165u16, 173u16, 166u16,
37u16, 556u16, 20u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16,
14u16, 15u16, 51u16, 17u16, 18u16, 19u16, 4u16, 21u16, 22u16, 23u16, 24u16,
25u16, 29u16, 27u16, 28u16, 26u16, 161u16, 163u16, 174u16, 1068u16, 42u16,
],
DeadKeys::new(
None,
None,
None,
None,
Some(768u16),
Some(61551u16),
Some(512u16),
Some(61604u16),
Some(256u16),
Some(61487u16),
Some(1024u16),
Some(61599u16),
),
),
);
m.insert(
"LAYOUT_FRENCH_BELGIAN",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 37u16, 32u16, 160u16, 48u16, 116u16, 30u16, 33u16, 34u16, 45u16, 112u16,
120u16, 16u16, 46u16, 118u16, 119u16, 103u16, 94u16, 95u16, 96u16, 97u16,
98u16, 99u16, 100u16, 101u16, 102u16, 55u16, 54u16, 63u16, 56u16, 127u16,
80u16, 159u16, 84u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 115u16, 81u16, 82u16, 83u16, 68u16, 85u16, 86u16, 87u16,
88u16, 89u16, 93u16, 91u16, 92u16, 90u16, 175u16, 191u16, 176u16, 163u16,
110u16, 556u16, 20u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16,
13u16, 14u16, 15u16, 51u16, 17u16, 18u16, 19u16, 4u16, 21u16, 22u16, 23u16,
24u16, 25u16, 29u16, 27u16, 28u16, 26u16, 166u16, 158u16, 167u16, 1068u16,
42u16,
],
DeadKeys::new(
Some(1280u16),
None,
None,
None,
Some(768u16),
Some(61551u16),
Some(512u16),
Some(61617u16),
Some(256u16),
Some(61487u16),
Some(1024u16),
Some(61624u16),
),
),
);
m.insert(
"LAYOUT_FRENCH_SWISS",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 112u16, 95u16, 160u16, 49u16, 98u16, 99u16, 45u16, 101u16, 102u16,
96u16, 94u16, 54u16, 56u16, 55u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 119u16, 118u16, 63u16, 103u16, 127u16,
109u16, 159u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 93u16, 92u16, 175u16, 191u16, 176u16, 300u16,
120u16, 556u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16,
14u16, 15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16,
25u16, 26u16, 27u16, 29u16, 28u16, 180u16, 164u16, 177u16, 1068u16, 42u16,
],
DeadKeys::new(
Some(1280u16),
None,
None,
None,
Some(768u16),
Some(61488u16),
Some(512u16),
Some(61550u16),
Some(256u16),
Some(61486u16),
Some(1024u16),
Some(61614u16),
),
),
);
m.insert(
"LAYOUT_GERMAN",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 95u16, 49u16, 97u16, 98u16, 99u16, 113u16, 101u16, 102u16,
112u16, 48u16, 54u16, 56u16, 55u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 119u16, 118u16, 63u16, 103u16, 127u16,
109u16, 148u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 93u16, 92u16, 165u16, 173u16, 166u16, 812u16,
120u16, 1324u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16,
13u16, 14u16, 15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16,
24u16, 25u16, 26u16, 27u16, 29u16, 28u16, 164u16, 191u16, 167u16, 176u16,
42u16,
],
DeadKeys::new(
Some(1024u16),
None,
None,
None,
None,
None,
Some(1280u16),
Some(61550u16),
Some(768u16),
Some(61493u16),
None,
None,
),
),
);
m.insert(
"LAYOUT_GERMAN_MAC",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 95u16, 49u16, 97u16, 98u16, 99u16, 113u16, 101u16, 102u16,
112u16, 48u16, 54u16, 56u16, 55u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 119u16, 118u16, 53u16, 103u16, 117u16,
109u16, 148u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 93u16, 92u16, 162u16, 228u16, 163u16, 812u16,
120u16, 556u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16,
14u16, 15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16,
25u16, 26u16, 27u16, 29u16, 28u16, 165u16, 164u16, 166u16, 1324u16, 42u16,
],
DeadKeys::new(
Some(256u16),
None,
None,
None,
Some(1024u16),
Some(61592u16),
Some(512u16),
Some(61550u16),
Some(768u16),
Some(61667u16),
Some(1280u16),
Some(61585u16),
),
),
);
m.insert(
"LAYOUT_GERMAN_SWISS",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 112u16, 95u16, 160u16, 49u16, 98u16, 99u16, 45u16, 101u16, 102u16,
96u16, 94u16, 54u16, 56u16, 55u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 119u16, 118u16, 63u16, 103u16, 127u16,
109u16, 159u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 93u16, 92u16, 175u16, 191u16, 176u16, 300u16,
120u16, 556u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16,
14u16, 15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16,
25u16, 26u16, 27u16, 29u16, 28u16, 180u16, 164u16, 177u16, 1068u16, 42u16,
],
DeadKeys::new(
Some(1280u16),
None,
None,
None,
Some(768u16),
Some(61488u16),
Some(512u16),
Some(61550u16),
Some(256u16),
Some(61486u16),
Some(1024u16),
Some(61614u16),
),
),
);
m.insert(
"LAYOUT_ICELANDIC",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 95u16, 96u16, 97u16, 98u16, 99u16, 116u16, 101u16, 102u16,
113u16, 49u16, 54u16, 46u16, 55u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 119u16, 118u16, 63u16, 103u16, 127u16,
112u16, 148u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 165u16, 173u16, 166u16, 300u16,
110u16, 812u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16,
14u16, 15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16,
25u16, 26u16, 27u16, 28u16, 29u16, 164u16, 191u16, 167u16, 176u16, 42u16,
],
DeadKeys::new(
Some(512u16),
None,
None,
None,
Some(1024u16),
Some(61557u16),
Some(768u16),
Some(61617u16),
Some(256u16),
Some(61620u16),
None,
None,
),
),
);
m.insert(
"LAYOUT_IRISH",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(768u16),
1023u16,
vec![
44u16, 94u16, 95u16, 49u16, 97u16, 98u16, 100u16, 52u16, 102u16, 103u16,
101u16, 110u16, 54u16, 45u16, 55u16, 56u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 115u16, 51u16, 118u16, 46u16, 119u16,
120u16, 116u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 47u16, 63u16, 48u16, 99u16, 109u16,
244u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16, 14u16,
15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16, 25u16,
26u16, 27u16, 28u16, 29u16, 111u16, 127u16, 112u16, 113u16, 42u16,
],
DeadKeys::new(
Some(512u16),
None,
None,
None,
None,
None,
Some(256u16),
Some(61493u16),
None,
None,
None,
None,
),
),
);
m.insert(
"LAYOUT_ITALIAN",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
None,
255u16,
vec![
44u16, 94u16, 95u16, 180u16, 97u16, 98u16, 99u16, 45u16, 101u16, 102u16,
112u16, 48u16, 54u16, 56u16, 55u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 119u16, 118u16, 63u16, 103u16, 127u16,
109u16, 179u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 175u16, 53u16, 176u16, 110u16,
120u16, 0u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16,
14u16, 15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16,
25u16, 26u16, 27u16, 28u16, 29u16, 239u16, 117u16, 240u16, 0u16, 42u16,
],
DeadKeys::new(
None, None, None, None, None, None, None, None, None, None, None, None,
),
),
);
m.insert(
"LAYOUT_NORWEGIAN",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 95u16, 96u16, 161u16, 98u16, 99u16, 49u16, 101u16, 102u16,
113u16, 45u16, 54u16, 56u16, 55u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 119u16, 118u16, 63u16, 103u16, 127u16,
109u16, 159u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 165u16, 46u16, 166u16, 300u16,
120u16, 812u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16,
14u16, 15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16,
25u16, 26u16, 27u16, 28u16, 29u16, 164u16, 53u16, 167u16, 1068u16, 42u16,
],
DeadKeys::new(
Some(512u16),
None,
None,
None,
Some(1280u16),
Some(61488u16),
Some(768u16),
Some(61550u16),
Some(256u16),
Some(61552u16),
Some(1024u16),
Some(61616u16),
),
),
);
m.insert(
"LAYOUT_PORTUGUESE",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 95u16, 96u16, 97u16, 98u16, 99u16, 45u16, 101u16, 102u16, 111u16,
47u16, 54u16, 56u16, 55u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16, 34u16,
35u16, 36u16, 37u16, 38u16, 119u16, 118u16, 63u16, 103u16, 127u16, 109u16,
159u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16, 77u16,
78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16, 88u16,
89u16, 90u16, 91u16, 92u16, 93u16, 165u16, 53u16, 166u16, 300u16, 120u16,
812u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16, 14u16,
15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16, 25u16,
26u16, 27u16, 28u16, 29u16, 164u16, 117u16, 167u16, 1068u16, 42u16,
],
DeadKeys::new(
Some(512u16),
None,
None,
None,
Some(1280u16),
Some(61551u16),
Some(768u16),
Some(61552u16),
Some(256u16),
Some(61553u16),
Some(1024u16),
Some(61489u16),
),
),
);
m.insert(
"LAYOUT_PORTUGUESE_BRAZILIAN",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 117u16, 96u16, 97u16, 98u16, 100u16, 53u16, 102u16, 103u16,
101u16, 110u16, 54u16, 45u16, 55u16, 148u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 120u16, 56u16, 118u16, 46u16, 119u16,
154u16, 95u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 48u16, 63u16, 49u16, 300u16, 109u16,
812u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16, 14u16,
15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16, 25u16,
26u16, 27u16, 28u16, 29u16, 112u16, 127u16, 113u16, 1068u16, 42u16,
],
DeadKeys::new(
Some(512u16),
None,
None,
None,
Some(1280u16),
Some(61539u16),
Some(768u16),
Some(61551u16),
Some(256u16),
Some(61556u16),
Some(1024u16),
Some(61492u16),
),
),
);
m.insert(
"LAYOUT_SPANISH",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 95u16, 160u16, 97u16, 98u16, 99u16, 45u16, 101u16, 102u16,
112u16, 48u16, 54u16, 56u16, 55u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 119u16, 118u16, 63u16, 103u16, 127u16,
109u16, 159u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 175u16, 181u16, 176u16, 300u16,
120u16, 812u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16,
14u16, 15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16,
25u16, 26u16, 27u16, 28u16, 29u16, 180u16, 158u16, 177u16, 1068u16, 42u16,
],
DeadKeys::new(
Some(512u16),
None,
None,
None,
Some(1280u16),
Some(61556u16),
Some(768u16),
Some(61487u16),
Some(256u16),
Some(61551u16),
Some(1024u16),
Some(61601u16),
),
),
);
m.insert(
"LAYOUT_SPANISH_LATIN_AMERICA",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 95u16, 160u16, 97u16, 98u16, 99u16, 45u16, 101u16, 102u16,
112u16, 48u16, 54u16, 56u16, 55u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 119u16, 118u16, 63u16, 103u16, 127u16,
109u16, 148u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 116u16, 173u16, 113u16, 300u16,
120u16, 812u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16,
14u16, 15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16,
25u16, 26u16, 27u16, 28u16, 29u16, 52u16, 53u16, 49u16, 176u16, 42u16,
],
DeadKeys::new(
Some(512u16),
None,
None,
None,
Some(1024u16),
Some(61551u16),
Some(768u16),
Some(61617u16),
Some(256u16),
Some(61620u16),
None,
None,
),
),
);
m.insert(
"LAYOUT_SWEDISH",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 95u16, 96u16, 161u16, 98u16, 99u16, 49u16, 101u16, 102u16,
113u16, 45u16, 54u16, 56u16, 55u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 119u16, 118u16, 63u16, 103u16, 127u16,
109u16, 159u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 165u16, 173u16, 166u16, 300u16,
120u16, 812u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16,
14u16, 15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16,
25u16, 26u16, 27u16, 28u16, 29u16, 164u16, 191u16, 167u16, 1068u16, 42u16,
],
DeadKeys::new(
Some(512u16),
None,
None,
None,
Some(1280u16),
Some(61488u16),
Some(768u16),
Some(61550u16),
Some(256u16),
Some(61552u16),
Some(1024u16),
Some(61616u16),
),
),
);
m.insert(
"LAYOUT_TURKISH",
Layout::new(
64u16,
Some(128u16),
None,
None,
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 53u16, 160u16, 161u16, 98u16, 99u16, 95u16, 101u16, 102u16,
45u16, 97u16, 49u16, 46u16, 56u16, 100u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 120u16, 113u16, 181u16, 103u16, 158u16,
109u16, 148u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 165u16, 173u16, 166u16, 300u16,
110u16, 812u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 52u16, 13u16,
14u16, 15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16,
25u16, 26u16, 27u16, 28u16, 29u16, 164u16, 174u16, 167u16, 1068u16, 42u16,
],
DeadKeys::new(
Some(512u16),
None,
None,
None,
Some(1280u16),
Some(61615u16),
Some(768u16),
Some(61617u16),
Some(256u16),
Some(61536u16),
Some(1024u16),
Some(61616u16),
),
),
);
m.insert(
"LAYOUT_UNITED_KINGDOM",
Layout::new(
64u16,
Some(128u16),
None,
Some(63u16),
None,
255u16,
vec![
44u16, 94u16, 95u16, 49u16, 97u16, 98u16, 100u16, 52u16, 102u16, 103u16,
101u16, 110u16, 54u16, 45u16, 55u16, 56u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 115u16, 51u16, 118u16, 46u16, 119u16,
120u16, 116u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 47u16, 63u16, 48u16, 99u16, 109u16,
53u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16, 14u16,
15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16, 25u16,
26u16, 27u16, 28u16, 29u16, 111u16, 127u16, 112u16, 113u16, 42u16,
],
DeadKeys::new(
None, None, None, None, None, None, None, None, None, None, None, None,
),
),
);
m.insert(
"LAYOUT_US_INTERNATIONAL",
Layout::new(
64u16,
Some(128u16),
None,
None,
Some(1792u16),
2047u16,
vec![
44u16, 94u16, 1324u16, 96u16, 97u16, 98u16, 100u16, 556u16, 102u16, 103u16,
101u16, 110u16, 54u16, 45u16, 55u16, 56u16, 39u16, 30u16, 31u16, 32u16, 33u16,
34u16, 35u16, 36u16, 37u16, 38u16, 115u16, 51u16, 118u16, 46u16, 119u16,
120u16, 95u16, 68u16, 69u16, 70u16, 71u16, 72u16, 73u16, 74u16, 75u16, 76u16,
77u16, 78u16, 79u16, 80u16, 81u16, 82u16, 83u16, 84u16, 85u16, 86u16, 87u16,
88u16, 89u16, 90u16, 91u16, 92u16, 93u16, 47u16, 49u16, 48u16, 300u16, 109u16,
812u16, 4u16, 5u16, 6u16, 7u16, 8u16, 9u16, 10u16, 11u16, 12u16, 13u16, 14u16,
15u16, 16u16, 17u16, 18u16, 19u16, 20u16, 21u16, 22u16, 23u16, 24u16, 25u16,
26u16, 27u16, 28u16, 29u16, 111u16, 113u16, 112u16, 1068u16, 42u16,
],
DeadKeys::new(
Some(512u16),
None,
None,
None,
Some(1280u16),
Some(61556u16),
Some(768u16),
Some(61493u16),
Some(256u16),
Some(61539u16),
Some(1024u16),
Some(61557u16),
),
),
);
m
};
}