1// Tamazight en caractères latin
2// Noureddine LOUAHEDJ
3// louahedj@noureddine.me
4
5//
6// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
7// │ ³ ¸ │ 1 ̨  │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃
8// │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃  arrière┃
9// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
10// ┃       ┃ A Æ │ Z Â │ E ¢ │ R Ṛ │ T Ṭ │ Y Ÿ │ U Û │ I Î │ O Ɛ │ P Ô │ ¨ ˚ │ £ Ø ┃Entrée ┃
11// ┃Tab ↹  ┃ a æ │ z â │ e € │ r ṛ │ t ṭ │ y ÿ │ u û │ i î │ o ɛ │ p ô │ ^ ~ │ $ ø ┃   ⏎   ┃
12// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃
13// ┃        ┃ Q Ä │ S Ṣ │ D Ḍ │ F ‚ │ G Ǧ │ H Ḥ │ J Ü │ K Ï │ L Ŀ │ M Ö │ % Ù │ µ ̄  ┃      ┃
14// ┃Maj ⇬   ┃ q ä │ s ṣ │ d ḍ │ f ‘ │ g ǧ │ h ḥ │ j ü │ k ï │ l ŀ │ m ö │ ù ' │ * ` ┃      ┃
15// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
16// ┃       ┃ > ≥ │ W “ │ X ” │ C Č │ V Ɣ │ B ↑ │ N → │ ? … │ . . │ / ∕ │ § − ┃             ┃
17// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c č │ v ɣ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧      ┃
18// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
19// ┃       ┃       ┃       ┃ ␣         Espace fine insécable ⍽ ┃       ┃       ┃       ┃
20// ┃Ctrl   ┃Meta   ┃Alt    ┃ ␣ Espace       Espace insécable ⍽ ┃AltGr ⇮┃Menu   ┃Ctrl   ┃
21// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
22
23
24default partial alphanumeric_keys
25xkb_symbols "la" {
26
27    include "fr(oss)"
28
29    name[Group1]="Berber (Algeria, Latin)";
30
31    key <AD02>  { [ z,  Z,  0x1001E93,  0x1001E92   ] }; // z Z ẓ Ẓ
32    key <AD04>  { [ r,  R,  0x1001E5B,  0x1001E5A   ] }; // r R ṛ Ṛ
33    key <AD05>  { [ t,  T,  0x1001E6D,  0x1001E6C   ] }; // t T ṭ Ṭ
34    key <AD09>  { [ o,  O,  0x100025B,  0x1000190   ] }; // o O ɛ Ɛ
35    key <AC02>  { [ s,  S,  0x1001E63,  0x1001E62   ] }; // s s ṣ Ṣ
36    key <AC03>  { [ d,  D,  0x1001E0D,  0x1001E0C   ] }; // d D ḍ Ḍ
37    key <AC05>  { [ g,  G,  0x10001E7,  0x10001E6   ] }; // g G ǧ Ǧ
38    key <AC06>  { [ h,  H,  0x1001E25,  0x1001E24   ] }; // h H ḥ Ḥ
39    key <AB03>  { [ c,  C,  0x100010D,  0x100010C   ] }; // c C č Č
40    key <AB04>  { [ v,  V,  0x1000263,  0x1000194   ] }; // v V ɣ Ɣ
41
42    include "level3(ralt_switch)"
43};
44
45partial alphanumeric_keys
46xkb_symbols "azerty-deadkeys" {
47     // Kabyle keyboard with dead keys
48     // 2020 by Louis Gostiaux <louis.gostiaux@free.fr>
49
50    include "fr"
51
52    name[Group1]= "Kabyle (AZERTY, with dead keys)";
53
54    key <AD01>	{ [     a,       A,     U025B, U0190  ]}; // a A ɛ Ɛ
55    key <AD02>  { [ 	z,  	 Z,  	U2D63 	      ] }; // ⵣ
56    key <AC01>	{ [     q,       Q,     U0263, U0194  ] }; // q Q ɣ Ɣ
57    key <AB01>  { [ 	w,  	 W,  	U02B7 	      ] }; // ʷ
58    key <AB08>  { [ semicolon,  period,  dead_belowdot,  dead_caron] };
59    		  // dead-below dot for ḍ,ṭ,ẓ,ḥ and dead-caron for č and ǧ
60
61    include "level3(ralt_switch)"
62};
63
64partial alphanumeric_keys
65xkb_symbols "qwerty-gb-deadkeys" {
66     // Kabyle keyboard, uk international with dead keys
67     // 2020 by Louis Gostiaux <louis.gostiaux@free.fr>
68
69    include "gb(intl)"
70
71    name[Group1]= "Kabyle (QWERTY, UK, with dead keys)";
72
73    key <AC01>	{ [     a,       A,     U025B, U0190  ]}; // a A ɛ Ɛ
74    key <AD01>	{ [     q,       Q,     U0263, U0194  ] }; // q Q ɣ Ɣ
75    key <AB01>  { [ 	z,  	 Z,  	U2D63 	      ] }; // ⵣ
76    key <AD02>  { [ 	w,  	 W,  	U02B7 	      ] }; // ʷ
77    key <AB09>  { [  period,	greater	,  dead_belowdot,  dead_caron] };
78
79    include "level3(ralt_switch)"
80};
81
82partial alphanumeric_keys
83xkb_symbols "qwerty-us-deadkeys" {
84     // Kabyle keyboard, us international with dead keys
85     // 2020 by Louis Gostiaux <louis.gostiaux@free.fr>
86
87    include "us(intl)"
88
89    name[Group1]= "Kabyle (QWERTY, US, with dead keys)";
90
91    key <AC01>	{ [     a,       A,     U025B, U0190  ]	}; // a A ɛ Ɛ
92    key <AD01>	{ [     q,       Q,     U0263, U0194  ] }; // q Q ɣ Ɣ
93    key <AB01>  { [ 	z,  	 Z,  	U2D63 	      ] }; // ⵣ
94    key <AD02>  { [ 	w,  	 W,  	U02B7 	      ] }; // ʷ
95    key <AB09>  { [  period,	greater	,  dead_belowdot,  dead_caron] };
96
97    include "level3(ralt_switch)"
98};
99
100
101//
102// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
103// │     │ 1 ̨  │ 2   │ 3   │ 4   │ 5   │ 6   │ 7   │ 8   │ 9   │ 0   │ °   │ +   ┃ ⌫ Retour┃
104// │ ²   │ &   │   ~ │ " # │ ' { │ ( [ │ - | │     │ _ \ │   ^ │   @ │ ) ] │ = } ┃  arrière┃
105// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
106// ┃       ┃     │ ⵥ      │ ⵦ      │ ⵕ      │ ⵟ      │     │     │     │ ⵧ       │     │     │ £ Ø ┃Entrée ┃
107// ┃Tab ↹  ┃ ⴰ        │ ⵣ  ⵤ  │ ⴻ       │ ⵔ      │ ⵜ   ⵝ │ ⵢ       │ ⵓ        │ ⵉ      │ ⵄ       │ ⵃ       │ ⵯ       │ $ ø ┃   ⏎   ┃
108// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃
109// ┃        ┃ ⵈ      │ ⵚ      │ ⴹ  ⴺ │     │ ⴵ  ⴶ  │ ⵁ      │ ⵋ      │ ⴿ      │     │     │ % Ù │ µ ̄¯ ┃      ┃
110// ┃Maj ⇬   ┃ ⵇ      │ ⵙ      │ ⴷ  ⴸ │ ⴼ       │ ⴳ  ⴴ │ ⵀ   ⵂ  │ ⵊ  ⵌ │ ⴽ   ⴾ │ ⵍ      │ ⵎ       │ ù ´ │ * ` ┃      ┃
111// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
112// ┃       ┃ > ¦ │     │ ⵆ       │ ⵞ      │ ⵗ    ⵠ │ ⴲ      │ ⵐ      │ ? … │ . ⋅ │ / ∕ │ § − ┃             ┃
113// ┃Shift ⇧┃ < | │ ⵡ      │ ⵅ       │ ⵛ     │ ⵖ   ⵘ │ ⴱ  ⵒ  │ ⵏ    ⵑ   │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧      ┃
114// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
115// ┃       ┃       ┃       ┃ ␣                                 ┃       ┃       ┃       ┃
116// ┃Ctrl   ┃Meta   ┃Alt    ┃ ␣ Espace                          ┃AltGr ⇮┃Menu   ┃Ctrl   ┃
117// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
118
119partial alphanumeric_keys
120xkb_symbols "ber" {
121
122    name[Group1]="Berber (Algeria, Tifinagh)";
123
124    // First row
125    key <TLDE>  { [ twosuperior,    threesuperior,  onesuperior,    dead_cedilla    ] }; // ² ³ ¹ ¸
126    key <AE01>  { [ ampersand,  1,  dead_caron, dead_ogonek ] }; // & 1 ˇ ̨
127    key <AE02>  { [ eacute, 2,  asciitilde, Eacute  ] }; // é 2 ~ É
128    key <AE03>  { [ quotedbl,   3,  numbersign, dead_breve  ] }; // " 3 # ˘
129    key <AE04>  { [ apostrophe, 4,  braceleft,  0x1002014   ] }; // ' 4 { — (tiret cadratin)
130    key <AE05>  { [ parenleft,  5,  bracketleft,    0x1002013   ] }; // ( 5 [ – (tiret demi-cadratin)
131    key <AE06>  { [ minus,  6,  bar,    0x1002011   ] }; // - 6 | ‑ (tiret insécable)
132    key <AE07>  { [ egrave, 7,  grave,  Egrave  ] }; // è 7 ` È
133    key <AE08>  { [ underscore, 8,  backslash,  trademark   ] }; // _ 8 \ ™
134    key <AE09>  { [ ccedilla,   9,  asciicircum,    Ccedilla    ] }; // ç 9 ^ Ç
135    key <AE10>  { [ agrave, 0,  at, Agrave  ] }; // à 0 @ À
136    key <AE11>  { [ parenright, degree, bracketright,   notequal    ] }; // ) ° ] ≠
137    key <AE12>  { [ equal,  plus,   braceright, plusminus   ] }; // = + } ±
138
139    // Second row
140    key <AD01>  { [ 0x1002D30   ] }; // ⴰ
141    key <AD02>  { [ 0x1002D63,  0x1002D65,  0x1002D64   ] }; // ⵣ ⵥ ⵤ
142    key <AD03>  { [ 0x1002D3B,  0x1002D66   ] }; // ⴻ ⵦ
143    key <AD04>  { [ 0x1002D54,  0x1002D55 ] }; // ⵔ ⵕ
144    key <AD05>  { [ 0x1002D5C,  0x1002D5F,  0x1002D5D   ] }; // ⵜ ⵟ ⵝ
145    key <AD06>  { [ 0x1002D62   ] }; // ⵢ
146    key <AD07>  { [ 0x1002D53   ] }; // ⵓ
147    key <AD08>  { [ 0x1002D49   ] }; // ⵉ
148    key <AD09>  { [ 0x1002D44,  0x1002D67   ] }; // ⵄ ⵧ
149    key <AD10>  { [ 0x1002D43   ] }; // ⵃ
150    key <AD11>  { [ 0x1002D6F   ] }; // ⵯ
151    key <AD12>  { [ dollar, sterling,   oslash, Ooblique ] }; // $ £ ø Ø
152
153    // Third row
154    key <AC01>  { [ 0x1002D47,  0x1002D48   ] }; // ⵇ ⵈ
155    key <AC02>  { [ 0x1002D59,  0x1002D5A   ] }; // ⵙ ⵚ
156    key <AC03>  { [ 0x1002D37,  0x1002D39,  0x1002D38,  0x1002D3A   ] }; // ⴷ ⴹ ⴸ ⴺ
157    key <AC04>  { [ 0x1002D3C   ] }; // ⴼ
158    key <AC05>  { [ 0x1002D33,  0x1002D35, 0x1002D34,   0x1002D36   ] }; // ⴳ ⴵ ⴴ ⴶ
159    key <AC06>  { [ 0x1002D40,  0x1002D41,  0x1002D42   ] }; // ⵀ ⵁ ⵂ
160    key <AC07>  { [ 0x1002D4A,  0x1002D4B,  0x1002D4C   ] }; // ⵊ ⵋ ⵌ Ü
161    key <AC08>  { [ 0x1002D3D,  0x1002D3F,  0x1002D3E   ] }; // ⴽ ⴿ ⴾ
162    key <AC09>  { [ 0x1002D4D   ] }; // ⵍ
163    key <AC10>  { [ 0x1002D4E   ] }; // ⵎ
164    key <AC11>  { [ ugrave, percent,    dead_acute, Ugrave  ] }; // ù % ' Ù
165    key <BKSL>  { [ asterisk,   mu, dead_grave, dead_macron ] }; // * µ ` ̄
166
167    // Fourth row
168    key <LSGT>  { [ less,   greater,    lessthanequal,  greaterthanequal    ] }; // < > ≤ ≥
169    key <AB01>  { [ 0x1002D61   ] }; // ⵡ
170    key <AB02>  { [ 0x1002D45,  0x1002D46   ] }; // ⵅ ⵆ
171    key <AB03>  { [ 0x1002D5B,  0x1002D5E   ] }; // ⵛ ⵞ
172    key <AB04>  { [ 0x1002D56,  0x1002D57,  0x1002D58,  0x1002D60   ] }; // ⵖ ⵗ ⵘ ⵠ
173    key <AB05>  { [ 0x1002D31,  0x1002D32,  0x1002D52   ] }; // ⴱ ⴲ ⵒ
174    key <AB06>  { [ 0x1002D4F,  0x1002D50,  0x1002D51   ] }; // ⵏ ⵐ ⵑ
175    key <AB07>  { [ comma,  question,   questiondown,   0x1002026   ] }; // , ? ¿ …
176    key <AB08>  { [ semicolon,  period, multiply,   0x10022C5   ] }; // ; . × ⋅
177    key <AB09>  { [ colon,  slash,  division,   0x1002215   ] }; // : / ÷ ∕
178    key <AB10>  { [ exclam, section,    exclamdown, 0x1002212   ] }; // ! § ¡ −
179
180    include "level3(ralt_switch)"
181};
182
183// Arabic AZERTY with modern Latin digits
184partial alphanumeric_keys
185xkb_symbols "ar" {
186    include "ara(azerty)"
187
188    name[Group1]="Arabic (Algeria)";
189};
190