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