added xkb

This commit is contained in:
cnst
2024-06-15 19:13:59 +02:00
parent 458d1f9367
commit 17aaa6b681
295 changed files with 83138 additions and 0 deletions

372
nixos/xkb/symbols/af Normal file
View File

@@ -0,0 +1,372 @@
// Keyboard layouts for Afghanistan.
// Layouts for Dari, Pashto, and Southern Uzbek.
// Original author: M. Emal Alekozai <memala@gmx.net>, 2006.
//
// Based on the "Computer Locale Requirements for Afghanistan" [1]
// from the "United Nations Development Programme for Afghanistan" and the
// "Afghan Transitional Islamic Administration Ministry of Communications".
// [1] https://www.evertype.com/standards/af/
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Dari";
key <TLDE> { [ 0x100200d, 0x10000f7, dead_tilde ] };
key <AE01> { [ 0x10006f1, exclam, 0x1000060 ] };
key <AE02> { [ 0x10006f2, 0x100066c, 0x1000040 ] };
key <AE03> { [ 0x10006f3, 0x100066b, numbersign ] };
key <AE04> { [ 0x10006f4, 0x100e60b, 0x1000024] };
key <AE05> { [ 0x10006f5, 0x100066a, 0x1000025 ] };
key <AE06> { [ 0x10006f6, multiply, 0x100005e ] };
key <AE07> { [ 0x10006f7, Arabic_comma, 0x1000026 ] };
key <AE08> { [ 0x10006f8, asterisk, 0x1002022 ] };
key <AE09> { [ 0x10006f9, 0x1000029, 0x100200e ] };
key <AE10> { [ 0x10006f0, 0x1000028, 0x100200f ] };
key <AE11> { [ minus, Arabic_tatweel, 0x100005f ] };
key <AE12> { [ equal, plus ] };
key <AD01> { [ Arabic_dad, Arabic_sukun, 0x10000b0 ] };
key <AD02> { [ Arabic_sad, Arabic_dammatan ] };
key <AD03> { [ Arabic_theh, Arabic_kasratan, 0x10020ac ] };
key <AD04> { [ Arabic_qaf, Arabic_fathatan, 0x100fd3e ] };
key <AD05> { [ Arabic_feh, Arabic_damma, 0x100fd3f ] };
key <AD06> { [ Arabic_ghain, Arabic_kasra, 0x100e656] };
key <AD07> { [ Arabic_ain, Arabic_fatha, 0x100e659] };
key <AD08> { [ Arabic_heh, Arabic_shadda, 0x1000655] };
key <AD09> { [ Arabic_khah, bracketright, 0x1000027] };
key <AD10> { [ Arabic_hah, bracketleft, 0x1000022] };
key <AD11> { [ Arabic_jeem, braceright, 0x1000681 ] };
key <AD12> { [ 0x1000686, braceleft, 0x1000685 ] };
key <AC01> { [ Arabic_sheen, Arabic_hamzaonwaw, 0x100069a ] };
key <AC02> { [ Arabic_seen, Arabic_hamzaonyeh, 0x10006cd ] };
key <AC03> { [ 0x10006cc, Arabic_yeh, 0x1000649 ] };
key <AC04> { [ Arabic_beh, Arabic_hamzaunderalef, 0x10006d0 ] };
key <AC05> { [ Arabic_lam, Arabic_hamzaonalef, 0x10006b7 ] };
key <AC06> { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] };
key <AC07> { [ Arabic_teh, Arabic_tehmarbuta, 0x100067c ] };
key <AC08> { [ Arabic_noon, 0x10000bb, 0x10006bc ] };
key <AC09> { [ Arabic_meem, 0x10000ab, 0x10006ba ] };
key <AC10> { [ 0x10006a9, colon, 0x100003b ] };
key <AC11> { [ 0x10006af, Arabic_semicolon, 0x10006ab ] };
key <BKSL> { [ backslash, bar, 0x100003f ] };
key <AB01> { [ Arabic_zah, Arabic_kaf, 0x10006d2] };
key <AB02> { [ Arabic_tah, 0x1000653 , 0x1000691 ] };
key <AB03> { [ Arabic_zain, 0x1000698, 0x1000696 ] };
key <AB04> { [ Arabic_ra, 0x1000670 , 0x1000693 ] };
key <AB05> { [ Arabic_thal, 0x100200c, 0x1000688 ] };
key <AB06> { [ Arabic_dal, 0x1000654, 0x1000689 ] };
key <AB07> { [ 0x100067e, Arabic_hamza, 0x1000679 ] };
key <AB08> { [ Arabic_waw, greater, 0x100002c ] };
key <AB09> { [ period, less, 0x10006c7 ] };
key <AB10> { [ slash, Arabic_question_mark, 0x10006c9 ] };
include "nbsp(zwnj2nb3)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "ps" {
name[Group1]= "Pashto";
key <TLDE> { [ 0x100200d, 0x10000f7, dead_tilde ] };
key <AE01> { [ 0x10006f1, exclam, 0x1000060 ] };
key <AE02> { [ 0x10006f2, 0x100066c, 0x1000040 ] };
key <AE03> { [ 0x10006f3, 0x100066b, numbersign ] };
key <AE04> { [ 0x10006f4, 0x100e60b, 0x1000024] };
key <AE05> { [ 0x10006f5, 0x100066a, 0x1000025 ] };
key <AE06> { [ 0x10006f6, multiply, 0x100005e ] };
key <AE07> { [ 0x10006f7, 0x10000bb, 0x1000026 ] };
key <AE08> { [ 0x10006f8, 0x10000ab, 0x1002022 ] };
key <AE09> { [ 0x10006f9, 0x1000029, 0x100200e ] };
key <AE10> { [ 0x10006f0, 0x1000028, 0x100200f ] };
key <AE11> { [ minus, Arabic_tatweel, 0x100005f ] };
key <AE12> { [ equal, plus ] };
key <AD01> { [ Arabic_dad, Arabic_sukun, 0x10000b0 ] };
key <AD02> { [ Arabic_sad, Arabic_dammatan, 0x1000653 ] };
key <AD03> { [ Arabic_theh, Arabic_kasratan, 0x10020ac ] };
key <AD04> { [ Arabic_qaf, Arabic_fathatan, 0x100fd3e ] };
key <AD05> { [ Arabic_feh, Arabic_damma, 0x100fd3f ] };
key <AD06> { [ Arabic_ghain, Arabic_kasra, 0x100e656] };
key <AD07> { [ Arabic_ain, Arabic_fatha, 0x100e659] };
key <AD08> { [ Arabic_heh, Arabic_shadda, 0x1000670] };
key <AD09> { [ Arabic_khah, 0x1000681, 0x1000027] };
key <AD10> { [ Arabic_hah, 0x1000685, 0x1000022] };
key <AD11> { [ Arabic_jeem, 0x100005d, 0x100007d ] };
key <AD12> { [ 0x1000686, 0x100005b, 0x100007b ] };
key <AC01> { [ Arabic_sheen, 0x100069a ] };
key <AC02> { [ Arabic_seen, Arabic_hamzaonyeh, 0x10006d2 ] };
key <AC03> { [ 0x10006cc, Arabic_yeh, 0x1000649 ] };
key <AC04> { [ Arabic_beh, 0x100067e, 0x10006ba ] };
key <AC05> { [ Arabic_lam, Arabic_hamzaonalef, 0x10006b7 ] };
key <AC06> { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] };
key <AC07> { [ Arabic_teh, 0x100067c, 0x1000679 ] };
key <AC08> { [ Arabic_noon, 0x10006bc, 0x100003e ] };
key <AC09> { [ Arabic_meem, 0x1000629, 0x100003c ] };
key <AC10> { [ 0x10006a9, colon, 0x1000643 ] };
key <AC11> { [ 0x10006ab, Arabic_semicolon, 0x10006af ] };
key <BKSL> { [ backslash, 0x100002a, 0x100007c ] };
key <AB01> { [ 0x10006cd, 0x1000638, 0x100003f] };
key <AB02> { [ 0x10006d0, 0x1000637, 0x100003b ] };
key <AB03> { [ Arabic_zain, 0x1000698, 0x1000655 ] };
key <AB04> { [ Arabic_ra, 0x1000621, 0x1000654 ] };
key <AB05> { [ Arabic_thal, 0x100200c, 0x1000625 ] };
key <AB06> { [ Arabic_dal, 0x1000689, 0x1000688 ] };
key <AB07> { [ 0x1000693, 0x1000624, 0x1000691 ] };
key <AB08> { [ Arabic_waw, 0x100060c, 0x100002c ] };
key <AB09> { [ 0x1000696, 0x100002e, 0x10006c7 ] };
key <AB10> { [ slash, Arabic_question_mark, 0x10006c9 ] };
include "nbsp(zwnj2nb3)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "uz" {
name[Group1]= "Uzbek (Afghanistan)";
key <TLDE> { [ 0x100200d, 0x10000f7, dead_tilde ] };
key <AE01> { [ 0x10006f1, exclam, 0x1000060 ] };
key <AE02> { [ 0x10006f2, 0x100066c, 0x1000040 ] };
key <AE03> { [ 0x10006f3, 0x100066b, numbersign ] };
key <AE04> { [ 0x10006f4, 0x100e60b, 0x1000024] };
key <AE05> { [ 0x10006f5, 0x100066a, 0x1000025 ] };
key <AE06> { [ 0x10006f6, multiply, 0x100005e ] };
key <AE07> { [ 0x10006f7, Arabic_comma, 0x1000026 ] };
key <AE08> { [ 0x10006f8, asterisk, 0x1002022 ] };
key <AE09> { [ 0x10006f9, 0x1000029, 0x100200e ] };
key <AE10> { [ 0x10006f0, 0x1000028, 0x100200f ] };
key <AE11> { [ minus, Arabic_tatweel, 0x100005f ] };
key <AE12> { [ equal, plus ] };
key <AD01> { [ Arabic_dad, Arabic_sukun, 0x10000b0 ] };
key <AD02> { [ Arabic_sad, Arabic_dammatan, 0x1000653 ] };
key <AD03> { [ Arabic_theh, Arabic_kasratan, 0x10020ac ] };
key <AD04> { [ Arabic_qaf, Arabic_fathatan, 0x100fd3e ] };
key <AD05> { [ Arabic_feh, Arabic_damma, 0x100fd3f ] };
key <AD06> { [ Arabic_ghain, Arabic_kasra, 0x100e656] };
key <AD07> { [ Arabic_ain, Arabic_fatha, 0x100e659] };
key <AD08> { [ Arabic_heh, Arabic_shadda, 0x1000670] };
key <AD09> { [ Arabic_khah, bracketright, 0x1000027] };
key <AD10> { [ Arabic_hah, bracketleft, 0x1000022] };
key <AD11> { [ Arabic_jeem, braceright, 0x1000681 ] };
key <AD12> { [ 0x1000686, braceleft, 0x1000685 ] };
key <AC01> { [ Arabic_sheen, Arabic_hamzaonwaw, 0x100069a ] };
key <AC02> { [ Arabic_seen, Arabic_hamzaonyeh, 0x10006cd ] };
key <AC03> { [ 0x10006cc, Arabic_yeh, 0x1000649 ] };
key <AC04> { [ Arabic_beh, 0x10006d0, 0x1000643 ] };
key <AC05> { [ Arabic_lam, Arabic_hamzaonalef, 0x10006b7 ] };
key <AC06> { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] };
key <AC07> { [ Arabic_teh, Arabic_tehmarbuta, 0x100067c ] };
key <AC08> { [ Arabic_noon, 0x10000bb, 0x10006bc ] };
key <AC09> { [ Arabic_meem, 0x10000ab, 0x10006ba ] };
key <AC10> { [ 0x10006a9, colon, 0x100003b ] };
key <AC11> { [ 0x10006af, Arabic_semicolon, 0x10006ab ] };
key <BKSL> { [ backslash, bar, 0x100003f ] };
key <AB01> { [ Arabic_zah, 0x10006c9, 0x10006d2] };
key <AB02> { [ Arabic_tah, 0x10006c7, 0x1000691 ] };
key <AB03> { [ Arabic_zain, 0x1000698, 0x1000696 ] };
key <AB04> { [ Arabic_ra, 0x1000625, 0x1000693 ] };
key <AB05> { [ Arabic_thal, 0x100200c, 0x1000688 ] };
key <AB06> { [ Arabic_dal, 0x1000654, 0x1000689 ] };
key <AB07> { [ 0x100067e, Arabic_hamza, 0x1000679 ] };
key <AB08> { [ Arabic_waw, greater, 0x100002c ] };
key <AB09> { [ period, less ] };
key <AB10> { [ slash, Arabic_question_mark, 0x1000655 ] };
include "nbsp(zwnj2nb3)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "ps-olpc" {
name[Group1]= "Pashto (Afghanistan, OLPC)";
key <TLDE> { [ 0x100200D, 0x1000654, grave ] }; // zero width joiner, Arabic hamza above
key <AE01> { [ 0x10006F1, exclam, asciitilde ] }; // Arabic one
key <AE02> { [ 0x10006F2, 0x100066C, at ] }; // Arabic two, Arabic thousands separator
key <AE03> { [ 0x10006F3, 0x100066B, numbersign ] }; // Arabic three, Arabic decimal separator
key <AE04> { [ 0x10006F4, 0x100060B, dollar ] }; // Arabic four, Afghani sign
key <AE05> { [ 0x10006F5, 0x100066A, percent ] }; // Arabic five, Arabic percent sign
key <AE06> { [ 0x10006F6, multiply, asciicircum ] }; // Arabic six
key <AE07> { [ 0x10006F7, guillemotright, ampersand ] }; // Arabic seven
key <AE08> { [ 0x10006F8, guillemotleft, 0x100066D ] }; // Arabic eight, Arabic five-pointed star
key <AE09> { [ 0x10006F9, parenright, enfilledcircbullet ] }; // Arabic nine
key <AE10> { [ 0x10006F0, parenleft, degree ] }; // Arabic zero
key <AE11> { [ minus, 0x1000640, underscore ] }; // Arabic tatweel
key <AE12> { [ equal, plus, division ] };
key <AD01> { [ 0x1000636, 0x1000652, EuroSign ] }; // Arabic dad, Arabic sukun
key <AD02> { [ 0x1000635, 0x100064C, 0x1000671 ] }; // Arabic sad, Arabic dammatan, Arabic alef walsa
key <AD03> { [ 0x100062B, 0x100064D, 0x1000649 ] }; // Arabic theh, Arabic kasratan, Arabic alef maksura initial form
key <AD04> { [ 0x1000642, 0x100064B, 0x100200E ] }; // Arabic qaf, Arabic fathatan, left-to-right mark
key <AD05> { [ 0x1000641, 0x100064F, 0x100200F ] }; // Arabic feh, Arabic damma, right-to-left mark
key <AD06> { [ 0x100063A, 0x1000650, 0x100e653 ] }; // Arabic ghain, Arabic kasra, Arabic alef with madda above
key <AD07> { [ 0x1000639, 0x100064E, 0x100e659 ] }; // Arabic ain, Arabic fatha, Arabic zwarakay
key <AD08> { [ 0x1000647, 0x1000651, 0x1000670 ] }; // Arabic heh, Arabic shadda, Arabic superscript alef
key <AD09> { [ 0x100062E, 0x1000681, apostrophe ] }; // Arabic khah, Arabic hah with hamza above
key <AD10> { [ 0x100062D, 0x1000685, quotedbl ] }; // Arabic hah, Arabic hah with three dots above
key <AD11> { [ 0x100062C, bracketright, braceleft ] }; // Arabic jeem
key <AD12> { [ 0x1000686, bracketleft, braceright ] }; // Arabic tcheh
key <AC01> { [ 0x1000634, 0x100069A ] }; // Arabic sheen, Arabic seen with dot below and dot above
key <AC02> { [ 0x1000633, 0x10006CD ] }; // Arabic seen, Arabic yeh with tail
key <AC03> { [ 0x10006CC, 0x100064A, 0x10006D2 ] }; // Farsi yeh, Arabic yeh, Arabic yeh barree
key <AC04> { [ 0x1000628, 0x100067E, 0x10006BA ] }; // Arabic beh, Arabic peh, Arabic noon ghunna
key <AC05> { [ 0x1000644, 0x1000623, 0x10006B7 ] }; // Arabic lam, Arabic hamza on alef, Arabic alef with hamza above
key <AC06> { [ 0x1000627, 0x1000622, 0x1000625 ] }; // Arabic alef, Arabic madda on alef, Arabic alef with hamza below
key <AC07> { [ 0x100062A, 0x100067C, 0x1000679 ] }; // Arabic teh, Arabic teh with ring, Arabic tteh
key <AC08> { [ 0x1000646, 0x10006BC, greater ] }; // Arabic noon, Arabic noon with ring
key <AC09> { [ 0x1000645, 0x1000629, less ] }; // Arabic meem, Arabic teh marbuta
key <AC10> { [ 0x10006A9, colon, 0x1000643 ] }; // Arabic keheh, Arabic kaf
key <AC11> { [ 0x10006AB, 0x100061B, 0x10006AF ] }; // Arabic kaf with ring, Arabic semicolon, Arabic gaf
key <BKSL> { [ backslash, asterisk, bar ] };
key <AB01> { [ 0x1000638, 0x1000626, question] }; // Arabic zah, Arabic yeh with hamza above
key <AB02> { [ 0x10006D0, 0x1000637, semicolon ] }; // Arabic tah, Arabic E
key <AB03> { [ 0x1000632, 0x1000698 ] }; // Arabic zain, Arabic jeh
key <AB04> { [ 0x1000631, 0x1000621 ] }; // Arabic reh, Arabic hamza
key <AB05> { [ 0x1000630, 0x100200C ] }; // Arabic thal, zero width non-joiner
key <AB06> { [ 0x100062F, 0x1000689, 0x1000688 ] }; // Arabic dal, Arabic dal with ring, Arabic ddal
key <AB07> { [ 0x1000693, 0x1000624, 0x1000691 ] }; // Arabic reh with ring, Arabic waw with hamza above, Arabic rreh
key <AB08> { [ 0x1000648, period, comma ] }; // Arabic waw, Arabic comma
key <AB09> { [ 0x1000696, 0x100002E, 0x10006C7 ] }; // Arabic reh with dot below and dot above, full stop, Arabic letter U
key <AB10> { [ slash, 0x100061F, 0x10006C9 ] }; // Arabic question mark, Arabic kirghiz yu
include "nbsp(zwnj2nb3)"
include "group(olpc)"
};
partial alphanumeric_keys
xkb_symbols "fa-olpc" {
name[Group1]= "Dari (Afghanistan, OLPC)";
key <TLDE> { [ 0x100200D, division, asciitilde ] }; // zero width joiner
key <AE01> { [ 0x10006F1, exclam, grave ] }; // Arabic one
key <AE02> { [ 0x10006F2, 0x100066C, at ] }; // Arabic two, Arabic thousands separator
key <AE03> { [ 0x10006F3, 0x100066B, numbersign ] }; // Arabic three, Arabic decimal separator
key <AE04> { [ 0x10006F4, 0x100060B, dollar ] }; // Arabic four, Afghani sign
key <AE05> { [ 0x10006F5, 0x100066A, percent ] }; // Arabic five, Arabic percent sign
key <AE06> { [ 0x10006F6, multiply, asciicircum ] }; // Arabic six
key <AE07> { [ 0x10006F7, 0x100060C, ampersand ] }; // Arabic seven, Arabic comma
key <AE08> { [ 0x10006F8, asterisk, enfilledcircbullet ] }; // Arabic eight
key <AE09> { [ 0x10006F9, parenright, 0x100200E ] }; // Arabic nine, left-to-right mark
key <AE10> { [ 0x10006F0, parenleft, 0x100200F ] }; // Arabic zero, right-to-left mark
key <AE11> { [ minus, 0x1000640, underscore ] }; // Arabic tatweel
key <AE12> { [ equal, plus ] };
key <AD01> { [ 0x1000636, 0x1000652, degree ] }; // Arabic dad, Arabic sukun
key <AD02> { [ 0x1000635, 0x100064C ] }; // Arabic sad, Arabic dammatan
key <AD03> { [ 0x100062B, 0x100064D, EuroSign ] }; // Arabic theh, Arabic kasratan
key <AD04> { [ 0x1000642, 0x100064B, 0x100FD3E ] }; // Arabic qaf, Arabic fathatan, ornate left paren
key <AD05> { [ 0x1000641, 0x100064F, 0x100FD3F ] }; // Arabic feh, Arabic damma, ornate right paren
key <AD06> { [ 0x100063A, 0x1000650, 0x1000656 ] }; // Arabic ghain, Arabic kasra, Arabic subscript alef
key <AD07> { [ 0x1000639, 0x100064E, 0x100e659 ] }; // Arabic ain, Arabic fatha, Arabic zwarakay
key <AD08> { [ 0x1000647, 0x1000651, 0x1000655 ] }; // Arabic heh, Arabic shadda, Arabic hamza below
key <AD09> { [ 0x100062E, bracketright, apostrophe ] }; // Arabic khah
key <AD10> { [ 0x100062D, bracketleft, quotedbl ] }; // Arabic hah
key <AD11> { [ 0x100062C, braceright, 0x1000681 ] }; // Arabic jeem, Arabic hah with hamza above
key <AD12> { [ 0x1000686, braceleft, 0x1000685 ] }; // Arabic tcheh, Arabic hah with three dots above
key <AC01> { [ 0x1000634, 0x1000624, 0x100069A ] }; // Arabic sheen, Arabic waw with hamza above, Arabic seen with dot below and dot above
key <AC02> { [ 0x1000633, 0x1000626, 0x10006CD ] }; // Arabic seen, Arabic yeh with hamza above, Arabic yeh with tail
key <AC03> { [ 0x10006CC, 0x100064A, 0x1000649 ] }; // Farsi yeh, Arabic yeh, Arabic alef maksura
key <AC04> { [ 0x1000628, 0x1000625, 0x10006D0 ] }; // Arabic beh, Arabic alef with hamza below, Arabic e
key <AC05> { [ 0x1000644, 0x1000623, 0x10006B7 ] }; // Arabic lam, Arabic hamza on alef, Arabic alef with hamza above
key <AC06> { [ 0x1000627, 0x1000622, 0x1000671 ] }; // Arabic alef, Arabic madda on alef, Arabic alef wasla
key <AC07> { [ 0x100062A, 0x1000629, 0x100067C ] }; // Arabic teh, Arabic teh marbuta, Arabic tteh
key <AC08> { [ 0x1000646, guillemotright, 0x10006BC ] }; // Arabic noon, Arabic noon with ring
key <AC09> { [ 0x1000645, guillemotleft, 0x10006BA ] }; // Arabic meem, Arabic noon ghunna
key <AC10> { [ 0x10006A9, colon, semicolon ] }; // Arabic keheh
key <AC11> { [ 0x10006AF, 0x100061B, 0x10006AB ] }; // Arabic gaf, Arabic semicolon, Arabic kaf with ring
key <BKSL> { [ backslash, bar, question ] };
key <AB01> { [ 0x1000638, 0x1000643, 0x10006D2 ] }; // Arabic zah, Arabic kaf, Arabic yeh barree
key <AB02> { [ 0x1000637, 0x1000653, 0x1000691 ] }; // Arabic tah, Arabic maddah above, Arabic rreh
key <AB03> { [ 0x1000632, 0x1000698, 0x1000696 ] }; // Arabic zain, Arabic jeh, Arabic reh with dot below and dot above
key <AB04> { [ 0x1000631, 0x1000670, 0x1000693 ] }; // Arabic reh, Arabic superscript alef, Arabic reh with ring
key <AB05> { [ 0x1000630, 0x100200C, 0x1000688 ] }; // Arabic thal, zero width non-joiner, Arabic ddal
key <AB06> { [ 0x100062F, 0x1000654, 0x1000689 ] }; // Arabic dal, Arabic hamza above, Arabic dal with ring
key <AB07> { [ 0x100067E, 0x1000621, 0x1000679 ] }; // Arabic peh, Arabic hamza, Arabic tteh
key <AB08> { [ 0x1000648, greater, comma ] }; // Arabic waw
key <AB09> { [ period, less, 0x10006C7 ] }; // Arabic u
key <AB10> { [ slash, 0x100061F, 0x10006C9 ] }; // Arabic question mark, Arabic kirghiz yu
include "nbsp(zwnj2nb3)"
include "group(olpc)"
};
partial alphanumeric_keys
xkb_symbols "uz-olpc" {
name[Group1]= "Uzbek (Afghanistan, OLPC)";
key <TLDE> { [ 0x100200D, division, asciitilde ] }; // zero width joiner
key <AE01> { [ 0x10006F1, exclam, grave ] }; // Arabic one
key <AE02> { [ 0x10006F2, 0x100066C, at ] }; // Arabic two, Arabic thousands separator
key <AE03> { [ 0x10006F3, 0x100066B, numbersign ] }; // Arabic three, Arabic decimal separator
key <AE04> { [ 0x10006F4, 0x100060B, dollar ] }; // Arabic four, Afghani sign
key <AE05> { [ 0x10006F5, 0x100066A, percent ] }; // Arabic five, Arabic percent sign
key <AE06> { [ 0x10006F6, multiply, asciicircum ] }; // Arabic six
key <AE07> { [ 0x10006F7, 0x100060C, ampersand ] }; // Arabic seven, Arabic comma
key <AE08> { [ 0x10006F8, asterisk, enfilledcircbullet ] }; // Arabic eight
key <AE09> { [ 0x10006F9, parenright, 0x100200E ] }; // Arabic nine, left-to-right mark
key <AE10> { [ 0x10006F0, parenleft, 0x100200F ] }; // Arabic zero, right-to-left mark
key <AE11> { [ minus, 0x1000640, underscore ] }; // Arabic tatweel
key <AE12> { [ equal, plus ] };
key <AD01> { [ 0x1000636, 0x1000652, degree ] }; // Arabic dad, Arabic sukun
key <AD02> { [ 0x1000635, 0x100064C, 0x1000653 ] }; // Arabic sad, Arabic dammatan, Arabic maddah above
key <AD03> { [ 0x100062B, 0x100064D, EuroSign ] }; // Arabic theh, Arabic kasratan
key <AD04> { [ 0x1000642, 0x100064B, 0x100FD3E ] }; // Arabic qaf, Arabic fathatan, ornate left paren
key <AD05> { [ 0x1000641, 0x100064F, 0x100FD3F ] }; // Arabic feh, Arabic damma, ornate right paren
key <AD06> { [ 0x100063A, 0x1000650, 0x1000656 ] }; // Arabic ghain, Arabic kasra, Arabic subscript alef
key <AD07> { [ 0x1000639, 0x100064E, 0x100e659 ] }; // Arabic ain, Arabic fatha, Arabic zwarakay
key <AD08> { [ 0x1000647, 0x1000651, 0x1000670 ] }; // Arabic heh, Arabic shadda, Arabic superscript alef
key <AD09> { [ 0x100062E, bracketright, apostrophe ] }; // Arabic khah
key <AD10> { [ 0x100062D, bracketleft, quotedbl ] }; // Arabic hah
key <AD11> { [ 0x100062C, braceright, 0x1000681 ] }; // Arabic jeem, Arabic hah with hamza above
key <AD12> { [ 0x1000686, braceleft, 0x1000685 ] }; // Arabic tcheh, Arabic hah with three dots above
key <AC01> { [ 0x1000634, 0x1000624, 0x100069A ] }; // Arabic sheen, Arabic waw with hamza above, Arabic seen with dot below and dot above
key <AC02> { [ 0x1000633, 0x1000626, 0x10006CD ] }; // Arabic seen, Arabic yeh with hamza above, Arabic yeh with tail
key <AC03> { [ 0x10006CC, 0x100064A, 0x1000649 ] }; // Farsi yeh, Arabic yeh, Arabic alef maksura
key <AC04> { [ 0x1000628, 0x10006D0, 0x1000643 ] }; // Arabic beh, Arabic e, Arabic kaf
key <AC05> { [ 0x1000644, 0x1000623, 0x10006B7 ] }; // Arabic lam, Arabic hamza on alef, Arabic alef with hamza above
key <AC06> { [ 0x1000627, 0x1000622, 0x1000671 ] }; // Arabic alef, Arabic madda on alef, Arabic alef wasla
key <AC07> { [ 0x100062A, 0x1000629, 0x100067C ] }; // Arabic teh, Arabic teh marbuta, Arabic tteh
key <AC08> { [ 0x1000646, guillemotright, 0x10006BC ] }; // Arabic noon, Arabic noon with ring
key <AC09> { [ 0x1000645, guillemotleft, 0x10006BA ] }; // Arabic meem, Arabic noon ghunna
key <AC10> { [ 0x10006A9, colon, semicolon ] }; // Arabic keheh
key <AC11> { [ 0x10006AF, 0x100061B, 0x10006AB ] }; // Arabic gaf, Arabic semicolon, Arabic kaf with ring
key <BKSL> { [ backslash, bar, question ] };
key <AB01> { [ 0x1000638, 0x10006C9, 0x10006D2 ] }; // Arabic zah, Arabic kirghiz yu, Arabic yeh barree
key <AB02> { [ 0x1000637, 0x10006C7, 0x1000691 ] }; // Arabic tah, Arabic u, Arabic rreh
key <AB03> { [ 0x1000632, 0x1000698, 0x1000696 ] }; // Arabic zain, Arabic jeh, Arabic reh with dot below and dot above
key <AB04> { [ 0x1000631, 0x1000625, 0x1000693 ] }; // Arabic reh, Arabic alef with hamza below, Arabic reh with ring
key <AB05> { [ 0x1000630, 0x100200C, 0x1000688 ] }; // Arabic thal, zero width non-joiner, Arabic ddal
key <AB06> { [ 0x100062F, 0x1000654, 0x1000689 ] }; // Arabic dal, Arabic hamza above, Arabic dal with ring
key <AB07> { [ 0x100067E, 0x1000621, 0x1000679 ] }; // Arabic peh, Arabic hamza, Arabic tteh
key <AB08> { [ 0x1000648, greater, comma ] }; // Arabic waw
key <AB09> { [ period, less ] };
key <AB10> { [ slash, 0x100061F, 0x1000655 ] }; // Arabic question mark, Arabic hamza below
include "nbsp(zwnj2nb3)"
include "group(olpc)"
};

150
nixos/xkb/symbols/al Normal file
View File

@@ -0,0 +1,150 @@
// Keyboard layouts for Albania.
// Basic Albanian layout, by Pablo Saratxaga <pablo@mandrakesoft.com>.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type3)"
name[Group1]="Albanian";
key <TLDE> {[ backslash, bar, notsign, notsign ]};
key <AE01> {[ 1, exclam, asciitilde, dead_tilde ]};
key <AE02> {[ 2, quotedbl, dead_caron, oneeighth ]};
key <AE03> {[ 3, numbersign, dead_circumflex, sterling ]};
key <AE04> {[ 4, dollar, dead_breve, dollar ]};
key <AE05> {[ 5, percent, dead_abovering, threeeighths]};
key <AE06> {[ 6, asciicircum, dead_ogonek, fiveeighths ]};
key <AE07> {[ 7, ampersand, grave, dead_grave ]};
key <AE08> {[ 8, asterisk, dead_abovedot, trademark ]};
key <AE09> {[ 9, parenleft, dead_acute, plusminus ]};
key <AE10> {[ 0, parenright, dead_doubleacute, degree ]};
key <AE11> {[ minus, underscore, dead_diaeresis, questiondown]};
key <AD02> {[ w, W, bar, Greek_SIGMA ]};
key <AD03> {[ e, E, EuroSign, EuroSign ]};
key <AD11> {[ ccedilla, Ccedilla, division, dead_abovering]};
key <AD12> {[ at, apostrophe, multiply, dead_macron ]};
key <AC02> {[ s, S, dstroke, section ]};
key <AC03> {[ d, D, Dstroke, ETH ]};
key <AC10> {[ediaeresis, Ediaeresis, dollar, dead_doubleacute ]};
key <AC11> {[bracketleft, braceleft, ssharp, dead_caron ]};
key <BKSL> {[bracketright, braceright, currency, dead_breve ]};
key <AB08> {[ comma, semicolon, less, multiply ]};
key <AB09> {[ period, colon, greater, division ]};
key <AB10> {[ slash, question, dead_belowdot, dead_abovedot]};
include "level3(ralt_switch)"
};
// Tastiera Plisi (plisi.org)
// by Getoar Mjeku <gm@getoar.com>
partial alphanumeric_keys
xkb_symbols "plisi" {
include "us"
name[Group1]= "Albanian (Plisi)";
key <TLDE> {[ grave, asciitilde ]};
key <AE01> {[ 1, exclam, rightsinglequotemark ]};
key <AE02> {[ 2, at, twosuperior ]};
key <AE03> {[ 3, numbersign, threesuperior ]};
key <AE04> {[ 4, dollar, EuroSign ]};
key <AE05> {[ 5, percent, exclamdown ]};
key <AE06> {[ 6, asciicircum, questiondown ]};
key <AE07> {[ 7, ampersand, braceleft ]};
key <AE08> {[ 8, asterisk, braceright ]};
key <AE09> {[ 9, parenleft, bracketleft ]};
key <AE10> {[ 0, parenright, bracketright ]};
key <AE11> {[ minus, underscore, hyphen ]};
key <AE12> {[ equal, plus, registered ]};
key <AD01> {[ q, Q, dead_grave ]};
key <AD02> {[ w, W, dead_caron ]};
key <AD03> {[ e, E, dead_circumflex ]};
key <AD04> {[ r, R, dead_diaeresis ]};
key <AD05> {[ t, T, dead_macron ]};
key <AD06> {[ y, Y, dead_doubleacute ]};
key <AD07> {[ u, U, dead_breve ]};
key <AD08> {[ i, I, dead_tilde, idotless ]};
key <AD09> {[ o, O, dead_abovering ]};
key <AD10> {[ p, P, dead_abovedot ]};
key <AD11> {[ ccedilla, Ccedilla, dead_acute ]};
key <AD12> {[ greater, less, U031C ]};
key <AC01> {[ a, A, U2264 ]};
key <AC02> {[ s, S, U2265 ]};
key <AC03> {[ d, D, U2300 ]};
key <AC04> {[ f, F, U2032 ]};
key <AC05> {[ g, G, U2033 ]};
key <AC06> {[ h, H, section ]};
key <AC07> {[ j, J, dead_cedilla ]};
key <AC08> {[ k, K, dead_belowcomma ]};
key <AC09> {[ l, L, dead_ogonek ]};
key <AC10> {[ ediaeresis, Ediaeresis, dead_belowdot ]};
key <AC11> {[ apostrophe, quotedbl ]};
key <AB01> {[ z, Z, guillemotleft ]};
key <AB02> {[ x, X, guillemotright ]};
key <AB03> {[ c, C, copyright ]};
key <AB04> {[ v, V, U2039 ]};
key <AB05> {[ b, B, U203A ]};
key <AB06> {[ n, N, endash ]};
key <AB07> {[ m, M, emdash, mu ]};
key <AB08> {[ comma, semicolon, U02BB ]};
key <AB09> {[ period, colon, U200C ]};
key <AB10> {[ slash, question, U2011 ]};
key <BKSL> {[ backslash, bar, U031B ]};
include "level3(ralt_switch)"
};
// EXTRAS:
// Veqilharxhi layout, by Arbër Boriçi (illyriensis@protonmail.com), September 2019.
partial alphanumeric_keys
xkb_symbols "veqilharxhi" {
include "us"
name[Group1]="Albanian (Veqilharxhi)";
// QWERTYUIOP
key <AD01> {[ U105B0, U10589 ]}; // 𐖰, 𐖉
key <AD02> {[ U1059F, U10578, w, W ]}; // 𐖟, 𐕸, w, W
key <AD03> {[ U1059E, U10577 ]}; // 𐖞, 𐕷
key <AD04> {[ U105B1, U1058A, U105B2, U1058B ]}; // 𐖱, 𐖊, 𐖲, 𐖋
key <AD05> {[ U105B5, U1058E, U105B6, U1058F ]}; // 𐖵, 𐖎, 𐖶, 𐖏
key <AD06> {[ U105BB, U10594 ]}; // 𐖻, 𐖔
key <AD07> {[ U105B7, U10590 ]}; // 𐖷, 𐖐
key <AD08> {[ U105A5, U1057E ]}; // 𐖥, 𐕾
key <AD09> {[ U105AE, U10587 ]}; // 𐖮, 𐖇
key <AD10> {[ U105AF, U10588 ]}; // 𐖯, 𐖈
// ASDFGHJKL
key <AC01> {[ U10597, U10570 ]}; // 𐖗, 𐕰
key <AC02> {[ U105B3, U1058C, U105B4, U1058D ]}; // 𐖳, 𐖌, 𐖴, 𐖍
key <AC03> {[ U1059C, U10575, U1059D, U10576 ]}; // 𐖜, 𐕵, 𐖝, 𐕶
key <AC04> {[ U105A0, U10579 ]}; // 𐖠, 𐕹
key <AC05> {[ U105A1, U1057A, U105A2, U1057B ]}; // 𐖡, 𐕺, 𐖢, 𐕻
key <AC06> {[ U105A3, U1057C ]}; // 𐖣, 𐕼
key <AC07> {[ U105A7, U10580 ]}; // 𐖧, 𐖀
key <AC08> {[ U105A8, U10581 ]}; // 𐖨, 𐖁
key <AC09> {[ U105A9, U10582, U105AA, U10583 ]}; // 𐖩, 𐖂, 𐖪, 𐖃
// ZXCVBNM
key <AB01> {[ U105BC, U10595, U105BD, U10596 ]}; // 𐖼, 𐖕, 𐖽, 𐖖
key <AB02> {[ U105B9, U10592, U105BA, U10593 ]}; // 𐖹, 𐖒, 𐖺, 𐖓
key <AB03> {[ U1059A, U10573, U1059B, U10574 ]}; // 𐖚, 𐕳, 𐖛, 𐕴
key <AB04> {[ U105B8, U10591 ]}; // 𐖸, 𐖑
key <AB05> {[ U10598, U10571 ]}; // 𐖘, 𐕱
key <AB06> {[ U105AC, U10585, U105AD, U10586 ]}; // 𐖬, 𐖅, 𐖭, 𐖆
key <AB07> {[ U105AB, U10584 ]}; // 𐖫, 𐖄
include "level3(ralt_switch)"
};

129
nixos/xkb/symbols/altwin Normal file
View File

@@ -0,0 +1,129 @@
// Meta is mapped to second level of Alt.
partial modifier_keys
xkb_symbols "meta_alt" {
key <LALT> {[ Alt_L, Meta_L ]};
key <RALT> {[ Alt_R, Meta_R ], type[group1] = "TWO_LEVEL" };
modifier_map Mod1 { <LALT>, <RALT> };
};
// Alt is mapped to the Super and the usual Alt.
partial modifier_keys
xkb_symbols "alt_win" {
key <LWIN> {[ Alt_L ]};
key <RWIN> {[ Alt_R ]};
modifier_map Mod1 { <LWIN>, <RWIN> };
};
// Ctrl is mapped to the Super and the usual Ctrl keys.
partial modifier_keys
xkb_symbols "ctrl_win" {
key <LWIN> {[ Control_L ]};
key <RWIN> {[ Control_R ]};
modifier_map Control { <LWIN>, <RWIN> };
};
// Ctrl is mapped to the Right Super and the usual Ctrl key.
partial modifier_keys
xkb_symbols "ctrl_rwin" {
key <RWIN> {[ Control_R ]};
modifier_map Control { <RWIN> };
};
// Ctrl is mapped to the Alt, Alt to the Super, and Win to the Ctrl keys.
partial modifier_keys
xkb_symbols "ctrl_alt_win" {
key <LALT> {[ Control_L, Control_L ]};
key <RALT> {[ Control_R, Control_R ], type[group1] = "TWO_LEVEL" };
key <LWIN> {[ Alt_L, Meta_L ]};
key <RWIN> {[ Alt_R, Meta_R ]};
key <LCTL> {[ Super_L ]};
key <RCTL> {[ Super_R ]};
modifier_map Control { <LALT>, <RALT> };
modifier_map Mod1 { <LWIN>, <RWIN> };
modifier_map Mod4 { <LCTL>, <RCTL> };
};
// Meta is mapped to the Super keys.
partial modifier_keys
xkb_symbols "meta_win" {
key <LALT> {[ Alt_L, Alt_L ]};
key <RALT> {[ Alt_R, Alt_R ], type[group1] = "TWO_LEVEL" };
key <LWIN> {[ Meta_L ]};
key <RWIN> {[ Meta_R ]};
modifier_map Mod1 { <LALT>, <RALT> };
modifier_map Mod4 { <META>, Meta_L, Meta_R };
};
// Meta is mapped to the left Super key.
partial modifier_keys
xkb_symbols "left_meta_win" {
key <LALT> {[ Alt_L, Alt_L ]};
key <LWIN> {[ Meta_L ]};
modifier_map Mod1 { <LALT> };
modifier_map Mod4 { <META>, Meta_L };
};
// Hyper is mapped to the Super keys.
partial modifier_keys
xkb_symbols "hyper_win" {
key <LWIN> {[ Hyper_L ]};
key <RWIN> {[ Hyper_R ]};
modifier_map Mod4 { Hyper_L, Hyper_R };
};
// Menu is mapped to the Menu key.
partial modifier_keys
xkb_symbols "menu" {
key <MENU> {[ Menu ]};
};
// Super is mapped to the Menu key.
partial modifier_keys
xkb_symbols "menu_win" {
key <MENU> {[ Super_R ]};
modifier_map Mod4 { <MENU> };
};
// Make the right Super key an additional Alt,
// and the Menu key an additional Super.
partial modifier_keys
xkb_symbols "alt_super_win" {
key <LALT> {[ Alt_L, Meta_L ]};
key <RWIN> {[ Alt_R, Meta_R ]};
key <LWIN> {[ Super_L ]};
key <MENU> {[ Super_R ]};
modifier_map Mod1 { <LALT>, <RWIN> };
modifier_map Mod4 { <LWIN>, <MENU> };
};
// Swap the left Alt and Super.
partial modifier_keys
xkb_symbols "swap_lalt_lwin" {
key <LALT> {[ Super_L ], type[group1] = "ONE_LEVEL" };
key <LWIN> {[ Alt_L, Meta_L ]};
modifier_map Mod4 { <LALT> };
modifier_map Mod1 { <LWIN> };
};
// Swap the right Alt and Super.
hidden partial modifier_keys
xkb_symbols "swap_ralt_rwin" {
key <RALT> {[ Super_R ], type[group1] = "ONE_LEVEL" };
key <RWIN> {[ Alt_R, Meta_R ]};
modifier_map Mod4 { <RALT> };
modifier_map Mod1 { <RWIN> };
};
// Swap Alt and Super.
partial modifier_keys
xkb_symbols "swap_alt_win" {
include "altwin(swap_lalt_lwin)"
include "altwin(swap_ralt_rwin)"
};
// Super is mapped to the PrtSc key (and the usual Win key).
partial modifier_keys
xkb_symbols "prtsc_rwin" {
replace key <PRSC> {[ Super_R, Super_R ]};
modifier_map Mod4 { <PRSC>, <RWIN> };
};

247
nixos/xkb/symbols/am Normal file
View File

@@ -0,0 +1,247 @@
// Keyboard layouts for Armenia.
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Armenian";
key <TLDE> {[ Armenian_separation_mark, Armenian_exclam ]};
key <AE01> {[ Armenian_fe, Armenian_FE ]};
key <AE02> {[ Armenian_dza, Armenian_DZA ]};
key <AE03> {[ Armenian_hyphen, U2014 ]}; // emdash
key <AE04> {[ comma, dollar ]};
key <AE05> {[ Armenian_full_stop, U2026 ]}; // ellipsis
key <AE06> {[ Armenian_question, percent ]};
key <AE07> {[ U2024, Armenian_ligature_ew ]}; // Armenian semicolon (mijaket)
key <AE08> {[ Armenian_accent, Armenian_apostrophe ]};
key <AE09> {[ parenright, parenleft ]};
key <AE10> {[ Armenian_o, Armenian_O ]};
key <AE11> {[ Armenian_e, Armenian_E ]};
key <AE12> {[ Armenian_ghat, Armenian_GHAT ]};
key <AD01> {[ Armenian_tche, Armenian_TCHE ]};
key <AD02> {[ Armenian_pyur, Armenian_PYUR ]};
key <AD03> {[ Armenian_ben, Armenian_BEN ]};
key <AD04> {[ Armenian_se, Armenian_SE ]};
key <AD05> {[ Armenian_men, Armenian_MEN ]};
key <AD06> {[ Armenian_vo, Armenian_VO ]};
key <AD07> {[ Armenian_vyun, Armenian_VYUN ]};
key <AD08> {[ Armenian_ken, Armenian_KEN ]};
key <AD09> {[ Armenian_at, Armenian_AT ]};
key <AD10> {[ Armenian_to, Armenian_TO ]};
key <AD11> {[ Armenian_tsa, Armenian_TSA ]};
key <AD12> {[ Armenian_tso, Armenian_TSO ]};
key <AC01> {[ Armenian_je, Armenian_JE ]};
key <AC02> {[ Armenian_vev, Armenian_VEV ]};
key <AC03> {[ Armenian_gim, Armenian_GIM ]};
key <AC04> {[ Armenian_yech, Armenian_YECH ]};
key <AC05> {[ Armenian_ayb, Armenian_AYB ]};
key <AC06> {[ Armenian_nu, Armenian_NU ]};
key <AC07> {[ Armenian_ini, Armenian_INI ]};
key <AC08> {[ Armenian_tyun, Armenian_TYUN ]};
key <AC09> {[ Armenian_ho, Armenian_HO ]};
key <AC10> {[ Armenian_pe, Armenian_PE ]};
key <AC11> {[ Armenian_re, Armenian_RE ]};
key <BKSL> {[ guillemotright, guillemotleft ]};
key <LSGT> {[ question, Armenian_hyphen ]};
key <AB01> {[ Armenian_zhe, Armenian_ZHE ]};
key <AB02> {[ Armenian_da, Armenian_DA ]};
key <AB03> {[ Armenian_cha, Armenian_CHA ]};
key <AB04> {[ Armenian_hi, Armenian_HI ]};
key <AB05> {[ Armenian_za, Armenian_ZA ]};
key <AB06> {[ Armenian_lyun, Armenian_LYUN ]};
key <AB07> {[ Armenian_ke, Armenian_KE ]};
key <AB08> {[ Armenian_khe, Armenian_KHE ]};
key <AB09> {[ Armenian_sha, Armenian_SHA ]};
key <AB10> {[ Armenian_ra, Armenian_RA ]};
};
partial alphanumeric_keys
xkb_symbols "olpc" {
include "am(basic)"
include "group(olpc)"
};
xkb_symbols "phonetic" {
include "am(basic)"
name[Group1]= "Armenian (phonetic)";
key <AE01> {[ Armenian_e, Armenian_E ]};
key <AE02> {[ Armenian_to, Armenian_TO ]};
key <AE03> {[ Armenian_pyur, Armenian_PYUR ]};
key <AE04> {[ Armenian_dza, Armenian_DZA ]};
key <AE05> {[ Armenian_je, Armenian_JE ]};
key <AE06> {[ Armenian_vyun, Armenian_VYUN ]};
key <AE07> {[ Armenian_ligature_ew, U058F ]}; // Armenian Dram sign
key <AE08> {[ Armenian_ra, Armenian_RA ]};
key <AE09> {[ Armenian_cha, Armenian_CHA ]};
key <AE10> {[ Armenian_tche, Armenian_TCHE ]};
key <AE11> {[ Armenian_hyphen, U2015 ]}; // quotation dash
key <AE12> {[ Armenian_zhe, Armenian_ZHE ]};
key <LatQ> {[ Armenian_ke, Armenian_KE ]};
key <LatW> {[ Armenian_vo, Armenian_VO ]};
key <AD03> {[ Armenian_yech, Armenian_YECH ]};
key <AD04> {[ Armenian_re, Armenian_RE ]};
key <AD05> {[ Armenian_tyun, Armenian_TYUN ]};
key <LatY> {[ Armenian_at, Armenian_AT ]};
key <AD07> {[ Armenian_vyun, Armenian_VYUN ]};
key <AD08> {[ Armenian_ini, Armenian_INI ]};
key <AD09> {[ Armenian_o, Armenian_O ]};
key <AD10> {[ Armenian_pe, Armenian_PE ]};
key <AD11> {[ Armenian_khe, Armenian_KHE ]};
key <AD12> {[ Armenian_tsa, Armenian_TSA ]};
key <LatA> {[ Armenian_ayb, Armenian_AYB ]};
key <AC02> {[ Armenian_se, Armenian_SE ]};
key <AC03> {[ Armenian_da, Armenian_DA ]};
key <AC04> {[ Armenian_fe, Armenian_FE ]};
key <AC05> {[ Armenian_gim, Armenian_GIM ]};
key <AC06> {[ Armenian_ho, Armenian_HO ]};
key <AC07> {[ Armenian_hi, Armenian_HI ]};
key <AC08> {[ Armenian_ken, Armenian_KEN ]};
key <AC09> {[ Armenian_lyun, Armenian_LYUN ]};
key <AC10> {[ semicolon, Armenian_full_stop ]};
key <AC11> {[ Armenian_accent, quotedbl ]};
key <BKSL> {[ Armenian_sha, Armenian_SHA ]};
key <LatZ> {[ Armenian_za, Armenian_ZA ]};
key <AB02> {[ Armenian_ghat, Armenian_GHAT ]};
key <AB03> {[ Armenian_tso, Armenian_TSO ]};
key <AB04> {[ Armenian_vev, Armenian_VEV ]};
key <AB05> {[ Armenian_ben, Armenian_BEN ]};
key <AB06> {[ Armenian_nu, Armenian_NU ]};
key <AB07> {[ Armenian_men, Armenian_MEN ]};
key <AB08> {[ comma, guillemotleft ]};
key <AB09> {[ U2024, guillemotright ]}; // Armenian semicolon (mijaket)
key <AB10> {[ slash, Armenian_question ]};
};
partial alphanumeric_keys
xkb_symbols "phonetic-alt" {
include "am(phonetic)"
name[Group1]= "Armenian (alt. phonetic)";
key <AE08> {[ Armenian_re, Armenian_RE ]};
key <AD04> {[ Armenian_ra, Armenian_RA ]};
};
partial alphanumeric_keys
xkb_symbols "olpc-phonetic" {
include "am(phonetic-alt)"
name[Group1]= "Armenian (OLPC, phonetic)";
include "group(olpc)"
};
partial alphanumeric_keys
xkb_symbols "eastern" {
name[Group1]="Armenian (eastern)";
// This is the closer phonetic transliteration for Eastern Armenian
// than the Windows XP layout for Eastern Armenian, which seems
// to have contained a bug, with the reversal of 'g' for keh and 'c' for gim.
// Also, AE01 (the colon) has been replaced with the Armenian_full_stop,
// and capital AE07 (ken) with the Armenian ligature ew.
key <TLDE> {[ Armenian_separation_mark, Armenian_exclam ]};
key <AE01> {[ Armenian_full_stop, KP_1 ]};
key <AE02> {[ Armenian_dza, Armenian_DZA ]};
key <AE03> {[ Armenian_hi, Armenian_HI ]};
key <AE04> {[ Armenian_accent, KP_3 ]};
key <AE05> {[ comma, KP_4 ]};
key <AE06> {[ minus, KP_9 ]};
key <AE07> {[ period, Armenian_ligature_ew ]};
key <AE08> {[ guillemotleft, parenleft ]};
key <AE09> {[ guillemotright, parenright ]};
key <AE10> {[ Armenian_o, Armenian_O ]};
key <AE11> {[ Armenian_ra, Armenian_RA ]};
key <AE12> {[ Armenian_zhe, Armenian_ZHE ]};
key <LatQ> {[ Armenian_khe, Armenian_KHE ]};
key <LatW> {[ Armenian_vyun, Armenian_VYUN ]};
key <AD03> {[ Armenian_e, Armenian_E ]};
key <AD04> {[ Armenian_re, Armenian_RE ]};
key <AD05> {[ Armenian_tyun, Armenian_TYUN ]};
key <LatY> {[ Armenian_yech, Armenian_YECH ]};
key <AD07> {[ Armenian_at, Armenian_AT ]};
key <AD08> {[ Armenian_ini, Armenian_INI ]};
key <AD09> {[ Armenian_vo, Armenian_VO ]};
key <AD10> {[ Armenian_pe, Armenian_PE ]};
key <AD11> {[ Armenian_cha, Armenian_CHA ]};
key <AD12> {[ Armenian_je, Armenian_JE ]};
key <LatA> {[ Armenian_ayb, Armenian_AYB ]};
key <AC02> {[ Armenian_se, Armenian_SE ]};
key <AC03> {[ Armenian_da, Armenian_DA ]};
key <AC04> {[ Armenian_fe, Armenian_FE ]};
key <AC05> {[ Armenian_gim, Armenian_GIM ]};
key <AC06> {[ Armenian_ho, Armenian_HO ]};
key <AC07> {[ Armenian_tche, Armenian_TCHE ]};
key <AC08> {[ Armenian_ken, Armenian_KEN ]};
key <AC09> {[ Armenian_lyun, Armenian_LYUN ]};
key <AC10> {[ Armenian_to, Armenian_TO ]};
key <AC11> {[ Armenian_pyur, Armenian_PYUR ]};
key <BKSL> {[ apostrophe, Armenian_question ]};
key <LatZ> {[ Armenian_za, Armenian_ZA ]};
key <AB02> {[ Armenian_tso, Armenian_TSO ]};
key <AB03> {[ Armenian_ke, Armenian_KE ]};
key <AB04> {[ Armenian_vev, Armenian_VEV ]};
key <AB05> {[ Armenian_ben, Armenian_BEN ]};
key <AB06> {[ Armenian_nu, Armenian_NU ]};
key <AB07> {[ Armenian_men, Armenian_MEN ]};
key <AB08> {[ Armenian_sha, Armenian_SHA ]};
key <AB09> {[ Armenian_ghat, Armenian_GHAT ]};
key <AB10> {[ Armenian_tsa, Armenian_TSA ]};
};
partial alphanumeric_keys
xkb_symbols "western" {
include "am(eastern)"
name[Group1]="Armenian (western)";
// This is exactly the same layout for Western Armenian
// as in Windows XP, except:
// AE01 (the colon) has been replaced with the Armenian_full_stop and
// capital AE07 (ken) with the Armenian ligature ew
key <LatW> {[ Armenian_vev, Armenian_VEV ]};
key <AD05> {[ Armenian_da, Armenian_DA ]};
key <AD10> {[ Armenian_ben, Armenian_BEN ]};
key <AC03> {[ Armenian_tyun, Armenian_TYUN ]};
key <AC05> {[ Armenian_ken, Armenian_KEN ]};
key <AC08> {[ Armenian_ke, Armenian_KE ]};
key <AB03> {[ Armenian_gim, Armenian_GIM ]};
key <AB04> {[ Armenian_vyun, Armenian_VYUN ]};
key <AB05> {[ Armenian_pe, Armenian_PE ]};
};
partial alphanumeric_keys
xkb_symbols "eastern-alt" {
include "am(eastern)"
name[Group1]="Armenian (alt. eastern)";
// This replicates the Windows XP keyboard layout for Eastern
// Armenian exactly (including the bug), except:
// AE01 (the colon) has been replaced with the Armenian_full_stop and
// capital AE07 (ken) with the Armenian ligature ew
key <AD05> {[ Armenian_ke, Armenian_KE ]};
key <AB03> {[ Armenian_gim, Armenian_GIM ]};
};

198
nixos/xkb/symbols/ancient Normal file
View File

@@ -0,0 +1,198 @@
// Keyboard layouts for languages from antiquity.
default partial alphanumeric_keys
xkb_symbols "dummy" {
include "ancient(uga)"
name[group1]= "Ancient";
};
// EXTRAS:
// Gothic layout, created by Tim Nelson <wayland@wayland.id.au>, 2016.
// (Reference: http://www.alanwood.net/unicode/gothic.html.)
//
// Priorities in selecting keys for letters:
// 1. Make the layout like QWERTY (with Jer = Y)
// 2. Borrow a thing from Greek layout (Iggws = X)
// 3. Fit remaining things in (Hwair = V, Thiuth = J)
// 4. Put the numbers in; use Shift for ×10 (10, 20, 30...);
// unshifted AE10 = 900, since Gothic didn't have a zero
//
partial alphanumeric_keys
xkb_symbols "got" {
name[group1]= "Gothic";
key <TLDE> {[ grave, asciitilde ]};
key <AE01> {[ U10330, U10339 ]}; // AHSA / EIS
key <AE02> {[ U10331, U1033A ]}; // BAIRKAN / KUSMA
key <AE03> {[ U10332, U1033B ]}; // GIBA / LAGUS
key <AE04> {[ U10333, U1033C ]}; // DAGS / MANNA
key <AE05> {[ U10334, U1033D ]}; // AIHVUS / NAUTHS
key <AE06> {[ U10335, U1033E ]}; // QAIRTHRA / JER
key <AE07> {[ U10336, U1033F ]}; // IUJA / URUS
key <AE08> {[ U10337, U10340 ]}; // HAGL / PAIRTHRA
key <AE09> {[ U10338, U10341 ]}; // THIUTH / NINETY
key <AE10> {[ U1034A, U10342 ]}; // NINE HUNDRED / RAIDA
key <AE11> {[ minus, underscore ]};
key <AE12> {[ equal, plus ]};
key <AD01> {[ U10335 ]}; // Qairthra
key <AD02> {[ U10345 ]}; // Winja
key <AD03> {[ U10334 ]}; // Aihvus
key <AD04> {[ U10342 ]}; // Raida
key <AD05> {[ U10344 ]}; // Teiws
key <AD06> {[ U1033E ]}; // Jer
key <AD07> {[ U1033F ]}; // Urus
key <AD08> {[ U10339 ]}; // Eis
key <AD09> {[ U10349 ]}; // Othal
key <AD10> {[ U10340 ]}; // Pairthra
key <AD11> {[ bracketleft, braceleft ]};
key <AD12> {[bracketright, braceright ]};
key <AC01> {[ U10330 ]}; // Ahsa
key <AC02> {[ U10343 ]}; // Sauil
key <AC03> {[ U10333 ]}; // Dags
key <AC04> {[ U10346 ]}; // Faihu
key <AC05> {[ U10332 ]}; // Giba
key <AC06> {[ U10337 ]}; // Hagl
key <AC07> {[ U10338 ]}; // Thiuth
key <AC08> {[ U1033A ]}; // Kusma
key <AC09> {[ U1033B ]}; // Lagus
key <AC10> {[ semicolon, colon ]};
key <AC11> {[ apostrophe, quotedbl ]};
key <BKSL> {[ backslash, bar ]};
key <AB01> {[ U10336 ]}; // Iuja
key <AB02> {[ U10347 ]}; // Iggws
key <AB03> {[ c, C ]};
key <AB04> {[ U10348 ]}; // Hwair
key <AB05> {[ U10331 ]}; // Bairkan
key <AB06> {[ U1033D ]}; // Nauths
key <AB07> {[ U1033C ]}; // Manna
key <AB08> {[ comma, less ]};
key <AB09> {[ period, greater ]};
key <AB10> {[ slash, question ]};
};
// In this layout the Ugaritic characters get the places of
// the Arabic characters with the matching sound values.
partial alphanumeric_keys
xkb_symbols "uga" {
name[Group1]= "Ugaritic";
key.type[Group1]="TWO_LEVEL";
key <TLDE> {[ U1038F, none ]}; // 𐎏
key <AE01> {[ 1, exclam ]}; // 1 !
key <AE02> {[ 2, at ]}; // 2 @
key <AE03> {[ 3, numbersign ]}; // 3 #
key <AE04> {[ 4, dollar ]}; // 4 $
key <AE05> {[ 5, percent ]}; // 5 %
key <AE06> {[ 6, asciicircum ]}; // 6 ^
key <AE07> {[ 7, ampersand ]}; // 7 &
key <AE08> {[ 8, asterisk ]}; // 8 *
key <AE09> {[ 9, parenleft ]}; // 9 (
key <AE10> {[ 0, parenright ]}; // 0 )
key <AE11> {[ minus, underscore ]}; // - _
key <AE12> {[ equal, plus ]}; // = +
key <AD01> {[ U1039D, none ]}; // 𐎝
key <AD02> {[ U10395, none ]}; // 𐎕
key <AD03> {[ U10398, none ]}; // 𐎘
key <AD04> {[ U10396, none ]}; // 𐎖
key <AD05> {[ U10394, none ]}; // 𐎔
key <AD06> {[ U10399, none ]}; // 𐎙
key <AD07> {[ U10393, grave ]}; // 𐎓 `
key <AD08> {[ U10385, division ]}; // 𐎅 ÷
key <AD09> {[ U10383, multiply ]}; // 𐎃 ×
key <AD10> {[ U10388, semicolon ]}; // 𐎈 ;
key <AD11> {[ U10382, greater ]}; // 𐎂 >
key <AD12> {[ U10384, less ]}; // 𐎄 <
key <AC01> {[ U1038C, U27E8 ]}; // 𐎌 ⟨
key <AC02> {[ U10392, U27E9 ]}; // 𐎒 ⟩
key <AC03> {[ U1038A, bracketleft ]}; // 𐎊 [
key <AC04> {[ U10381, bracketright ]}; // 𐎁 ]
key <AC05> {[ U1038D, none ]}; // 𐎍
key <AC06> {[ U10380, none ]}; // 𐎀
key <AC07> {[ U1039A, none ]}; // 𐎚
key <AC08> {[ U10390, none ]}; // 𐎐
key <AC09> {[ U1038E, slash ]}; // 𐎎 /
key <AC10> {[ U1038B, colon ]}; // 𐎋:
key <AC11> {[ U10389, quotedbl ]}; // 𐎉 "
key <BKSL> {[backslash, bar ]}; // \ |
key <LSGT> {[ bar, endash ]}; // |
key <AB01> {[ U1039B, guillemotleft ]}; // 𐎛 «
key <AB02> {[ none, guillemotright ]}; // »
key <AB03> {[ U1039C, braceleft ]}; // 𐎜 {
key <AB04> {[ U10397, braceright ]}; // 𐎗 }
key <AB05> {[ U1039F, U2039 ]}; // 𐎟
key <AB06> {[ question, U203A ]}; // ?
key <AB07> {[ U02BC, apostrophe ]}; // ʼ '
key <AB08> {[ U10386, comma ]}; // 𐎆 ,
key <AB09> {[ U10387, period ]}; // 𐎇 .
key <AB10> {[ U10391, periodcentered ]}; // 𐎑 ·
};
// Layout for Avestan, by Ernst Tremel, coded by Simos Xenitellis.
// Reference: https://blog.simos.info/avestan-keyboard-layout/.
// Generated with https://github.com/simos/keyboardlayouteditor.
partial alphanumeric_keys
xkb_symbols "ave"
{
name[Group1] = "Avestan";
key <AE01> {[ U10B78 ]}; // 𐭸
key <AE02> {[ U10B79 ]}; // 𐭹
key <AE03> {[ U10B7A ]}; // 𐭺
key <AE04> {[ U10B7B ]}; // 𐭻
key <AE05> {[ U10B7C ]}; // 𐭼
key <AE06> {[ U10B7D ]}; // 𐭽
key <AE07> {[ U10B7E ]}; // 𐭾
key <AE08> {[ U10B7F ]}; // 𐭿
key <AD01> {[ U10B22, U10B23 ]}; // 𐬢 𐬣
key <AD02> {[ U10B33, U10B34 ]}; // 𐬳 𐬴
key <AD03> {[ U10B08, U10B09 ]}; // 𐬈 𐬉
key <AD04> {[ U10B2D, U10B26 ]}; // 𐬭 𐬦
key <AD05> {[ U10B19, U10B1A ]}; // 𐬙 𐬚
key <AD06> {[ U10B2B, U10B2A ]}; // 𐬫 𐬪
key <AD07> {[ U10B0E, U10B0F ]}; // 𐬎 𐬏
key <AD08> {[ U10B0C, U10B0D ]}; // 𐬌 𐬍
key <AD09> {[ U10B0A, U10B0B ]}; // 𐬊 𐬋
key <AD10> {[ U10B1E ]}; // 𐬞
key <AD11> {[ U10B06, U10B07 ]}; // 𐬆 𐬇
key <AD12> {[ U10B02, U10B03 ]}; // 𐬂 𐬃
key <AC01> {[ U10B00, U10B01 ]}; // 𐬀 𐬁
key <AC02> {[ U10B2F, U10B31 ]}; // 𐬯 𐬱
key <AC03> {[ U10B1B, U10B1C ]}; // 𐬛 𐬜
key <AC04> {[ U10B1F, U10B16 ]}; // 𐬟 𐬖
key <AC05> {[ U10B14, U10B15 ]}; // 𐬔 𐬕
key <AC06> {[ U10B35, UE100 ]}; // 𐬵 
key <AC07> {[ U10B18, U10B24 ]}; // 𐬘 𐬤
key <AC08> {[ U10B10, UE101 ]}; // 𐬐 
key <AC09> {[ U10B2E, UE103 ]}; // 𐬮 
key <AC10> {[ U10B3B, U10B3A ]}; // 𐬻 𐬺
key <AC11> {[ U10B1D ]}; // 𐬝
key <BKSL> {[ U10B04, U10B05 ]}; // 𐬄 𐬅
key <LSGT> {[ U10B04, U10B05 ]}; // 𐬄 𐬅
key <AB01> {[ U10B30, U10B32 ]}; // 𐬰 𐬲
key <AB02> {[ U10B11, U10B12 ]}; // 𐬑 𐬒
key <AB03> {[ U10B17, UE102 ]}; // 𐬗 
key <AB04> {[ U10B2C, U10B13 ]}; // 𐬬 𐬓
key <AB05> {[ U10B20, U10B21 ]}; // 𐬠 𐬡
key <AB06> {[ U10B25, U10B27 ]}; // 𐬥 𐬧
key <AB07> {[ U10B28, U10B29 ]}; // 𐬨 𐬩
key <AB08> {[ U10B3C, U10B39 ]}; // 𐬼 𐬹
key <AB09> {[ U10B3E, U10B3D ]}; // 𐬾 𐬽
key <AB10> {[ U10B3F, periodcentered ]}; // 𐬿 ·
};

687
nixos/xkb/symbols/apl Normal file
View File

@@ -0,0 +1,687 @@
// EXTRAS:
//
// APL Keyboard Layouts
// This file supports:
// - The Sharp APL for Unix (SAX) layout
// - The IBM APL2 layout
// - The Manugistics APL*PLUS II (Version 5.1, 1993) keyboard layout
// - The Dyalog APL layout - with additions for box drawing and commands
// Unicode APL table: http://aplwiki.com/UnicodeAplTable
// ...and another: http://publibfp.boulder.ibm.com/epubs/pdf/h2110611.pdf (appendix A)
// Generic Unicode stuff: http://www.fileformat.info/info/unicode/category/index.htm
// Tim Nelson (this file's creator) says:
// This file doesn't deal with all the combining stuff -- I'm not an APL programmer,
// and am not quite sure what's needed here. However, it may be possible to get this
// working with dead keys and the like. Patches gratefully accepted.
// [Geoff Streeter: What has been done to is to support all of the APL overstrikes in the compose table]
// Some of the shift-key assignments may differ from the APL tradition. If
// that's not considered acceptable, it should be possible to remap the
// shift keys. I have striven, however, to ensure that the use of shift keys
// in these maps is at least self-consistent.
// I'm assuming that this will be used with another keyboard layout (ie. for
// your language), with a special shift key to use these maps.
// 2018-07-02 added some codes to the Unicode Private Use page.
// 2017-02-27 changed ¤ to ⌺, added ⊆
// 2012-09-26 changed "overbar" to macron which fixed some strangeness in xterm
// 2011-12-22 Geoff Streeter: geoff@dyalog.com
// Added the Dyalog support.
// Corrected (what he thinks) are some errors.
// Resolving the confusion between APL's and Unicode's concept of Left and Right tacks.
// Unsure about some of the inheritance from APL2 into APLPLUS. Patches welcome.
// Complied with freedesktop.org requirement that the keycodes be in sorted order. Which
// leads to the bottom to top (roughly) definitions.
// default layout seems to have to be the first one. Choosing the basic Dyalog layout is definitely
// better than using the "common" one. Choosing the complete Dyalog layout is not useful to non-Dyalog
// users.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "apl(dyalog_base)" // forward reference to a good APL keyboard without Dyalogs extras
name[Group1]="APL";
};
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃
// │ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ │ ∧ │ │ ┃ ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃
// ┃ ┃ ? │ ⍵ │ ∊ │ │ ~ │ ↑ │ ↓ │ │ ○ │ * │ ← │ ┃ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃
// ┃ ┃ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ │ │ ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃
// ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ │ ⊥ │ │ | │ │ │ ┃ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
hidden partial alphanumeric_keys
xkb_symbols "common" {
key <AB01> { [ U2282 ] }; // Z: ⊂ -- Subset Of
key <AB02> { [ U2283 ] }; // X: ⊃ -- Superset Of
key <AB03> { [ U2229 ] }; // C: ∩ -- Intersection
key <AB04> { [ U222A ] }; // V: -- Union
key <AB05> { [ U22A5 ] }; // B: ⊥ -- Up Tack
key <AB06> { [ U22A4 ] }; // N: -- Down Tack
key <AB07> { [ U007C ] }; // M: | -- Vertical Line
key <AC01> { [ U237A ] }; // A: -- APL Functional Symbol Alpha
key <AC02> { [ U2308 ] }; // S: ⌈ -- Left Ceiling
key <AC03> { [ U230A ] }; // D: ⌊ -- Left Floor
key <AC04> { [ underscore ] }; // F:
key <AC05> { [ U2207 ] }; // G: ∇ -- Nabla
key <AC06> { [ U2206 ] }; // H: ∆ -- Increment
key <AC07> { [ U2218 ] }; // J: ∘ -- Ring Operator
key <AC08> { [ apostrophe ] }; // K:
key <AC09> { [ U2395 ] }; // L: ⎕ -- APL Functional Symbol Quad
key <AD01> { [ question ] }; // Q:
key <AD02> { [ U2375 ] }; // W: ⍵ -- APL Functional Symbol Omega
key <AD03> { [ U220A ] }; // E: ∊ -- Small Element Of
key <AD04> { [ U2374 ] }; // R: -- APL Functional Symbol Rho
key <AD05> { [ asciitilde ] }; // T:
key <AD06> { [ U2191 ] }; // Y: ↑ -- Upwards Arrow
key <AD07> { [ U2193 ] }; // U: ↓ -- Downwards Arrow
key <AD08> { [ U2373 ] }; // I: -- APL Functional Symbol Iota
key <AD09> { [ U25CB ] }; // O: ○ -- White Circle
key <AD10> { [ asterisk ] }; // P: * -- asterisk
key <AD11> { [ U2190 ] }; // [: ← -- Leftwards Arrow
key <AE01> { [ diaeresis ] };
key <AE02> { [ macron ] }; // ¯ -- Macron
key <AE03> { [ less ] };
key <AE04> { [ U2264 ] }; // ≤ -- Less-than Or Equal To
key <AE05> { [ equal ] };
key <AE06> { [ U2265 ] }; // ≥ -- Greater-than Or Equal To
key <AE07> { [ greater ] };
key <AE08> { [ U2260 ] }; // ≠ -- Not Equal To
key <AE09> { [ U2228 ] }; // -- Logical Or
key <AE10> { [ U2227 ] }; // ∧ -- Logical And
};
// Keys common to a number of keyboards that allow normal language usage alongside APL
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ │ │ │ │ │ │ │ │ │ ⍱ │ ⍲ │ │ ⌹ ┃ ┃
// │ ⋄ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ │ ∧ │ × │ ÷ ┃ ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃
// ┃ ┃ ? │ ⍵ │ ∊ │ │ ~ │ ↑ │ ↓ │ │ ○ │ * │ ← │ → ┃ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃
// ┃ ┃ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ │ │ ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃
// ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ │ ⊥ │ │ | │ │ │ ┃ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
partial alphanumeric_keys
xkb_symbols "unified" {
include "apl(common)"
name[Group1]= "APL symbols (unified)";
key <AD12> { [ U2192 ] }; // ]: → -- Rightwards Arrow
key <AE09> { [ NoSymbol, U2371 ] }; // 9: ⍱ -- APL Functional Symbol Down Caret Tilde
key <AE10> { [ NoSymbol, U2372 ] }; // 0: ⍲ -- APL Functional Symbol Up Caret Tilde
key <AE11> { [ U00D7 ] }; // -: × -- Multiplication Sign
key <AE12> { [ U00F7, U2339 ] }; // =: ÷ ⌹ -- Division Sign / APL Functional Symbol Quad Divide
key <TLDE> { [ U22C4 ] }; // `: ⋄ -- Diamond Operator
};
// Layout: http://www.wickensonline.co.uk/apl-unicomp.html
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ │ ¡ │ │ │ ¢ │ │ │ │ ⍂ │ ⍱ │ ⍲ │ ≡ │ ⌹ ┃ ┃
// │ ⋄ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ │ ∧ │ × │ ÷ ┃ ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ ¿ │ ⌽ │ ⍷ │ │ ⍉ │ │ │ ⍸ │ ⍥ │ ⍣ │ │ ┃ ┃
// ┃ ┃ ? │ ⍵ │ ∊ │ │ ~ │ ↑ │ ↓ │ │ ○ │ * │ ← │ → ┃ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ ⊖ │ │ │ ⍫ │ ⍒ │ ⍋ │ ⍤ │ ⌻ │ ⍞ │ │ │ ⍀ ┃ ┃
// ┃ ┃ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ ⊢ │ ⊣ │ ⍝ ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ │ │ │ ⍝ │ │ ⍎ │ ⍕ │ ⌶ │ ⍪ │ ⍙ │ ⌿ ┃ ┃
// ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ │ ⊥ │ │ | │ ⍞ │ ⍎ │ ⍕ ┃ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
partial alphanumeric_keys
xkb_symbols "sax" {
include "apl(unified)"
name[Group1]= "APL symbols (SAX, Sharp APL for Unix)";
key <AB03> { [ NoSymbol, U235D ] }; // C: ⍝ -- APL Functional Symbol Up Shoe Jot
key <AB05> { [ NoSymbol, U234E ] }; // B: ⍎ -- APL Functional Symbol Down Tack Jot (Unicode got the name wrong; it should have been "Up Tack")
key <AB06> { [ NoSymbol, U2355 ] }; // N: ⍕ -- APL Functional Symbol Up Tack Jot (Unicode got the name wrong; it should have been "Down Tack")
key <AB07> { [ NoSymbol, U2336 ] }; // M: ⌶ -- APL Functional Symbol I-Beam
key <AB08> { [ U235E, U236A ] }; // ,: ⍞ ⍪ -- APL Functional Symbol Quote Quad / APL Functional Symbol Comma Bar
key <AB09> { [ U234E, U2359 ] }; // .: ⍎ ⍙ -- [See B key] / APL Functional Symbol Delta Underbar
key <AB10> { [ U2355, U233F ] }; // /: ⍕ ⌿ -- [See N key] / APL Functional Symbol Slash Bar
key <AC01> { [ NoSymbol, U2296 ] }; // A: ⊖ -- Circled Minus
key <AC04> { [ NoSymbol, U236B ] }; // F: ⍫ -- APL Functional Symbol Del Tilde
key <AC05> { [ NoSymbol, U2352 ] }; // G: ∇ ⍒ -- APL Functional Symbol Del Stile
key <AC06> { [ NoSymbol, U234B ] }; // H: ∆ ⍋ -- APL Functional Symbol Delta Stile
key <AC07> { [ NoSymbol, U2364 ] }; // J: ⍤ -- APL Functional Symbol Jot Diaeresis
key <AC08> { [ NoSymbol, U233B ] }; // K: ⌻
key <AC09> { [ NoSymbol, U235E ] }; // L: ⍞ -- APL Functional Symbol Quote Quad
key <AC10> { [ U22A2 ] }; // ;: ⊢ -- Right Tack
key <AC11> { [ U22A3 ] }; // ': ⊣ -- Left Tack
key <AD01> { [ NoSymbol, U00BF ] }; // Q: ¿ -- Inverted Question Mark
key <AD02> { [ NoSymbol, U233D ] }; // W: ⌽ -- APL Functional Symbol Circle Stile
key <AD03> { [ NoSymbol, U2377 ] }; // E: ⍷ -- APL Functional Symbol Epsilon Underbar
key <AD05> { [ NoSymbol, U2349 ] }; // T: ⍉ -- APL Functional Symbol Circle Backslash
key <AD08> { [ NoSymbol, U2378 ] }; // I: ⍸ -- APL Functional Symbol Iota Underbar
key <AD09> { [ NoSymbol, U2365 ] }; // O: ⍥ -- APL Functional Symbol Circle Diaeresis
key <AD10> { [ NoSymbol, U235F ] }; // P: ⍟ -- APL Functional Symbol Circle Star
key <AE01> { [ NoSymbol, U00A1 ] }; // 1: ¡ -- Inverted Exclamation Mark
key <AE04> { [ NoSymbol, cent ] }; // 4:
key <AE08> { [ NoSymbol, U2342 ] }; // 8: ⍂ -- APL Functional Symbol Quad Backslash
key <AE11> { [ NoSymbol, U2261 ] }; // -: ≡ -- Identical To
key <BKSL> { [ U235D, U2340 ] }; // \: ⍝ ⍀ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Backslash Bar
};
// Layout: http://www.wickensonline.co.uk/apl-unicomp.html
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ⍂ │ ⌶ │ ⍫ │ ⍒ │ ⍋ │ ⌽ │ ⍉ │ ⊖ │ ⍟ │ ⍱ │ ⍲ │ ! │ ⌹ ┃ ┃
// │ ⌻ │ │ │ │ │ │ │ │ │ │ │ - │ ÷ ┃ ┃
// │ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ │ ∧ │ + │ × ┃ ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ⍞ │ ⍙ ┃ ┃
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ → │ ⍸ ┃ ┃
// ┃ ┃ ? │ ⍵ │ ∊ │ │ ~ │ ↑ │ ↓ │ │ ○ │ * │ ← │ ⌷ ┃ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ │ │ │ │ │ │ │ │ │ ⍎ │ ⍕ │ ⍤ ┃ ┃
// ┃ ┃ │ │ │ │ │ │ │ │ │ ( │ ) │ ⍷ ┃ ┃
// ┃ ┃ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ [ │ ] │ ≡ ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ │ │ │ │ │ │ │ │ ⍝ │ ⍀ │ ⌿ ┃ ┃
// ┃ ┃ │ │ │ │ │ │ │ │ ; │ : │ \ ┃ ┃
// ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ │ ⊥ │ │ | │ , │ . │ / ┃ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
partial alphanumeric_keys
xkb_symbols "apl2" {
include "apl(common)"
name[Group1]= "APL symbols (IBM APL2)";
// The first column is NoSymbol because it inherits. The second is NoSymbol because those keys don't do anything
// AFS - short for APL Functional Symbol
key <AB08> { [ comma, semicolon, U235D ] }; // ,: ⍝ -- AFS Up Shoe Jot
key <AB09> { [ period, colon, U2340 ] }; // .: ⍀ -- AFS Backslash Bar
key <AB10> { [ slash, backslash, U233F ] }; // /: ⌿ -- AFS Slash Bar
key <AC10> { [ bracketleft, parenleft, U234E ] }; // ;: ⍎ -- [See B key in SAX layout]
key <AC11> { [ bracketright, parenright, U2355 ] }; // ': ⍕ -- [See N key in SAX layout]
key <AD11> { [ NoSymbol, U2192, U235E ] }; // [: (←) → ⍞ -- Rightwards Arrow / AFS Quote Quad
key <AD12> { [ U2337, U2378, U2359 ] }; // ]: ⌷ ⍸ ⍙ -- AFS Squish Quad / AFS Iota Underbar / AFS Delta Underbar
key <AE01> { [ NoSymbol, NoSymbol, U2336 ] }; // 1: ⌶ -- AFS I-Beam
key <AE02> { [ NoSymbol, NoSymbol, U236B ] }; // 2: ⍫ -- AFS Del Tilde
key <AE03> { [ NoSymbol, NoSymbol, U2353 ] }; // 3: ⍒ -- AFS Del Stile
key <AE04> { [ NoSymbol, NoSymbol, U234B ] }; // 4: ⍋ -- AFS Delta Stile
key <AE05> { [ NoSymbol, NoSymbol, U233D ] }; // 5: ⌽ -- AFS Circle Stile
key <AE06> { [ NoSymbol, NoSymbol, U2349 ] }; // 6: ⍉ -- AFS Circle Backslash
key <AE07> { [ NoSymbol, NoSymbol, U2296 ] }; // 7: ⊖ -- Circled Minus
key <AE08> { [ NoSymbol, NoSymbol, U235F ] }; // 8: ⍟ -- AFS Circle Star
key <AE09> { [ NoSymbol, NoSymbol, U2371 ] }; // 9: ⍱ -- AFS Down Caret Tilde
key <AE10> { [ NoSymbol, NoSymbol, U2372 ] }; // 0: ⍲ -- AFS Up Caret Tilde
key <AE11> { [ plus, minus, exclam ] }; // -:
key <AE12> { [ U00D7, U00F7, U2339 ] }; // =: × ÷ ⌹ -- Multiplication Sign / Division Sign / AFS Quad Divide
key <BKSL> { [ U2261, U2377, U2364 ] }; // \: ≡ ⍷ ⍤ -- Identical To / AFS Epsilon Underbar / AFS Jot Diaeresis
key <TLDE> { [ NoSymbol, U233B, U2342 ] }; // `: ⌻ ⍂ --
include "level3(ralt_switch)"
};
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ⍪ │ ≡ │ ⍫ │ ⍒ │ ⍋ │ ⌽ │ ⍉ │ ⊖ │ ⍟ │ ⍱ │ ⍲ │ ! │ ⌹ ┃ ┃
// │ ⋄ │ │ │ │ │ │ │ │ │ │ │ - │ ÷ ┃ ┃
// │ $ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ │ ∧ │ + │ × ┃ ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ⍞ │ ⍬ ┃ ┃
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ → │ ⍸ ┃ ┃
// ┃ ┃ ? │ ⍵ │ ∊ │ │ ~ │ ↑ │ ↓ │ │ ○ │ * │ ← │ → ┃ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ │ │ │ │ │ │ │ │ │ ⍎ │ ⍕ │ ⍙ ┃ ┃
// ┃ ┃ │ │ │ │ │ │ │ │ │ ( │ ) │ ⊣ ┃ ┃
// ┃ ┃ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ [ │ ] │ ⊢ ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ │ │ │ │ │ │ │ │ ⍝ │ ⍀ │ ⌿ ┃ ┃
// ┃ ┃ │ │ │ │ │ │ │ │ ; │ : │ \ ┃ ┃
// ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ │ ⊥ │ │ | │ , │ . │ / ┃ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
partial alphanumeric_keys
xkb_symbols "aplplusII" {
include "apl(apl2)"
name[Group1]= "APL symbols (Manugistics APL*PLUS II)";
// AFS is short for APL Functional Symbol
key <AC10> { [ bracketleft, parenleft, U234E ] }; // ;: ⍎ -- [See B key in SAX layout]
key <AC11> { [ bracketright, parenright, U2355 ] }; // ': ⍕ -- [See N key in SAX layout]
key <AD11> { [ U2190, NoSymbol, U235E ] }; // [: ← ⍞ -- Leftwards Arrow / AFS Quote Quad
key <AD12> { [ U2192, NoSymbol, U236C ] }; // ]: → ⍬ -- Rightwards Arrow / AFS Zilde
key <AE01> { [ NoSymbol, NoSymbol, U2261 ] }; // 1: ≡ -- Identical To
key <BKSL> { [ U22A2, U22A3, U2359 ] }; // \: ⊢ ⊣ ⍙ -- Left Tack / Right Tack / AFS Delta Underbar
key <TLDE> { [ dollar, U22C4, U236A ] }; // `: ⋄ ⍪ -- Diamond Operator / AFS Comma Bar
};
// MicroAPL layout: http://aplwiki.com/APLXKeyboardLayouts
// I didn't do the old-style MicroAPL layout; patches gratefully accepted
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ⍞ │ ⌶ │ ⍫ │ ⍒ │ ⍋ │ ⌽ │ ⍉ │ ⊖ │ ⍟ │ ⍱ │ ⍲ │ ! │ ⌹ ┃ ┃
// │ ⋄ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ │ ∧ │ × │ ÷ ┃ ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ⍇ │ ⍈ ┃ ┃
// ┃ ┃ ? │ ⍵ │ ∊ │ │ ~ │ ↑ │ ↓ │ │ ○ │ * │ ← │ → ┃ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ │ │ │ │ │ │ │ │ │ ≡ │ ≢ │ ⊣ ┃ ┃
// ┃ ┃ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ ⍎ │ ⍕ │ ⊢ ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ │ │ │ │ │ │ │ │ ⍪ │ ⍤ │ ┃ ┃
// ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ │ ⊥ │ │ | │ ⍝ │ ⍀ │ ⌿ ┃ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
partial alphanumeric_keys
xkb_symbols "aplx" {
include "apl(unified)"
name[Group1]= "APL symbols (APLX unified)";
key <AB08> { [ U235D, U236A ] }; // ,: ⍝ ⍪ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Comma Bar
key <AB09> { [ U2340, U2364 ] }; // .: ⍀ ⍤ -- APL Functional Symbol Backslash Bar / APL Functional Symbol Jot Diaeresis
key <AB10> { [ U233F ] }; // /: ⌿ -- APL Functional Symbol Slash Bar
key <AC10> { [ U234E, U2261 ] }; // ;: ⍎ ≡ -- [See B key in SAX layout] / Identical To
key <AC11> { [ U2355, U2262 ] }; // ': ⍕ ≢ -- [See N key in SAX layout] / Not Identical To
key <AD11> { [ NoSymbol, U2347 ] }; // [: ⍇ -- Box With Left Arrow
key <AD12> { [ NoSymbol, U2348 ] }; // ]: ⍈ -- Box With Right Arrow
key <AE01> { [ NoSymbol, U2336 ] }; // 1: ⌶ -- APL Functional Symbol I-Beam
key <AE02> { [ NoSymbol, U236B ] }; // 2: ⍫ -- APL Functional Symbol Del Tilde
key <AE03> { [ NoSymbol, U2353 ] }; // 3: ⍒ -- APL Functional Symbol Del Stile
key <AE04> { [ NoSymbol, U234B ] }; // 4: ⍋ -- APL Functional Symbol Delta Stile
key <AE05> { [ NoSymbol, U233D ] }; // 5: ⌽ -- APL Functional Symbol Circle Stile
key <AE06> { [ NoSymbol, U2349 ] }; // 6: ⍉ -- APL Functional Symbol Circle Backslash
key <AE07> { [ NoSymbol, U2296 ] }; // 7: ⊖ -- Circled Minus
key <AE08> { [ NoSymbol, U235F ] }; // 8: ⍟ -- APL Functional Symbol Circle Star
key <AE11> { [ NoSymbol, exclam ] }; // -:
key <BKSL> { [ U22A2, U22A3 ] }; // \: ⊢ ⊣ -- Right Tack / Left Tack
key <TLDE> { [ NoSymbol, U235E ] }; // `: ⍞ -- APL Functional Symbol Quote Quad
};
// APL language support for the Dyalog keyboard.
// Dyalog Ltd sell this keyboard with APL engravings. The current model is
// engraved on a Cherry G80. Base languages for US, UK and DK are availible.
// Geoff Streeter, Dyalog Ltd. 2007-09-03
// geoff@dyalog.com
// extended for APL special actions 2008-09-09
// add variant 2010-11-26
// made BKSL and LTGT keys the same to remove a compatibility issue with the UK physical keyboard
// add key (quad equals) 2013-03-12
// add currency 2014-05-23
// add parallel 2014-05-23
// add circle jot 2014-05-23
// add t diaeresis 2014-05-23
// add del diaerisis 2014-05-23
// add quad query 2014-05-23
// add dagger 2014-05-23
// correct spelling of key name LTGT→LSGT 2016-05-26
// add enclose underbar 2017-02-27
// add alpha underbar 2019-03-22
// add omega underbar 2019-03-22
// change all "partial hidden" to "hidden partial" - seems to be a compiler change
// The intention is that this keyboard layout overlays a base keyboard that provides
// the alphabet and similar. If this keyboard is placed as the 2nd layout then it can
// be reached with a latching shift to increase group by one.
hidden partial alphanumeric_keys
xkb_symbols "dyalog_base" {
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ⌺ │ ⌶ │ ⍫ │ ⍒ │ ⍋ │ ⌽ │ ⍉ │ ⊖ │ ⍟ │ ⍱ │ ⍲ │ ! │ ⌹ ┃ ┃
// │ ⋄ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ │ ∧ │ × │ ÷ ┃ ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ ⍰ │ ⍹ │ ⍷ │ ⌾ │ ⍨ │ │ │ ⍸ │ ⍥ │ ⍣ │ ⍞ │ ⍬ ┃ ┃
// ┃ ┃ ? │ ⍵ │ ∊ │ │ ~ │ ↑ │ ↓ │ │ ○ │ * │ ← │ → ┃ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ ⍶ │ │ │ │ ⍢ │ │ ⍤ │ ⌸ │ ⌷ │ ≡ │ ≢ │ ⊣ ┃ ┃
// ┃ ┃ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ ⍎ │ ⍕ │ ⊢ ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ ⊣ │ ⊆ │ │ │ │ ⍭ │ ⍡ │ ∥ │ ⍪ │ ⍙ │ ⍠ ┃ ┃
// ┃ ┃ ⊢ │ ⊂ │ ⊃ │ ∩ │ │ ⊥ │ │ | │ ⍝ │ ⍀ │ ⌿ ┃ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
key <AB01> { [ U2282, U2286 ] }; // subset of, enclose if simple
key <AB02> { [ U2283 ] }; // superset of
key <AB03> { [ U2229 ] }; // intersection
key <AB04> { [ U222A ] }; // union
key <AB05> { [ U22a5, U236d ] }; // up tack, stile tide
key <AB06> { [ U22a4, U2361 ] }; // down tack, down tack diaeresis
key <AB07> { [ bar, U2225 ] }; // vertical line, parallel to
key <AB08> { [ U235d, U236a ] }; // up shoe jot, comma bar
key <AB09> { [ U2340, U2359 ] }; // backslash bar, delta underbar
key <AB10> { [ U233f, U2360 ] }; // slash bar, quad colon
key <AC01> { [ U237a, U2376 ] }; // alpha, alpha underbar
key <AC02> { [ U2308 ] }; // left ceiling
key <AC03> { [ U230a ] }; // left floor
key <AC04> { [ underscore ] }; // low line
key <AC05> { [ U2207, U2362 ] }; // nabla, del diaerisis
key <AC06> { [ U2206 ] }; // increment
key <AC07> { [ U2218, U2364 ] }; // ring operator, jot diaeresis
key <AC08> { [ apostrophe, U2338 ] }; // quote, key
key <AC09> { [ U2395, U2337 ] }; // quad, squish quad
key <AC10> { [ U234e, U2261 ] }; // up tack jot, identical to
key <AC11> { [ U2355, U2262 ] }; // down tack jot, not identical to
key <AD01> { [ question, U2370 ] }; // ?, quad question
key <AD02> { [ U2375, U2379 ] }; // omega, omega underbar
key <AD03> { [ U220a, U2377 ] }; // small element of, epsilon underbar
key <AD04> { [ U2374, U233E ] }; // rho, circle jot
key <AD05> { [ asciitilde, U2368 ] }; // tilde, tilde diaeresis
key <AD06> { [ U2191 ] }; // upwards arrow
key <AD07> { [ U2193 ] }; // downwards arrow
key <AD08> { [ U2373, U2378 ] }; // iota, iota underbar
key <AD09> { [ U25cb, U2365 ] }; // circle, circle diaeresis
key <AD10> { [ asterisk, U2363 ] }; // asterisk, star diaeresis
key <AD11> { [ U2190, U235e ] }; // left arrow, quote quad
key <AD12> { [ U2192, U236c ] }; // right arrow, zilde
key <AE01> { [ diaeresis, U2336 ] }; // i-beam
key <AE02> { [ macron, U236B ] }; // deltilde
key <AE03> { [ less, U2352 ] }; // downgrade
key <AE04> { [ U2264, U234b ] }; // lesseq upgrade
key <AE05> { [ equal, U233d ] }; // circlestile
key <AE06> { [ U2265, U2349 ] }; // greatereq circleslope
key <AE07> { [ greater, U2296 ] }; // circlebar
key <AE08> { [ U2260, U235f ] }; // notequal, circlestar
key <AE09> { [ U2228, U2371 ] }; // logical or, down caret tilde
key <AE10> { [ U2227, U2372 ] }; // logical and, up caret tilde
key <AE11> { [ multiply, exclam ] };
key <AE12> { [ division, U2339 ] }; // quad divide
key <BKSL> { [ U22a2, U22a3 ] }; // right tack, left tack
key <LSGT> { [ U22a2, U22a3 ] }; // right tack, left tack
key <TLDE> { [ U22c4, U233a ] }; // diamond, quad diamond
};
hidden partial keypad_keys
xkb_symbols "dyalog_box" {
// ┌───┬───┬───┬───┐
// │ │ │ │ │
// ├───┼───┼───┼───┤
// │ ┌ │ ┬ │ ┐ │ │
// ├───┼───┼───┤ │
// │ ├ │ ┼ │ ┤ │ │
// ├───┼───┼───┼───┤
// │ └ │ ┴ │ ┘ │ │
// ├───┴───┼───┤ │
// │ ─ │ │ │ │
// └───────┴───┴───┘
key <KP0> { [ U2500 ] }; // box drawing light horizontal
key <KP1> { [ U2514 ] }; // box drawing light up and right
key <KP2> { [ U2534 ] }; // box drawing light up and horizontal
key <KP3> { [ U2518 ] }; // box drawing light up and left
key <KP4> { [ U251c ] }; // box drawing light vertical and right
key <KP5> { [ U253c ] }; // box drawing light vertical and horizontal
key <KP6> { [ U2524 ] }; // box drawing light vertical and left
key <KP7> { [ U250c ] }; // box drawing light down and right
key <KP8> { [ U252c ] }; // box drawing light down and horizontal
key <KP9> { [ U2510 ] }; // box drawing light down and left
key <KPDL> { [ U2502 ] }; // box drawing light vertical
};
hidden partial
xkb_symbols "dyalog_codes" {
// Layout of private use area for this. In the style of the Unicode book
//
// APL special actions F800-F88F
//
// │F800 F810 F820 F830 F840 F850 F860 F870 F880
// ├────┬────┬────┬────┬────┬────┬────┬────┬────┐
// 0│QT │LL │BK │FX │Rc │BP │PA │ │ │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// 1│ER │HO │ZM │LN │LW │AB │SA │ │ │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// 2│TB │CT │SC │MC │RW │HT │RZ │ │ │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// 3│BT │PT │RP │MR │Lw │TH │AC │ │ │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// 4│EP │IN │NX │JP │Rw │RM │MA │ │ │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// 5│UC │II │PV │D1 │Uc │CB │OF │ │ │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// 6│DC │DI │RT │D2 │Dc │PR │FS │ │TO │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// 7│RC │DP │RA │D3 │Ll │SR │FA │ │MO │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// 8│LC │DB │ED │D4 │Rl │IS │TT │ │ │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// 9│US │RD │TC │D5 │Ul │TL │FT │ │ │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// A│DS │TG │NB │U1 │Dl │UA │PL │ │ │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// B│RS │DK │NS │U2 │Us │AO │CA │ │ │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// C│LS │OP │ST │U3 │Ds │DO │ │ │ │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// D│UL │CP │EN │U4 │DD │GL │ │ │S1 │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// E│DL │MV │IF │U5 │DH │CH │ │ │S2 │
// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤
// F│RL │FD │HK │Lc │BH │PU │ │ │OS │
// └────┴────┴────┴────┴────┴────┴────┴────┴────┘
//
// APL Function Keys F700-F7FF
//
// │F700 ... ... F7F0
// ├────┬────┬────┬────┬....┬────┬────┬────┬────┐
// 0│F0 │F16 │F32 │F48 │ │F192│F208│F224│F240│
// .
// .
// .
// F│F15 │F31 │F47 │F63 │ │F207│F223│F239│F255│
// └────┴────┴────┴────┴....┴────┴────┴────┴────┘
//
// whilst these locations are defined. Dyalog's "aplkeys/xterm" file copes with
// normal function keys from the base keyboard rather than this overlay
// ┌─────┐ ┌───┐
// │ CA │ │ZM │
// │ QT │ │ZM │
// └─────┘ └───┘
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ CB ┃
// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ BP ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ BT ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃
// ┃ TB ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ TC ┃
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ED ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃
// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ MO ┃ ┃ ┃ ┃
// ┃ ┃ ┃ ┃ TO ┃ ┃ ┃ ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
key <BKSP> { [ Uf850, Uf855 ] }; // BP CB
key <ESC> { [ Uf800, Uf86b ] }; // QT CA
key <FK11> { [ Uf821, Uf821 ] }; // ZM, ZM put this on both, the unshifted one sometimes gets lost
key <RTRN> { [ Uf828, Uf829 ] }; // ED, TC
key <SPCE> { [ Uf886, Uf887 ] }; // TO, MO
key <TAB> { [ Uf802, Uf803 ] }; // TB, BT
// ┌─────┐
// │ │
// │ BK │
// ┌────┼─────┼────┐
// │ BH │ │ RM │
// │ PV │ FD │ NX │
// └────┴─────┴────┘
key <DOWN> { [ Uf81f ] }; // FD
key <LEFT> { [ Uf825, Uf84f ] }; // PV, BH
key <RGHT> { [ Uf824, Uf854 ] }; // NX, RM
key <UP> { [ Uf820 ] }; // BK
// ┌───┬───┬───┐
// │PT │LL │UL │
// │CP │LS │US │
// ├───┼───┼───┤
// │CT │RL │DL │
// │DK │RS │DS │
// └───┴───┴───┘
key <DELE> { [ Uf81b, Uf812 ] }; // DK, CT
key <END> { [ Uf80b, Uf80f ] }; // RS, RL
key <HOME> { [ Uf80c, Uf810 ] }; // LS, LL
key <INS> { [ Uf81d, Uf813 ] }; // CP, PT
key <PGDN> { [ Uf80a, Uf80e ] }; // DS, DL
key <PGUP> { [ Uf809, Uf80d ] }; // US, UL
// ┌───┬───┬───┬───┐
// │ │RD │TG │LN │
// ├───┼───┼───┼───┤
// │ │ │ │ │
// ├───┼───┼───┤TL │
// │ │ │ │ │
// ├───┼───┼───┼───┤
// │ │ │ │ │
// ├───┴───┼───┤ │
// │ │ │ │
// └───────┴───┴───┘
key <KPAD> { [ Uf859 ] }; // TL
key <KPDV> { [ Uf819 ] }; // RD
key <KPMU> { [ Uf81a ] }; // TG
key <KPSU> { [ Uf831 ] }; // LN
};
xkb_symbols "dyalog" {
include "apl(dyalog_base)"
include "apl(dyalog_box)"
include "apl(dyalog_codes)"
name[Group1] = "APL symbols (Dyalog APL)";
};
partial
xkb_symbols "level3" {
// #UNREGISTERED
name[Group1] = "APL on Level3";
//from apl(dyalog_base) -- any way to just include it shifted to level3?
key <AB01> { [ NoSymbol, NoSymbol, U2282, U2286 ] }; // subset of, enclose if simple
key <AB02> { [ NoSymbol, NoSymbol, U2283 ] }; // superset of
key <AB03> { [ NoSymbol, NoSymbol, U2229 ] }; // intersection
key <AB04> { [ NoSymbol, NoSymbol, U222A ] }; // union
key <AB05> { [ NoSymbol, NoSymbol, U22a5, U236d ] }; // up tack, stile tide
key <AB06> { [ NoSymbol, NoSymbol, U22a4, U2361 ] }; // down tack, down tack diaeresis
key <AB07> { [ NoSymbol, NoSymbol, bar, U2225 ] }; // vertical line, parallel to
key <AB08> { [ NoSymbol, NoSymbol, U235d, U236a ] }; // up shoe jot, comma bar
key <AB09> { [ NoSymbol, NoSymbol, U2340, U2359 ] }; // backslash bar, delta underbar
key <AB10> { [ NoSymbol, NoSymbol, U233f, U2360 ] }; // slash bar, quad colon
key <AC01> { [ NoSymbol, NoSymbol, U237a, U2376 ] }; // alpha, alpha underbar
key <AC02> { [ NoSymbol, NoSymbol, U2308 ] }; // left ceiling
key <AC03> { [ NoSymbol, NoSymbol, U230a ] }; // left floor
key <AC04> { [ NoSymbol, NoSymbol, underscore ] }; // low line
key <AC05> { [ NoSymbol, NoSymbol, U2207, U2362 ] }; // nabla, del diaerisis
key <AC06> { [ NoSymbol, NoSymbol, U2206 ] }; // increment
key <AC07> { [ NoSymbol, NoSymbol, U2218, U2364 ] }; // ring operator, jot diaeresis
key <AC08> { [ NoSymbol, NoSymbol, apostrophe, U2338 ] }; // quote, key
key <AC09> { [ NoSymbol, NoSymbol, U2395, U2337 ] }; // quad, squish quad
key <AC10> { [ NoSymbol, NoSymbol, U234e, U2261 ] }; // up tack jot, identical to
key <AC11> { [ NoSymbol, NoSymbol, U2355, U2262 ] }; // down tack jot, not identical to
key <AD01> { [ NoSymbol, NoSymbol, question, U2370 ] }; // ?, quad question
key <AD02> { [ NoSymbol, NoSymbol, U2375, U2379 ] }; // omega, omega underbar
key <AD03> { [ NoSymbol, NoSymbol, U220a, U2377 ] }; // small element of, epsilon underbar
key <AD04> { [ NoSymbol, NoSymbol, U2374, U233E ] }; // rho, circle jot
key <AD05> { [ NoSymbol, NoSymbol, asciitilde, U2368 ] }; // tilde, tilde diaeresis
key <AD06> { [ NoSymbol, NoSymbol, U2191 ] }; // upwards arrow
key <AD07> { [ NoSymbol, NoSymbol, U2193 ] }; // downwards arrow
key <AD08> { [ NoSymbol, NoSymbol, U2373, U2378 ] }; // iota, iota underbar
key <AD09> { [ NoSymbol, NoSymbol, U25cb, U2365 ] }; // circle, circle diaeresis
key <AD10> { [ NoSymbol, NoSymbol, asterisk, U2363 ] }; // asterisk, star diaeresis
key <AD11> { [ NoSymbol, NoSymbol, U2190, U235e ] }; // left arrow, quote quad
key <AD12> { [ NoSymbol, NoSymbol, U2192, U236c ] }; // right arrow, zilde
key <AE01> { [ NoSymbol, NoSymbol, diaeresis, U2336 ] }; // i-beam
key <AE02> { [ NoSymbol, NoSymbol, macron, U236B ] }; // deltilde
key <AE03> { [ NoSymbol, NoSymbol, less, U2352 ] }; // downgrade
key <AE04> { [ NoSymbol, NoSymbol, U2264, U234b ] }; // lesseq upgrade
key <AE05> { [ NoSymbol, NoSymbol, equal, U233d ] }; // circlestile
key <AE06> { [ NoSymbol, NoSymbol, U2265, U2349 ] }; // greatereq circleslope
key <AE07> { [ NoSymbol, NoSymbol, greater, U2296 ] }; // circlebar
key <AE08> { [ NoSymbol, NoSymbol, U2260, U235f ] }; // notequal, circlestar
key <AE09> { [ NoSymbol, NoSymbol, U2228, U2371 ] }; // logical or, down caret tilde
key <AE10> { [ NoSymbol, NoSymbol, U2227, U2372 ] }; // logical and, up caret tilde
key <AE11> { [ NoSymbol, NoSymbol, multiply, exclam ] };
key <AE12> { [ NoSymbol, NoSymbol, division, U2339 ] }; // quad divide
key <BKSL> { [ NoSymbol, NoSymbol, U22a2, U22a3 ] }; // right tack, left tack
key <LSGT> { [ NoSymbol, NoSymbol, U22a2, U22a3 ] }; // right tack, left tack
key <TLDE> { [ NoSymbol, NoSymbol, U22c4, U233a ] }; // diamond, quad diamond
};

521
nixos/xkb/symbols/ara Normal file
View File

@@ -0,0 +1,521 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Arabic";
key.type[Group1]="FOUR_LEVEL";
key <TLDE> {[ Arabic_thal, Arabic_shadda, Arabic_percent, U0609 ]}; // ‎ذ‎ ‎◌ّ‎ ‎٪‎ ‎؉‎
key <AE01> {[ 1, exclam, Arabic_1, any ]}; // 1 ! ١
key <AE02> {[ 2, at, Arabic_2, any ]}; // 2 @ ٢
key <AE03> {[ 3, numbersign, Arabic_3, any ]}; // 3 # ٣
key <AE04> {[ 4, dollar, Arabic_4, any ]}; // 4 $ ٤
key <AE05> {[ 5, percent, Arabic_5, U2030 ]}; // 5 % ٥
key <AE06> {[ 6, asciicircum, Arabic_6, any ]}; // 6 ^ ٦
key <AE07> {[ 7, ampersand, Arabic_7, any ]}; // 7 & ٧
key <AE08> {[ 8, asterisk, Arabic_8, any ]}; // 8 * ٨
key <AE09> {[ 9, parenright, Arabic_9, any ]}; // 9 ) ٩
key <AE10> {[ 0, parenleft, Arabic_0, any ]}; // 0 ( ٠
key <AE11> {[ minus, underscore, endash, U2011 ]}; // - _ Non-Breaking-Hyphen
key <AE12> {[ equal, plus, notequal, U2248 ]}; // = + ≠ ≈
key <AD01> {[ Arabic_dad, Arabic_fatha, any, U2066 ]}; // ‎ض‎ ‎◌َ LEFTTORIGHT ISOLATE
key <AD02> {[ Arabic_sad, Arabic_fathatan, any, U2067 ]}; // ‎ص‎ ‎◌ً RIGHTTOLEFT ISOLATE
key <AD03> {[ Arabic_theh, Arabic_damma, any, U2068 ]}; // ‎ث‎ ‎◌ُ FIRST STRONG ISOLATE
key <AD04> {[ Arabic_qaf, Arabic_dammatan, any, U2069 ]}; // ‎ق‎ ‎◌ٌ POP DIRECTIONAL ISOLATE
key <AD05> {[ Arabic_feh, UFEF9, Arabic_veh, any ]}; // ‎ف‎ ‎ﻹ ‎ڤ
key <AD06> {[ Arabic_ghain,Arabic_hamzaunderalef, any, U202A ]}; // ‎غ‎ ‎إ‎ LEFT-TO-RIGHT-EMBEDDING
key <AD07> {[ Arabic_ain, grave, any, U202B ]}; // ‎ع‎ ` RIGHT-TO-LEFT EMBEDDING
key <AD08> {[ Arabic_ha, division, any, U202C ]}; // ه ÷ POP DIRECTIONAL FORMATTING
key <AD09> {[ Arabic_khah, multiply, any, any ]}; // ‎خ‎ ×
key <AD10> {[ Arabic_hah, Arabic_semicolon, any, U200E ]}; // ‎ح‎ ؛ LEFT-TO-RIGHT MARK
key <AD11> {[ Arabic_jeem, less, Arabic_tcheh, U200F ]}; // ‎ج‎ < ‎چ‎ RIGHT-TO-LEFT MARK
key <AD12> {[ Arabic_dal, greater, any, U061C ]}; // ‎د‎ > ARABIC LETTER MARK
key <AC01> {[ Arabic_sheen, Arabic_kasra, any, any ]}; // ‎ش‎ ‎◌ِ‎
key <AC02> {[ Arabic_seen, Arabic_kasratan, any, any ]}; // ‎س‎ ‎◌ٍ‎
key <AC03> {[ Arabic_yeh, bracketright, any, any ]}; // ‎ي‎ ]
key <AC04> {[ Arabic_beh, bracketleft, Arabic_peh, any ]}; // ‎ب‎ [ ‎پ‎
key <AC05> {[ Arabic_lam, UFEF7, any, any ]}; // ‎ل‎ ‎ﻷ‎
key <AC06> {[ Arabic_alef, Arabic_hamzaonalef, U0671, any ]}; // ا ‎أ ‎ٱ‎
key <AC07> {[ Arabic_teh, Arabic_tatweel, any, any ]}; // ‎ت‎ ‎ـ‎
key <AC08> {[ Arabic_noon, Arabic_comma, U066B, any ]}; // ‎ن‎ ‎،‎ ٫
key <AC09> {[ Arabic_meem, slash, any, any ]}; // ‎م‎ /
key <AC10> {[ Arabic_kaf, colon, Arabic_gaf, any ]}; // ‎ك‎ : ‎گ‎
key <AC11> {[ Arabic_tah, quotedbl, U27E9, U200D ]}; // ‎ط‎ " ⟩ ZWJ
key <BKSL> {[ backslash, bar, U27E8, U202F ]}; // \ | ⟨ NNBSP
key <LSGT> {[ bar, ellipsis, brokenbar, any ]}; // | … ¦
key <AB01> {[Arabic_hamzaonyeh, asciitilde, guillemotright, U203A ]}; // ‎ئ‎ ~ »
key <AB02> {[ Arabic_hamza, Arabic_sukun, guillemotleft, U2039 ]}; // ‎ء‎ ◌ْ «
key <AB03> {[Arabic_hamzaonwaw, braceright, any, any ]}; // ‎ؤ }
key <AB04> {[ Arabic_ra, braceleft, any, any ]}; // ‎ر‎ {
key <AB05> {[ UFEFB, UFEF5, any, any ]}; // ‎ﻻ‎ ‎ﻵ‎
key <AB06> {[Arabic_alefmaksura, Arabic_maddaonalef, Arabic_superscript_alef, any ]}; // ‎ى‎ ‎آ‎ ‎◌ٰ‎
key <AB07> {[Arabic_tehmarbuta, apostrophe, any, any ]}; // ‎ة‎ '
key <AB08> {[ Arabic_waw, comma, U066C, any ]}; // ‎و‎ , ‎٬
key <AB09> {[ Arabic_zain, period, Arabic_jeh, any ]}; // ‎ز‎ . ‎ژ‎
key <AB10> {[ Arabic_zah, Arabic_question_mark, U066D, U200C ]}; // ‎ظ‎ ‎؟‎ ٭ ZWNJ
include "level3(ralt_switch)"
};
// Replaces the Western numeral signs with Arabic-script digits on the keypad,
// pushing the Western digits to the third level accessible by the right Alt key.
// Additionally, the fourth level gives the Persian digits.
hidden partial keypad_keys
xkb_symbols "digits_KP" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD";
key <KP7> {[ KP_Home, Arabic_7, 7, Farsi_7 ]};
key <KP8> {[ KP_Up, Arabic_8, 8, Farsi_8 ]};
key <KP9> {[ KP_Prior, Arabic_9, 9, Farsi_9 ]};
key <KP4> {[ KP_Left, Arabic_4, 4, Farsi_4 ]};
key <KP5> {[ KP_Begin, Arabic_5, 5, Farsi_5 ]};
key <KP6> {[ KP_Right, Arabic_6, 6, Farsi_6 ]};
key <KP1> {[ KP_End, Arabic_1, 1, Farsi_1 ]};
key <KP2> {[ KP_Down, Arabic_2, 2, Farsi_2 ]};
key <KP3> {[ KP_Next, Arabic_3, 3, Farsi_3 ]};
key <KP0> {[ KP_Insert, Arabic_0, 0, Farsi_0 ]};
include "kpdl(momayyezoss)"
};
// Replaces the Western numeral signs with Arabic-script digits on the numeric row,
// pushing the Western digits to the third level accessible by the right Alt key.
partial alphanumeric_keys
xkb_symbols "digits" {
include "ara(basic)"
name[Group1]= "Arabic (Eastern Arabic numerals)";
key <TLDE> {[Arabic_thal, Arabic_shadda, percent, U2030 ]};
key <AE01> {[ Arabic_1, exclam, 1, any ]};
key <AE02> {[ Arabic_2, at, 2, any ]};
key <AE03> {[ Arabic_3, numbersign, 3, any ]};
key <AE04> {[ Arabic_4, dollar, 4, any ]};
key <AE05> {[ Arabic_5, Arabic_percent, 5, U0609 ]};
key <AE06> {[ Arabic_6, asciicircum, 6, any ]};
key <AE07> {[ Arabic_7, ampersand, 7, any ]};
key <AE08> {[ Arabic_8, asterisk, 8, any ]};
key <AE09> {[ Arabic_9, parenright, 9, any ]};
key <AE10> {[ Arabic_0, parenleft, 0, any ]};
include "ara(digits_KP)"
};
partial alphanumeric_keys
xkb_symbols "azerty" {
include "ara(basic)"
name[Group1]= "Arabic (AZERTY)";
// The North African Arabic keyboard differs from the Middle East one
// by the numeric row; it follows French keyboard style.
//
// PROBLEM: some characters are inaccessible: ! @ # $ % ^ *
// Should they go elsewhere? Replacing " ' that are now doubled?
// Also, dead_circumflex and dead_diaeresis from French keyboard
// as well as ugrave are missing, which questions the utility of the
// other accentuated Latin letters. Maybe this is useful only with
// a French keyboard in Group1? Then, shouldn't Group1 be filled?
key <AE01> {[ ampersand, 1 ]};
key <AE02> {[ eacute, 2 ]};
key <AE03> {[ quotedbl, 3 ]};
key <AE04> {[ apostrophe, 4 ]};
key <AE05> {[ parenleft, 5 ]};
key <AE06> {[ minus, 6 ]};
key <AE07> {[ egrave, 7 ]};
key <AE08> {[ underscore, 8 ]};
key <AE09> {[ ccedilla, 9 ]};
key <AE10> {[ agrave, 0 ]};
key <AE11> {[ parenright, degree ]};
};
partial alphanumeric_keys
xkb_symbols "azerty_digits" {
include "ara(azerty)"
name[Group1]= "Arabic (AZERTY, Eastern Arabic numerals)";
key <AE01> {[ ampersand, Arabic_1, 1, any ]};
key <AE02> {[ eacute, Arabic_2, 2, any ]};
key <AE03> {[ quotedbl, Arabic_3, 3, any ]};
key <AE04> {[ apostrophe, Arabic_4, 4, any ]};
key <AE05> {[ parenleft, Arabic_5, 5, any ]};
key <AE06> {[ minus, Arabic_6, 6, any ]};
key <AE07> {[ egrave, Arabic_7, 7, any ]};
key <AE08> {[ underscore, Arabic_8, 8, any ]};
key <AE09> {[ ccedilla, Arabic_9, 9, any ]};
key <AE10> {[ agrave, Arabic_0, 0, any ]};
};
// Arabic layout for the Buckwalter transliteration scheme,
// adding I, O, and W as aliases for <, >, and &.
// See http://www.qamus.org/transliteration.htm.
// Originally by Martin Vidner, 2006.
partial alphanumeric_keys
xkb_symbols "buckwalter" {
name[Group1]= "Arabic (Buckwalter)";
key <TLDE> {[ Arabic_superscript_alef, Arabic_shadda ]};
key <AE01> {[ Arabic_1, none ]};
key <AE02> {[ Arabic_2, none ]};
key <AE03> {[ Arabic_3, none ]};
key <AE04> {[ Arabic_4, Arabic_sheen ]};
key <AE05> {[ Arabic_5, Arabic_percent ]};
key <AE06> {[ Arabic_6, none ]};
key <AE07> {[ Arabic_7, Arabic_hamzaonwaw ]};
key <AE08> {[ Arabic_8, Arabic_thal ]};
key <AE09> {[ Arabic_9, UFD3E ]}; // (ornate left parenthesis)
key <AE10> {[ Arabic_0, UFD3F ]}; // ﴿ (ornate right parenthesis)
key <AE11> {[ minus, Arabic_tatweel ]};
key <AE12> {[ equal, plus ]};
key <AD01> {[ Arabic_qaf, none ]};
key <AD02> {[ Arabic_waw, Arabic_hamzaonwaw ]};
key <AD03> {[ none, Arabic_ain ]};
key <AD04> {[ Arabic_ra, none ]};
key <AD05> {[ Arabic_teh, Arabic_tah ]};
key <AD06> {[ Arabic_yeh, Arabic_alefmaksura ]};
key <AD07> {[ Arabic_damma, none ]};
key <AD08> {[ Arabic_kasra, Arabic_hamzaunderalef ]};
key <AD09> {[ Arabic_sukun, Arabic_hamzaonalef ]};
key <AD10> {[ Arabic_tehmarbuta,none ]};
key <AD11> {[ none, U0671 ]}; // ٱ (Alef wasla)
key <AD12> {[ none, Arabic_hamzaonyeh ]};
key <AC01> {[ Arabic_fatha, Arabic_alef ]};
key <AC02> {[ Arabic_seen, Arabic_sad ]};
key <AC03> {[ Arabic_dal, Arabic_dad ]};
key <AC04> {[ Arabic_feh, Arabic_fathatan ]};
key <AC05> {[ Arabic_ghain, none ]};
key <AC06> {[ Arabic_ha, Arabic_hah ]};
key <AC07> {[ Arabic_jeem, none ]};
key <AC08> {[ Arabic_kaf, Arabic_kasratan ]};
key <AC09> {[ Arabic_lam, none ]};
key <AC10> {[ Arabic_semicolon, none ]};
key <AC11> {[ Arabic_hamza, none ]};
key <BKSL> {[ none, Arabic_maddaonalef ]};
key <AB01> {[ Arabic_zain, Arabic_zah ]};
key <AB02> {[ Arabic_khah, none ]};
key <AB03> {[ none, none ]};
key <AB04> {[ Arabic_theh, none ]};
key <AB05> {[ Arabic_beh, none ]};
key <AB06> {[ Arabic_noon, Arabic_dammatan ]};
key <AB07> {[ Arabic_meem, none ]};
key <AB08> {[ Arabic_comma, Arabic_hamzaunderalef ]};
key <AB09> {[ Arabic_fullstop, Arabic_hamzaonalef ]};
key <AB10> {[ none, Arabic_question_mark ]};
};
partial alphanumeric_keys
xkb_symbols "olpc" {
include "ara(basic)"
name[Group1]= "Arabic (OLPC)";
// This OLPC layout comprises the following changes in comparison to the default Arabic one:
// ‣ Arabic and European digits are swapped (which entails swapping of the percent and permille signs).
// ‣ Lām-ʾalif is eliminated. People type as they pronounce, and lam-alef is just a visual formatting of the
// sequence and thus arguably not used on the keyboard. This frees four slots which are used for the following three changes.
// ‣ The <TLDE> characters move:
// • Thal from <TLDE> to <AB05>
// • Shadda from <TLDE> to <AD05>
// ‣ £ and € obtain the <AE06> and <AE07> keys, the ^ and & signs previously occupying them take seat at <AB05> and <AC05>.
// ‣ The <TLDE> key gets grave ` and asciitilde ~ as on English keyboards.
// ‣ In sum the grave and asciitilde are present twice, as their erstwhile places are not removed.
// ‣ The braces }{ take the place of the less-than and greater-than >< signs,
// but these the place of kasra and kasratan which establish themselves in the braces former steads.
// ‣ The … character on <BKSL> is replaced by |, because OLPC laptops have no <LSGT> key installed where the bar is else placed.
key <TLDE> {[ grave, asciitilde, percent, permille ]};
key <AE01> {[ Arabic_1, exclam, 1 ]};
key <AE02> {[ Arabic_2, at, 2 ]};
key <AE03> {[ Arabic_3, numbersign, 3 ]};
key <AE04> {[ Arabic_4, dollar, 4 ]};
key <AE05> {[ Arabic_5, Arabic_percent, 5, U0609 ]};
key <AE06> {[ Arabic_6, sterling, 6 ]};
key <AE07> {[ Arabic_7, EuroSign, 7 ]};
key <AE08> {[ Arabic_8, asterisk, 8 ]};
key <AE09> {[ Arabic_9, parenright, 9 ]};
key <AE10> {[ Arabic_0, parenleft, 0 ]};
key <AD05> {[ Arabic_feh, Arabic_shadda ]};
key <AD11> {[ Arabic_jeem, braceright ]};
key <AD12> {[ Arabic_dal, braceleft ]};
key <AC01> {[ Arabic_sheen, greater ]};
key <AC02> {[ Arabic_seen, less ]};
key <AC05> {[ Arabic_lam, ampersand ]};
key <BKSL> {[ backslash, bar ]};
key <AB03> {[ Arabic_hamzaonwaw, Arabic_kasra ]};
key <AB04> {[ Arabic_ra, Arabic_kasratan ]};
key <AB05> {[ Arabic_thal, asciicircum ]};
include "group(olpc)"
};
partial alphanumeric_keys
xkb_symbols "mac" {
// This layout is compatible with macbooks.
include "ara(digits)"
name[Group1]= "Arabic (Macintosh)";
key <TLDE> {[ Arabic_tatweel, none ]};
key <AE11> {[ minus, underscore ]};
key <AE12> {[ equal, plus ]};
key <AD03> {[ Arabic_theh, Arabic_kasra ]};
key <AD04> {[ Arabic_qaf, Arabic_kasratan ]};
key <AD05> {[ Arabic_feh, Arabic_damma ]};
key <AD06> {[ Arabic_ghain, Arabic_dammatan ]};
key <AD07> {[ Arabic_ain, Arabic_sukun ]};
key <AD08> {[ Arabic_ha, Arabic_shadda ]};
key <AD09> {[ Arabic_khah, bracketright ]};
key <AD10> {[ Arabic_hah, bracketleft ]};
key <AD11> {[ Arabic_jeem, braceright ]};
key <AD12> {[Arabic_tehmarbuta, braceleft ]};
key <AC01> {[ Arabic_sheen, guillemotright ]};
key <AC02> {[ Arabic_seen, guillemotleft ]};
key <AC03> {[ Arabic_yeh, Arabic_alefmaksura ]};
key <AC04> {[ Arabic_beh, 0x1000670 ]};
key <AC05> {[ Arabic_lam, none ]};
key <AC06> {[ Arabic_alef, Arabic_maddaonalef ]};
key <AC07> {[ Arabic_teh, 0x1000671 ]};
key <AC08> {[ Arabic_noon, none ]};
key <AC09> {[ Arabic_meem, none ]};
key <AC10> {[ Arabic_kaf, colon ]};
key <AC11> {[ Arabic_semicolon, quotedbl ]};
key <BKSL> {[ backslash, bar ]};
key <LSGT> {[ Arabic_tatweel, none ]};
key <AB01> {[ Arabic_zah, none ]};
key <AB02> {[ Arabic_tah, none ]};
key <AB03> {[ Arabic_thal, Arabic_hamzaonyeh ]};
key <AB04> {[ Arabic_dal, Arabic_hamza ]};
key <AB05> {[ Arabic_zain, Arabic_hamzaonalef ]};
key <AB06> {[ Arabic_ra, Arabic_hamzaunderalef ]};
key <AB07> {[ Arabic_waw, Arabic_hamzaonwaw ]};
key <AB08> {[ Arabic_comma, greater ]};
key <AB09> {[ period, less ]};
key <AB10> {[ slash, Arabic_question_mark ]};
};
// Macintosh Arabic QWERTY layout
// https://github.com/unicode-org/cldr/blob/release-43/keyboards/osx/ar-t-k0-osx-qwerty.xml
// LSGT is modified to match TLDE rather than having ^C on all levels
partial alphanumeric_keys
xkb_symbols "mac-phonetic" {
name[Group1]= "Arabic (Macintosh, phonetic)";
key <TLDE> {[ Arabic_tatweel, Arabic_tatweel, greater, less ]};
key <AE01> {[ Arabic_1, exclam, Arabic_hamzaunderalef, exclam, 1 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE02> {[ Arabic_2, Arabic_hamza, U274A, U274A, 2 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE03> {[ Arabic_3, Arabic_hamzaonalef, numbersign, numbersign, 3 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE04> {[ Arabic_4, Arabic_maddaonalef, dollar, EuroSign, 4 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE05> {[ Arabic_5, Arabic_hamzaunderalef, Arabic_percent, Arabic_percent, 5 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE06> {[ Arabic_6, Arabic_hamzaonyeh, ampersand, ampersand, 6 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE07> {[ Arabic_7, Arabic_hamzaonwaw, asciicircum, asciicircum, 7 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE08> {[ Arabic_8, Arabic_alefmaksura, asterisk, asterisk, 8 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE09> {[ Arabic_9, parenright, parenright, parenright, 9 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE10> {[ Arabic_0, parenleft, parenleft, parenleft, 0 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE11> {[ minus, underscore, underscore, underscore ]};
key <AE12> {[ equal, plus, plus, plus ]};
key <AD01> {[ Arabic_qaf, Arabic_veh, Arabic_veh, Arabic_gaf ]};
key <AD02> {[ Arabic_sheen, Arabic_shadda, Arabic_shadda, Arabic_shadda ]};
key <AD03> {[ Arabic_ain, Arabic_ghain, Arabic_farsi_yeh, none ]};
key <AD04> {[ Arabic_ra, Arabic_zain, Arabic_ghain, Arabic_rreh ]};
key <AD05> {[ Arabic_teh, Arabic_theh, Arabic_tah, Arabic_tehmarbuta ]};
key <AD06> {[ Arabic_tah, Arabic_zah, Arabic_theh, Arabic_alefmaksura ]};
key <AD07> {[ Arabic_waw, Arabic_yeh_baree, Arabic_damma, Arabic_dammatan ]};
key <AD08> {[ Arabic_yeh, Arabic_alefmaksura, Arabic_kasra, Arabic_kasratan ]};
key <AD09> {[ Arabic_ha, Arabic_tehmarbuta, Arabic_sukun, U06D5 ]};
key <AD10> {[ Arabic_tehmarbuta, Arabic_teh, Arabic_shadda, Arabic_peh ]};
key <AD11> {[ Arabic_theh, braceright, bracketright, braceright ]};
key <AD12> {[ Arabic_zah, braceleft, bracketleft, braceleft ]};
key <BKSL> {[ dead_hamza, Arabic_hamzaunderalef, Arabic_hamzaonalef, Arabic_maddaonalef ]};
key <AC01> {[ Arabic_alef, Arabic_maddaonalef, Arabic_fatha, Arabic_fathatan ]};
key <AC02> {[ Arabic_seen, Arabic_sheen, Arabic_sad, Arabic_shadda ]};
key <AC03> {[ Arabic_dal, Arabic_thal, Arabic_dad, Arabic_ddal ]};
key <AC04> {[ Arabic_feh, Arabic_qaf, Arabic_veh, Arabic_veh ]};
key <AC05> {[ Arabic_ghain, Arabic_ain, Arabic_ain, Arabic_gaf ]};
key <AC06> {[ Arabic_hah, Arabic_khah, Arabic_ha, Arabic_tcheh ]};
key <AC07> {[ Arabic_jeem, Arabic_tcheh, Arabic_khah, Arabic_jeh ]};
key <AC08> {[ Arabic_kaf, Arabic_gaf, Arabic_khah, Arabic_keheh ]};
key <AC09> {[ Arabic_lam, U274A, none, none ]};
key <AC10> {[ Arabic_semicolon, colon, none, none ]};
key <AC11> {[ apostrophe, quotedbl, U0671, none ]};
key <LSGT> {[ Arabic_tatweel, Arabic_tatweel, greater, less ]};
key <AB01> {[ Arabic_zain, Arabic_jeh, Arabic_zah, Arabic_jeh ]};
key <AB02> {[ Arabic_khah, Arabic_hah, Arabic_hah, none ]};
key <AB03> {[ Arabic_sad, Arabic_dad, Arabic_theh, Arabic_tcheh ]};
key <AB04> {[ Arabic_thal, Arabic_dal, Arabic_zah, Arabic_veh ]};
key <AB05> {[ Arabic_beh, Arabic_peh, Arabic_peh, Arabic_tteh ]};
key <AB06> {[ Arabic_noon, Arabic_theh, none, Arabic_noon_ghunna ]};
key <AB07> {[ Arabic_meem, Arabic_maddaonalef, Arabic_maddaonalef, Arabic_maddaonalef ]};
key <AB08> {[ Arabic_comma, greater, guillemotright, U274A ]};
key <AB09> {[ period, less, guillemotleft, none ]};
key <AB10> {[ backslash, Arabic_question_mark, slash, backslash ]};
key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
include "level3(ralt_switch)"
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/ara(sun_type6)"
};
partial alphanumeric_keys
xkb_symbols "basic_ext" {
name[Group1]= "Arabic (Arabic numerals, extensions in the 4th level)";
key.type[Group1]="FOUR_LEVEL";
key <TLDE> {[ Arabic_thal, Arabic_shadda, Arabic_percent, Arabic_ddal ]}; // ‎ذ‎ ‎◌ّ‎ ‎٪‎ ‎ڈ‎
key <AE01> {[ 1, exclam, Arabic_1, Farsi_1 ]}; // 1 ! ١ ۱
key <AE02> {[ 2, at, Arabic_2, Farsi_2 ]}; // 2 @ ٢ ۲
key <AE03> {[ 3, numbersign, Arabic_3, Farsi_3 ]}; // 3 # ٣ ۳
key <AE04> {[ 4, dollar, Arabic_4, Farsi_4 ]}; // 4 $ ٤ ۴
key <AE05> {[ 5, percent, Arabic_5, Farsi_5 ]}; // 5 % ٥ ۵
key <AE06> {[ 6, Farsi_yeh, Arabic_6, Farsi_6 ]}; // 6 ‎ی‎ ٦ ۶
key <AE07> {[ 7, ampersand, Arabic_7, Farsi_7 ]}; // 7 & ٧ ۷
key <AE08> {[ 8, asterisk, Arabic_8, Farsi_8 ]}; // 8 * ٨ ۸
key <AE09> {[ 9, parenright, Arabic_9, Farsi_9 ]}; // 9 ) ٩ ۹
key <AE10> {[ 0, parenleft, Arabic_0, Farsi_0 ]}; // 0 ( ٠۰
key <AE11> {[ minus, underscore, endash, U2011 ]}; // - _ Non-Breaking-Hyphen
key <AE12> {[ equal, plus, notequal, U2248 ]}; // = + ≠ ≈
key <AD01> {[ Arabic_dad, Arabic_fatha, U0689, U2066 ]}; // ‎ض‎ ‎◌َ ډ LEFTTORIGHT ISOLATE
key <AD02> {[ Arabic_sad, Arabic_fathatan, U06D5, U2067 ]}; // ‎ص‎ ‎◌ً ە RIGHTTOLEFT ISOLATE
key <AD03> {[ Arabic_theh, Arabic_damma, U067F, U2068 ]}; // ‎ث‎ ‎◌ُ ٿ FIRST STRONG ISOLATE
key <AD04> {[ Arabic_qaf, Arabic_dammatan, U06A6, U2069 ]}; // ‎ق‎ ‎◌ٌ ڦ POP DIRECTIONAL ISOLATE
key <AD05> {[ Arabic_feh, UFEF9, Arabic_veh, U068D ]}; // ‎ف‎ ‎ﻹ ‎ڤ ‎ڍ‎
key <AD06> {[ Arabic_ghain,Arabic_hamzaunderalef, U0685, U202A ]}; // ‎غ‎ ‎إ‎ ‎څ‎ LEFT-TO-RIGHT-EMBEDDING
key <AD07> {[ Arabic_ain, Arabic_rreh, Arabic_heh_goal, U202B ]}; // ‎ع‎ ‎ڑ‎ ہ RIGHT-TO-LEFT EMBEDDING
key <AD08> {[ Arabic_ha, division, Arabic_heh_doachashmee, U202C ]}; // ه ÷ ھ POP DIRECTIONAL FORMATTING
key <AD09> {[ Arabic_khah, multiply, U0681, U0687 ]}; // ‎خ‎ × ‎ځ‎ ‎ڇ‎
key <AD10> {[ Arabic_hah, Arabic_semicolon, U0683, U200E ]}; // ‎ح‎ ؛ ‎ڃ‎ LEFT-TO-RIGHT MARK
key <AD11> {[ Arabic_jeem, less, Arabic_tcheh, U200F ]}; // ‎ج‎ < ‎چ‎ RIGHT-TO-LEFT MARK
key <AD12> {[ Arabic_dal, greater, U0684, U061C ]}; // ‎د‎ > ‎ڄ‎ ARABIC LETTER MARK
key <AC01> {[ Arabic_sheen, Arabic_kasra, U06C6, U06C9 ]}; // ‎ش‎ ‎◌ِ‎ ‎ۆ‎ ‎ۉ‎
key <AC02> {[ Arabic_seen, Arabic_kasratan, U067C, U0680 ]}; // ‎س‎ ‎◌ٍ‎ ‎ټ‎ ‎ڀ‎
key <AC03> {[ Arabic_yeh, bracketright, U06D0, U06CD ]}; // ‎ي‎ ] ‎ې‎ ‎ۍ‎
key <AC04> {[ Arabic_beh, bracketleft, Arabic_peh, U067B ]}; // ‎ب‎ [ ‎پ‎ ‎ٻ‎
key <AC05> {[ Arabic_lam, UFEF7, U076A, U0658 ]}; // ‎ل‎ ‎ﻷ‎ ‎ݪ‎ ٘‎◌‎
key <AC06> {[ Arabic_alef, Arabic_hamzaonalef, U0671, Arabic_noon_ghunna ]}; // ا ‎أ ‎ٱ‎ ‎ں‎
key <AC07> {[ Arabic_teh, Arabic_tatweel, U067D, U067A ]}; // ‎ت‎ ‎ـ‎ ‎ٽ‎ ٺ‎
key <AC08> {[ Arabic_noon, Arabic_comma, U066B, U06BB ]}; // ‎ن‎ ‎،‎ ٫ ڻ‎
key <AC09> {[ Arabic_meem, slash, U06B3, U06B1 ]}; // ‎م‎ / ‎ڳ‎ ‎ڱ‎
key <AC10> {[ Arabic_kaf, colon, Arabic_gaf, Arabic_keheh ]}; // ‎ك‎ : ‎گ‎ ‎ک‎
key <AC11> {[ Arabic_tah, quotedbl, U27E9, U200D ]}; // ‎ط‎ " ⟩ ZWJ
key <BKSL> {[ backslash, bar, U27E8, U202F ]}; // \ | ⟨ NNBSP
key <LSGT> {[ bar, ellipsis, U06C0, U0620 ]}; // | … ‎ۀ‎ ‎ؠ‎
key <AB01> {[Arabic_hamzaonyeh, asciitilde, guillemotright, U203A ]}; // ‎ئ‎ ~ »
key <AB02> {[ Arabic_hamza, Arabic_sukun, guillemotleft, U2039 ]}; // ‎ء‎ ◌ْ «
key <AB03> {[Arabic_hamzaonwaw, braceright, U06C7, U0677 ]}; // ‎ؤ } ‎ۇ‎ ‎ٷ‎
key <AB04> {[ Arabic_ra, braceleft, U0693, U0699 ]}; // ‎ر‎ { ‎ړ ‎ڙ‎
key <AB05> {[ UFEFB, UFEF5, U06AB, U06AD ]}; // ‎ﻻ‎ ‎ﻵ‎ ‎ګ‎ ‎ڭ‎
key <AB06> {[Arabic_alefmaksura, Arabic_maddaonalef, Arabic_superscript_alef, Arabic_yeh_baree ]}; // ‎ى‎ ‎آ‎ ‎◌ٰ‎ ‎ے‎
key <AB07> {[Arabic_tehmarbuta, apostrophe, Arabic_fullstop, U06AA ]}; // ‎ة‎ ' ۔ ‎ڪ‎
key <AB08> {[ Arabic_waw, comma, U066C, U06CB ]}; // ‎و‎ , ‎٬‎ ‎ۋ‎
key <AB09> {[ Arabic_zain, period, Arabic_jeh, U0696 ]}; // ‎ز‎ . ‎ژ‎ ‎ږ‎
key <AB10> {[ Arabic_zah, Arabic_question_mark, Arabic_tteh, U200C ]}; // ‎ظ‎ ‎؟‎ ‎ٹ‎ ZWNJ
include "level3(ralt_switch)"
};
// Replaces the Western numeral signs with Arabic-script digits on the numeric row,
// pushing the Western digits to the third level accessible by the right alt key.
// The alternative numeral glyphs used in some languages that employ the Arabic script
// are featured in the fourth layer.
partial alphanumeric_keys
xkb_symbols "basic_ext_digits" {
include "ara(basic_ext)"
name[Group1]= "Arabic (Eastern Arabic numerals, extensions in the 4th level)";
key <TLDE> {[Arabic_thal, Arabic_shadda, percent, Arabic_ddal ]};
key <AE01> {[ Arabic_1, exclam, 1, Farsi_1 ]};
key <AE02> {[ Arabic_2, at, 2, Farsi_2 ]};
key <AE03> {[ Arabic_3, numbersign, 3, Farsi_3 ]};
key <AE04> {[ Arabic_4, dollar, 4, Farsi_4 ]};
key <AE05> {[ Arabic_5, Arabic_percent, 5, Farsi_5 ]};
key <AE06> {[ Arabic_6, Farsi_yeh, 6, Farsi_6 ]};
key <AE07> {[ Arabic_7, ampersand, 7, Farsi_7 ]};
key <AE08> {[ Arabic_8, asterisk, 8, Farsi_8 ]};
key <AE09> {[ Arabic_9, parenright, 9, Farsi_9 ]};
key <AE10> {[ Arabic_0, parenleft, 0, Farsi_0 ]};
include "ara(digits_KP)"
};
// An Ergonomic implementation of the basic Arabic keyboard (PC). Brings all letters to the middle 30 keys.
xkb_symbols "ergoarabic" {
include "ara(basic)"
name[Group1]= "Arabic (ErgoArabic)";
key <TLDE> {[ grave, asciitilde, any, any ]};
key <AD01> {[ Arabic_dal, Arabic_thal, any, U2066 ]};
key <AD02> {[ Arabic_sad, Arabic_dad, any, U2067 ]};
key <AD05> {[ Arabic_feh, Arabic_shadda, Arabic_veh, any ]};
key <AD06> {[ Arabic_hamza, Arabic_hamzaunderalef, any, U202A ]};
key <AD07> {[ Arabic_ain, Arabic_ghain, any, U202B ]};
key <AD08> {[ Arabic_ha, division, any, U202C ]};
key <AD09> {[ Arabic_waw, Arabic_hamzaonwaw, any, any ]};
key <AD10> {[ Arabic_tehmarbuta, Arabic_semicolon, any, U200E ]};
key <AD11> {[ bracketright, braceright, any, U200F ]};
key <AD12> {[ bracketleft, braceleft, any, U061C ]};
key <AC03> {[ Arabic_yeh, Arabic_fatha, any, any ]};
key <AC04> {[ Arabic_beh, Arabic_fathatan, Arabic_peh, any ]};
key <AC05> {[ Arabic_lam, Arabic_maddaonalef,Arabic_superscript_alef, any ]};
key <AC07> {[ Arabic_teh, Arabic_tatweel, any, any ]};
key <AC08> {[ Arabic_noon, multiply, U066B, any ]};
key <AC09> {[ Arabic_meem, comma, any, any ]};
key <AC10> {[ Arabic_kaf, colon, Arabic_gaf, any ]};
key <AC11> {[ apostrophe, quotedbl, U27E9, U200D ]};
key <BKSL> {[ backslash, bar, U27E8, U202F ]};
key <AB01> {[ Arabic_hamzaonyeh, any, U203A, any ]};
key <AB02> {[Arabic_alefmaksura, Arabic_sukun, U2039, any ]};
key <AB03> {[ Arabic_tah, Arabic_zah, any, any ]};
key <AB04> {[ Arabic_ra, Arabic_zain, Arabic_jeh, any ]};
key <AB05> {[ Arabic_khah, ellipsis, any, any ]};
key <AB06> {[ Arabic_hah, guillemotright, any, any ]};
key <AB07> {[ Arabic_jeem, guillemotleft, Arabic_tcheh, any ]};
key <AB08> {[ Arabic_comma, greater, any, any ]};
key <AB09> {[ period, less, any, any ]};
key <AB10> {[ slash, Arabic_question_mark, U066D, U200C ]};
};

25
nixos/xkb/symbols/at Normal file
View File

@@ -0,0 +1,25 @@
// Keyboard layouts for Austria.
default
xkb_symbols "basic" {
include "de(basic)"
name[Group1]="German (Austria)";
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "de(nodeadkeys)"
name[Group1]="German (Austria, no dead keys)";
};
partial alphanumeric_keys
xkb_symbols "mac" {
include "de(mac)"
name[Group1]= "German (Austria, Macintosh)";
};

9
nixos/xkb/symbols/au Normal file
View File

@@ -0,0 +1,9 @@
// Keyboard layout for Australia.
// The default Australian layout is the same as the American.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "us(basic)"
name[Group1]= "English (Australia)";
};

91
nixos/xkb/symbols/az Normal file
View File

@@ -0,0 +1,91 @@
// Keyboard layouts for Azerbaijan.
// Azerbaijani layout, based on the AZS 495-2010 standard.
// 2001 - Pablo Saratxaga <pablo@mandrakesoft.com>
// 2015 - Adil Aliyev <adilaliev@gmail.com>
default partial alphanumeric_keys
xkb_symbols "latin" {
include "us"
name[Group1]= "Azerbaijani";
key <AE02> {[ 2, quotedbl, at ]};
key <AE03> {[ 3, numerosign ]};
key <AE04> {[ 4, semicolon, U20BC ]}; // ₼ (manat sign)
key <AE06> {[ 6, colon ]};
key <AE07> {[ 7, question ]};
key <AD02> {[ udiaeresis, Udiaeresis ]};
key <AD08> {[ i, Iabovedot ]};
key <AD11> {[ odiaeresis, Odiaeresis ]};
key <AD12> {[ gbreve, Gbreve ]};
key <BKSL> {[ backslash, slash ]};
key <AC10> {[ idotless, I ]};
key <AC11> {[ schwa, SCHWA ]};
key <AB08> {[ ccedilla, Ccedilla ]};
key <AB09> {[ scedilla, Scedilla ]};
key <AB10> {[ period, comma ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "cyrillic" {
name[Group1]= "Azerbaijani (Cyrillic)";
key <TLDE> {[ grave, asciitilde ]};
key <AE01> {[ 1, exclam ]};
key <AE02> {[ 2, quotedbl, at ]}; // @
key <AE03> {[ 3, numbersign ]};
key <AE04> {[ 4, semicolon, U20BC ]}; // ₼
key <AE05> {[ 5, percent ]};
key <AE06> {[ 6, colon ]};
key <AE07> {[ 7, question ]};
key <AE08> {[ 8, asterisk, braceleft ]};
key <AE09> {[ 9, parenleft, bracketleft ]};
key <AE10> {[ 0, parenright, bracketright ]};
key <AE11> {[ minus, underscore, braceright ]};
key <AE12> {[ equal, plus ]};
key <AD01> {[ Cyrillic_je, Cyrillic_JE ]};
key <AD02> {[Cyrillic_u_straight,Cyrillic_U_straight]};
key <AD03> {[ Cyrillic_u, Cyrillic_U ]};
key <AD04> {[ Cyrillic_ka, Cyrillic_KA ]};
key <AD05> {[ Cyrillic_ie, Cyrillic_IE ]};
key <AD06> {[ Cyrillic_en, Cyrillic_EN ]};
key <AD07> {[ Cyrillic_ghe, Cyrillic_GHE ]};
key <AD08> {[ Cyrillic_sha, Cyrillic_SHA ]};
key <AD09> {[ Cyrillic_shha, Cyrillic_SHHA ]};
key <AD10> {[ Cyrillic_ze, Cyrillic_ZE ]};
key <AD11> {[ Cyrillic_ha, Cyrillic_HA ]};
key <AD12> {[ Cyrillic_che_vertstroke, Cyrillic_CHE_vertstroke ]};
key <AC01> {[ Cyrillic_ef, Cyrillic_EF ]};
key <AC02> {[ Cyrillic_yeru, Cyrillic_YERU ]};
key <AC03> {[ Cyrillic_ve, Cyrillic_VE ]};
key <AC04> {[ Cyrillic_a, Cyrillic_A ]};
key <AC05> {[ Cyrillic_pe, Cyrillic_PE ]};
key <AC06> {[ Cyrillic_er, Cyrillic_ER ]};
key <AC07> {[ Cyrillic_o, Cyrillic_O ]};
key <AC08> {[ Cyrillic_el, Cyrillic_EL ]};
key <AC09> {[ Cyrillic_de, Cyrillic_DE ]};
key <AC10> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
key <AC11> {[ Cyrillic_ka_vertstroke, Cyrillic_KA_vertstroke ]};
key <AB01> {[ Cyrillic_schwa, Cyrillic_SCHWA ]};
key <AB02> {[ Cyrillic_che, Cyrillic_CHE ]};
key <AB03> {[ Cyrillic_es, Cyrillic_ES ]};
key <AB04> {[ Cyrillic_em, Cyrillic_EM ]};
key <AB05> {[ Cyrillic_i, Cyrillic_I ]};
key <AB06> {[ Cyrillic_te, Cyrillic_TE ]};
key <AB07> {[ Cyrillic_ghe_bar, Cyrillic_GHE_bar ]};
key <AB08> {[ Cyrillic_be, Cyrillic_BE ]};
key <AB09> {[ Cyrillic_o_bar, Cyrillic_O_bar ]};
key <AB10> {[ period, comma ]};
include "level3(ralt_switch)"
};

36
nixos/xkb/symbols/ba Normal file
View File

@@ -0,0 +1,36 @@
// Keyboard layouts for Bosnia.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "rs(latin)"
name[Group1]="Bosnian";
};
partial alphanumeric_keys
xkb_symbols "us" {
include "rs(latinyz)"
name[Group1]= "Bosnian (US)";
};
partial alphanumeric_keys
xkb_symbols "alternatequotes" {
include "rs(latinalternatequotes)"
name[Group1]= "Bosnian (with guillemets)";
};
partial alphanumeric_keys
xkb_symbols "unicode" {
include "rs(latinunicode)"
name[Group1]= "Bosnian (with Bosnian digraphs)";
};
partial alphanumeric_keys
xkb_symbols "unicodeus" {
include "rs(latinunicodeyz)"
name[Group1]= "Bosnian (US, with Bosnian digraphs)";
};

81
nixos/xkb/symbols/bd Normal file
View File

@@ -0,0 +1,81 @@
// Keyboard layouts for Bangladesh.
// National Bangla/Bengali Standard keyboard layout,
// developed by the Bangladesh Computer Council (BCC).
// http://www.bcc.net.bd/keyboard/bsti_kb_specification.pdf
//
// Original author: Jamil Ahmed <jamil at bengalinux.org>, 2006.
//
// Issues:
// <AE06> has U+09B3 even though it is not allocated in Unicode;
// <AC07> has U+09BB even though it is not allocated in Unicode;
// <AC08> has U+09CE (Khanda-Ta), but BCC had the unallocated U+09BA there.
//
// Three double characters (conjuncts), on the third level of <AD02> and the
// third and fourth levels of <AB04>, are not included as XKB cannot do this.
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Bangla";
key <TLDE> {[ grave, asciitilde, none, none ]};
key <AE01> {[ U09E7, exclam, U09F4, none ]};
key <AE02> {[ U09E8, at, U09F5, none ]};
key <AE03> {[ U09E9, numbersign, U09F6, none ]};
key <AE04> {[ U09EA, dollar, U09F3, U09F2 ]};
key <AE05> {[ U09EB, percent, U09F7, none ]};
key <AE06> {[ U09EC, asciicircum, U09F8, U09B3 ]};
key <AE07> {[ U09ED, ampersand, U0902, none ]};
key <AE08> {[ U09EE, asterisk, none, none ]};
key <AE09> {[ U09EF, parenleft, none, none ]};
key <AE10> {[ U09E6, parenright, U09F9, none ]};
key <AE11> {[ minus, underscore, U200C, none ]};
key <AE12> {[ equal, plus, U200D, none ]};
key <AD01> {[ U0999, U0982, U09E2, U09E3 ]};
key <AD02> {[ U09AF, U09DF, none, none ]};
key <AD03> {[ U09A1, U09A2, U09C4, none ]};
key <AD04> {[ U09AA, U09AB, none, none ]};
key <AD05> {[ U099F, U09A0, none, none ]};
key <AD06> {[ U099A, U099B, none, none ]};
key <AD07> {[ U099C, U099D, none, none ]};
key <AD08> {[ U09B9, U099E, U09BD, none ]};
key <AD09> {[ U0997, U0998, none, none ]};
key <AD10> {[ U09DC, U09DD, none, none ]};
key <AD11> {[ bracketleft, braceleft, none, none ]};
key <AD12> {[ bracketright, braceright, none, none ]};
key <AC01> {[ U09C3, U09D7, U098B, U09E0 ]};
key <AC02> {[ U09C1, U09C2, U0989, U098A ]};
key <AC03> {[ U09BF, U09C0, U0987, U0988 ]};
key <AC04> {[ U09AC, U09AD, U09F0, U09F1 ]};
key <AC05> {[ U09CD, U0964, U0965, none ]};
key <AC06> {[ U09BE, U0985, U0986, none ]};
key <AC07> {[ U0995, U0996, U09BB, none ]};
key <AC08> {[ U09A4, U09A5, U09CE, none ]};
key <AC09> {[ U09A6, U09A7, U098C, U09E1 ]};
key <AC10> {[ semicolon, colon, none, none ]};
key <AC11> {[ apostrophe, quotedbl, none, none ]};
key <BKSL> {[ backslash, bar, none, none ]};
key <AB01> {[ U0981, U0983, U09FA, none ]};
key <AB02> {[ U09CB, U09CC, U0993, U0994 ]};
key <AB03> {[ U09C7, U09C8, U098F, U0990 ]};
key <AB04> {[ U09B0, U09B2, none, none ]};
key <AB05> {[ U09A8, U09A3, none, none ]};
key <AB06> {[ U09B8, U09B7, none, none ]};
key <AB07> {[ U09AE, U09B6, none, none ]};
key <AB08> {[ comma, less, none, none ]};
key <AB09> {[ period, greater, U09BC, none ]};
key <AB10> {[ slash, question, none, none ]};
include "level3(ralt_switch)"
};
// Probhat keyboard layout for Bangla/Bengali.
xkb_symbols "probhat" {
include "in(ben_probhat)"
name[Group1]= "Bangla (Probhat)";
};

184
nixos/xkb/symbols/be Normal file
View File

@@ -0,0 +1,184 @@
// Keyboard layouts for Belgium.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin"
name[Group1]="Belgian";
key <TLDE> {[twosuperior, threesuperior, notsign, notsign ]};
key <AE01> {[ ampersand, 1, bar, exclamdown ]};
key <AE02> {[ eacute, 2, at, oneeighth ]};
key <AE03> {[ quotedbl, 3, numbersign, sterling ]};
key <AE04> {[ apostrophe, 4, onequarter, dollar ]};
key <AE05> {[ parenleft, 5, onehalf, threeeighths ]};
key <AE06> {[ section, 6, asciicircum, fiveeighths ]};
key <AE07> {[ egrave, 7, braceleft, seveneighths ]};
key <AE08> {[ exclam, 8, bracketleft, trademark ]};
key <AE09> {[ ccedilla, 9, braceleft, plusminus ]};
key <AE10> {[ agrave, 0, braceright, degree ]};
key <AE11> {[ parenright, degree, backslash, questiondown ]};
key <AE12> {[ minus, underscore, dead_cedilla, dead_ogonek ]};
key <AD01> {[ a, A, at, Greek_OMEGA ]};
key <AD02> {[ z, Z, U017F, section ]};
key <AD03> {[ e, E, EuroSign, cent ]};
key <AD09> {[ o, O, oe, OE ]};
key <AD11> {[dead_circumflex, dead_diaeresis, bracketleft, dead_abovering]};
key <AD12> {[ dollar, asterisk, bracketright, dead_macron ]};
key <AC01> {[ q, Q, ae, AE ]};
key <AC10> {[ m, M, dead_acute, dead_doubleacute]};
key <AC11> {[ ugrave, percent, dead_acute, dead_caron ]};
key <BKSL> {[ mu, sterling, dead_grave, dead_breve ]};
key <LSGT> {[ less, greater, backslash, backslash ]};
key <AB01> {[ w, W, guillemotleft, less ]};
key <AB07> {[ comma, question, dead_cedilla, masculine ]};
key <AB08> {[ semicolon, period, U2022, multiply ]}; // bullet
key <AB09> {[ colon, slash, periodcentered, division ]};
key <AB10> {[ equal, plus, dead_tilde, dead_abovedot]};
include "level3(ralt_switch)"
};
// Variant of the fr(oss) layout for Belgium
// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ³ ≤ │ 1 ≥ │ 2 É │ 3 ˘ │ 4 — │ 5 │ 6 ™ │ 7 È │ 8 ¡ │ 9 Ç │ 0 À │ ° Ø │ _ ± ┃ ⌫ Retour┃
// │ ² ¹ │ & | │ é @ │ " # │ ' ¸ │ ( ˇ │ § ^ │ è ` │ ! ~ │ ç { │ à } │ ) ø │ - ┃ arrière┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ A Æ │ Z  │ E ¢ │ R Ê │ T Þ │ Y Ÿ │ U Û │ I Î │ O Œ │ P Ô │ ¨ ˚ │ * ̨ ┃Entrée ┃
// ┃Tab ↹ ┃ a æ │ z â │ e € │ r ê │ t þ │ y ÿ │ u û │ i î │ o œ │ p ô │ ^ [ │ $ ] ┃ ⏎ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ Q Ä │ S „ │ D Ë │ F │ G ¥ │ H Ð │ J Ü │ K Ï │ L │ M Ö │ % Ù │ £ ̄ ┃ ┃
// ┃Maj ⇬ ┃ q ä │ s ß │ d ë │ f │ g │ h ð │ j ü │ k ï │ l / │ m ö │ ù ' │ µ ` ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ > ≠ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / │ + ┃ ┃
// ┃Shift ⇧┃ < \ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ = ~ ┃Shift ⇧ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ␣ Espace insécable ⍽ ┃ ┃ ┃ ┃
// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace ␣ ┃AltGr ⇮┃Menu ┃Ctrl ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
partial alphanumeric_keys
xkb_symbols "oss" {
include "fr(oss)"
include "be(oss_frbe)"
name[Group1]="Belgian (alt.)";
};
partial alphanumeric_keys
xkb_symbols "oss_frbe" {
key <TLDE> {[ twosuperior, threesuperior, onesuperior, lessthanequal ]}; // ² ³ ¹ ≤
key <AE01> {[ ampersand, 1, bar, greaterthanequal ]}; // & 1 | ≥
key <AE02> {[ eacute, 2, at, Eacute ]}; // é 2 @ É
key <AE04> {[ apostrophe, 4, dead_cedilla, U2014 ]}; // ' 4 ¸ — (tiret cadratin)
key <AE05> {[ parenleft, 5, dead_caron, U2013 ]}; // ( 5 ˇ (tiret demi-cadratin)
key <AE06> {[ section, 6, asciicircum, trademark ]}; // § 6 ^ ™
key <AE08> {[ exclam, 8, asciitilde, exclamdown ]}; // ! 8 ~ ¡
key <AE09> {[ ccedilla, 9, braceleft, Ccedilla ]}; // ç 9 { Ç
key <AE10> {[ agrave, 0, braceright, Agrave ]}; // à 0 } À
key <AE11> {[ parenright, degree, oslash, Oslash ]}; // ) ° ø Ø
key <AE12> {[ minus, underscore, U2011, plusminus ]}; // - _ - ± (tiret insécable)
key <AD11> {[ dead_circumflex, dead_diaeresis, bracketleft, dead_abovering ]}; // ^ ̈ [ ˚
key <AD12> {[ dollar, asterisk, bracketright, dead_ogonek ]}; // $ * ] ̨
key <AC09> {[ l, L, dead_stroke ]};
key <BKSL> {[ mu, sterling, dead_grave, dead_macron ]}; // µ £ ` ̄
key <LSGT> {[ less, greater, backslash, notequal ]}; // < > \ ≠
key <AB10> {[ equal, plus, dead_tilde, U2212 ]}; // = + ~
};
partial alphanumeric_keys
xkb_symbols "oss_latin9" {
// Restricts the be(oss) layout to latin9 symbols
include "fr(oss_latin9)"
include "be(oss_frbe)"
include "keypad(oss_latin9)"
name[Group1]="Belgian (Latin-9 only, alt.)";
key <TLDE> {[ twosuperior, threesuperior, onesuperior, less ]}; // ² ³ ¹ <
key <AE01> {[ ampersand, 1, bar, greater ]}; // & 1 | >
key <AE04> {[ apostrophe, 4, dead_cedilla, minus ]}; // ' 4 ¸ -
key <AE05> {[ parenleft, 5, dead_caron, minus ]}; // ( 5 ˇ -
key <AE06> {[ section, 6, asciicircum, asciicircum ]}; // § 6 ^ ^
key <AE12> {[ minus, underscore, minus, plusminus ]}; // - _ - ±
key <AD12> {[ dollar, asterisk, bracketright, dead_cedilla ]}; // $ * ] ¸
key <AC09> {[ l, L, l, L ]}; // l L l L
key <BKSL> {[ mu, sterling, dead_grave, dead_circumflex ]}; // µ £ ` ^
key <LSGT> {[ less, greater, backslash, equal ]}; // < > \ =
key <AB10> {[ equal, plus, dead_tilde, minus ]}; // = + ~ -
};
partial alphanumeric_keys
xkb_symbols "iso-alternate" {
include "be(basic)"
name[Group1]="Belgian (ISO, alt.)";
key <AD01> {[ a, A, ae, AE ]};
key <AD02> {[ z, Z, guillemotleft, less ]};
key <AC01> {[ q, Q, at, Greek_OMEGA ]};
key <AC10> {[ m, M, mu, masculine ]};
key <AB01> {[ w, W, lstroke, Lstroke ]};
key <AB07> {[ comma, question, dead_cedilla, dead_doubleacute ]};
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
// Eliminates dead keys from the basic Belgian layout
include "be(basic)"
name[Group1]="Belgian (no dead keys)";
key <AE12> {[ minus, underscore, cedilla, ogonek ]};
key <AD11> {[asciicircum, diaeresis, bracketleft, bracketleft ]};
key <AD12> {[ dollar, asterisk, bracketright, macron ]};
key <AC07> {[ j, J, ezh, EZH ]};
key <AC10> {[ m, M, acute, doubleacute ]};
key <AC11> {[ ugrave, percent, apostrophe, apostrophe ]};
key <BKSL> {[ mu, sterling, grave, grave ]};
key <AB07> {[ comma, question, cedilla, masculine ]};
key <AB10> {[ equal, plus, asciitilde, asciitilde ]};
};
// Wang model 724 Belgian azerty keyboard.
partial alphanumeric_keys
xkb_symbols "wang" {
include "be(basic)"
include "keypad(legacy_wang)"
name[Group1]="Belgian (Wang 724 AZERTY)";
// Engravings on Wang 725-3771-AE:
key <TLDE> {[ twosuperior, threesuperior, notsign, asciitilde ]};
key <LSGT> {[ less, greater, backslash, brokenbar ]};
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/be(sun_type6)"
};

271
nixos/xkb/symbols/bg Normal file
View File

@@ -0,0 +1,271 @@
// Keyboard layouts for Bulgaria.
//////////////////////////////////////////////////////////////////////////
// Copyright (C) 1999, 2000, 2007, 2009 by Anton Zinoviev <anton@lml.bas.bg>
//
// This software may be used, modified, copied, distributed, and sold,
// both in source and binary form provided that the above copyright
// notice and these terms are retained. The name of the author may not
// be used to endorse or promote products derived from this software
// without prior permission. THIS SOFTWARE IS PROVIDED "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED. IN NO EVENT
// SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT
// OF THE USE OF THIS SOFTWARE.
//
//////////////////////////////////////////////////////////////////////////
// Version 2.0
// The following variants are defined in this file:
// "bds" - the BDS keyboard layout compliant with the proposed
// Bulgarian state standard BDS 5237:2006
// "bekl" - the „enhanced“ variant of the Bulgarian BDS keyboard,
// proposed in May 2020.
// "phonetic" - the phonetic Bulgarian layout with the traditional position
// of the letters
// "bas_phonetic" - the phonetic keyboard layout compliant with the
// proposed Bulgarian state standard BDS 5237:2006
// "latin" - an extended variant of the QWERTY layout with symbols that
// Bulgarian users will type while the keyboard is in Latin mode
// The reasons behind the layout of the symbols in levels 3 and 4 are
// explained in http://arxiv.org/abs/0905.0484 (in Bulgarian).
// Two notes for the maintainers of xkeyboard-config:
// 1. Please do not use key names such as <LatQ> for the Bulgarian
// phonetic layouts. The placement of the symbols must stay always
// the same regardless of which one of the alias sets in
// xkb/keycodes/aliases is used.
// 2. The layouts should not include level3(ralt_switch).
//////////////////////////////////////////////////////////////////////////
// Describes Bulgarian keyboard "BDS" according to the new state standard
// BDS 5237:2006 and extended with symbols in levels 3 and 4.
default partial alphanumeric_keys
xkb_symbols "bds" {
name[Group1]= "Bulgarian";
key <TLDE> {[ parenleft, parenright, bracketleft, bracketright ]};
key <AE01> {[ 1, exclam ]};
key <AE02> {[ 2, question ]};
key <AE03> {[ 3, plus, dagger, dagger ]};
key <AE04> {[ 4, quotedbl ]};
key <AE05> {[ 5, percent, U2329, U232A ]};
key <AE06> {[ 6, equal, emdash, emdash ]};
key <AE07> {[ 7, colon, ellipsis, ellipsis ]};
key <AE08> {[ 8, slash, U0300, U0301 ]};
key <AE09> {[ 9, endash ]};
key <AE10> {[ 0, numerosign ]};
key <AE11> {[ minus, dollar, U2011, EuroSign ]};
key <AE12> {[ period, EuroSign ]};
key <AD01> {[ comma, Cyrillic_yeru, rightsinglequotemark, leftsinglequotemark ]};
key <AD02> {[ Cyrillic_u, Cyrillic_U ]};
key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]};
key <AD04> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]};
key <AD05> {[ Cyrillic_sha, Cyrillic_SHA ]};
key <AD06> {[ Cyrillic_shcha, Cyrillic_SHCHA ]};
key <AD07> {[ Cyrillic_ka, Cyrillic_KA, copyright, copyright ]};
key <AD08> {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]};
key <AD09> {[ Cyrillic_de, Cyrillic_DE ]};
key <AD10> {[ Cyrillic_ze, Cyrillic_ZE ]};
key <AD11> {[ Cyrillic_tse, Cyrillic_TSE ]};
key <AD12> {[ semicolon, section ]};
key <AC01> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
key <AC02> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]};
key <AC03> {[ Cyrillic_a, Cyrillic_A ]};
key <AC04> {[ Cyrillic_o, Cyrillic_O ]};
key <AC05> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
key <AC06> {[ Cyrillic_ghe, Cyrillic_GHE ]};
key <AC07> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]};
key <AC08> {[ Cyrillic_en, Cyrillic_EN ]};
key <AC09> {[ Cyrillic_ve, Cyrillic_VE ]};
key <AC10> {[ Cyrillic_em, Cyrillic_EM ]};
key <AC11> {[ Cyrillic_che, Cyrillic_CHE ]};
key <BKSL> {[ doublelowquotemark, leftdoublequotemark, guillemotleft, guillemotright ]};
key <LSGT> {[ U045D, U040D ]};
key <AB01> {[ Cyrillic_yu, Cyrillic_YU ]};
key <AB02> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]};
key <AB03> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]};
key <AB04> {[ Cyrillic_e, Cyrillic_E ]};
key <AB05> {[ Cyrillic_ef, Cyrillic_EF ]};
key <AB06> {[ Cyrillic_ha, Cyrillic_HA ]};
key <AB07> {[ Cyrillic_pe, Cyrillic_PE ]};
key <AB08> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]};
key <AB09> {[ Cyrillic_el, Cyrillic_EL ]};
key <AB10> {[ Cyrillic_be, Cyrillic_BE ]};
key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]};
};
// This is a slightly enhanced variant of the Bulgarian BDS keyboard,
// proposed in May 2020 by a group of more than 500 linguists, teachers,
// writers, translators, IT specialists, professors and many more.
partial alphanumeric_keys
xkb_symbols "bekl" {
include "bg(bds)"
name[Group1]= "Bulgarian (enhanced)";
key <AE02> {[ 2, question, at, at ]};
key <AD01> {[ comma, U02BC, rightsinglequotemark, leftsinglequotemark ]};
key <AB04> {[ U0463, U0462 ]};
};
// This is an improved variant of the traditional Bulgarian phonetic
// keyboard. Some unnecessary symbols in levels 1 and 2 are replaced
// by more useful ones (similar as in "bas_phonetic") and additional
// symbols are added in levels 3 and 4.
partial alphanumeric_keys
xkb_symbols "phonetic" {
name[Group1]= "Bulgarian (traditional phonetic)";
key <TLDE> {[ Cyrillic_che, Cyrillic_CHE ]};
key <AE01> {[ 1, exclam ]};
key <AE02> {[ 2, at ]};
key <AE03> {[ 3, numerosign ]};
key <AE04> {[ 4, dollar, EuroSign, EuroSign ]};
key <AE05> {[ 5, percent ]};
key <AE06> {[ 6, EuroSign ]};
key <AE07> {[ 7, section ]};
key <AE08> {[ 8, asterisk ]};
key <AE09> {[ 9, parenleft, bracketleft, U2329 ]};
key <AE10> {[ 0, parenright, bracketright, U232A ]};
key <AE11> {[ minus, endash, U2011, U2011 ]};
key <AE12> {[ equal, plus, emdash, dagger ]};
key <AD01> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]};
key <AD02> {[ Cyrillic_ve, Cyrillic_VE ]};
key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]};
key <AD04> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]};
key <AD05> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]};
key <AD06> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]};
key <AD07> {[ Cyrillic_u, Cyrillic_U ]};
key <AD08> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]};
key <AD09> {[ Cyrillic_o, Cyrillic_O ]};
key <AD10> {[ Cyrillic_pe, Cyrillic_PE ]};
key <AD11> {[ Cyrillic_sha, Cyrillic_SHA ]};
key <AD12> {[ Cyrillic_shcha, Cyrillic_SHCHA ]};
key <AC01> {[ Cyrillic_a, Cyrillic_A ]};
key <AC02> {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]};
key <AC03> {[ Cyrillic_de, Cyrillic_DE ]};
key <AC04> {[ Cyrillic_ef, Cyrillic_EF ]};
key <AC05> {[ Cyrillic_ghe, Cyrillic_GHE ]};
key <AC06> {[ Cyrillic_ha, Cyrillic_HA ]};
key <AC07> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]};
key <AC08> {[ Cyrillic_ka, Cyrillic_KA ]};
key <AC09> {[ Cyrillic_el, Cyrillic_EL ]};
key <AC10> {[ semicolon, colon, ellipsis, ellipsis ]};
key <AC11> {[ apostrophe, quotedbl, rightsinglequotemark, leftsinglequotemark ]};
key <BKSL> {[ Cyrillic_yu, Cyrillic_YU ]};
key <LSGT> {[ U045D, U040D ]};
key <AB01> {[ Cyrillic_ze, Cyrillic_ZE ]};
key <AB02> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
key <AB03> {[ Cyrillic_tse, Cyrillic_TSE, copyright, copyright ]};
key <AB04> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
key <AB05> {[ Cyrillic_be, Cyrillic_BE ]};
key <AB06> {[ Cyrillic_en, Cyrillic_EN ]};
key <AB07> {[ Cyrillic_em, Cyrillic_EM ]};
key <AB08> {[ comma, doublelowquotemark, guillemotleft, guillemotleft ]};
key <AB09> {[ period, leftdoublequotemark, guillemotright, guillemotright ]};
key <AB10> {[ slash, question, U0300, U0301 ]};
key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]};
};
// This is the Bulgarian phonetic keyboard according to the proposed
// state standard BDS 5237:2006 with additional symbols in levels 3 and 4.
partial alphanumeric_keys
xkb_symbols "bas_phonetic" {
include "bg(phonetic)"
name[Group1]= "Bulgarian (new phonetic)";
key <TLDE> {[ Cyrillic_yu, Cyrillic_YU ]};
key <AD01> {[ Cyrillic_che, Cyrillic_CHE ]};
key <AD02> {[ Cyrillic_sha, Cyrillic_SHA ]};
key <AD11> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]};
key <BKSL> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
key <AB02> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
key <AB04> {[ Cyrillic_ve, Cyrillic_VE ]};
};
// This is an extended variant of the standard Latin QWERTY layout with
// additional symbols in levels 3 and 4.
hidden partial alphanumeric_keys
xkb_symbols "latin" {
key <TLDE> {[ grave, asciitilde, U2248, U2245 ]};
key <AE01> {[ 1, exclam, notsign, notsign ]};
key <AE02> {[ 2, at, twosuperior, enfilledcircbullet ]};
key <AE03> {[ 3, numbersign, threesuperior, notequal ]};
key <AE04> {[ 4, dollar, EuroSign, sterling ]};
key <AE05> {[ 5, percent, permille, permille ]};
key <AE06> {[ 6, asciicircum, logicaland, logicalor ]};
key <AE07> {[ 7, ampersand, section, section ]};
key <AE08> {[ 8, asterisk, infinity, multiply ]};
key <AE09> {[ 9, parenleft, U2202, nabla ]};
key <AE10> {[ 0, parenright, U2300, U2300 ]};
key <AE11> {[ minus, underscore, U2011, endash ]};
key <AE12> {[ equal, plus, emdash, plusminus ]};
key <AD01> {[ q, Q, Greek_THETA, Greek_theta ]};
key <AD02> {[ w, W, Greek_OMEGA, Greek_omega ]};
key <AD03> {[ e, E, U2203, Greek_epsilon ]};
key <AD04> {[ r, R, registered, Greek_rho ]};
key <AD05> {[ t, T, trademark, Greek_tau ]};
key <AD06> {[ y, Y, yen, Greek_upsilon ]};
key <AD07> {[ u, U, intersection, union ]};
key <AD08> {[ i, I, integral, Greek_iota ]};
key <AD09> {[ o, O, degree, U222E ]};
key <AD10> {[ p, P, Greek_PI, Greek_pi ]};
key <AD11> {[ bracketleft, braceleft, U2286, includedin ]};
key <AD12> {[ bracketright, braceright, U2208, U2209 ]};
key <AC01> {[ a, A, U2200, Greek_alpha ]};
key <AC02> {[ s, S, Greek_SIGMA, Greek_sigma ]};
key <AC03> {[ d, D, Greek_DELTA, Greek_delta ]};
key <AC04> {[ f, F, Greek_PHI, Greek_phi ]};
key <AC05> {[ g, G, Greek_GAMMA, Greek_gamma ]};
key <AC06> {[ h, H, U2225, Greek_eta ]};
key <AC07> {[ j, J ]};
key <AC08> {[ k, K, U03F0, Greek_kappa ]};
key <AC09> {[ l, L, Greek_LAMBDA, Greek_lambda ]};
key <AC10> {[ semicolon, colon, division, division ]};
key <AC11> {[ apostrophe, quotedbl, leftdoublequotemark, rightdoublequotemark]};
key <BKSL> {[ backslash, bar, identical, downtack ]};
key <LSGT> {[ less, greater, U2266, U2267 ]};
key <AB01> {[ z, Z, U2220, Greek_zeta ]};
key <AB02> {[ x, X, Greek_XI, Greek_xi ]};
key <AB03> {[ c, C, copyright, Greek_chi ]};
key <AB04> {[ v, V, Greek_PSI, Greek_psi ]};
key <AB05> {[ b, B, U03D1, Greek_beta ]};
key <AB06> {[ n, N, U207F, Greek_nu ]};
key <AB07> {[ m, M, Greek_mu, Greek_mu ]};
key <AB08> {[ comma, less, U2266, U21D4 ]};
key <AB09> {[ period, greater, U2267, U21D2 ]};
key <AB10> {[ slash, question, leftsinglequotemark, rightsinglequotemark]};
key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Decimal ]};
};

84
nixos/xkb/symbols/bqn Normal file
View File

@@ -0,0 +1,84 @@
// EXTRAS:
//
// BQN Keyboard Layouts
//
// Authors: Marshall Lochbaum <mwlochbaum@gmail.com>
// dzaima <dzaimagit@gmail.com>
// Editors: B. Wilson <iequeikalo@wilsonb.com>
// Symbols: https://mlochbaum.github.io/BQN/help/index.html
// ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬─────────┐
// │ ¬ │ ⎉ │ ⚇ │ ⍟ │ ◶ │ ⊘ │ ⎊ │ ⍎ │ ⍕ │ ⟨ │ ⟩ │ √ │ ⋆ │ │
// │ ˜ │ ˘ │ ¨ │ ⁼ │ ⌜ │ ´ │ ˝ │ │ ∞ │ ¯ │ • │ ÷ │ × │ │
// ├────┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬──────┤
// │ │ ↙ │ 𝕎 │ ⍷ │ 𝕣 │ ⍋ │ │ │ ⊑ │ ⊒ │ │ ⊣ │ ⊢ │ │
// │ │ ⌽ │ 𝕨 │ ∊ │ ↑ │ ∧ │ │ ⊔ │ ⊏ │ ⊐ │ π │ ← │ → │ │
// ├───────┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴──────┤
// │ │ ↖ │ 𝕊 │ │ 𝔽𝔾 │ « │ │ ⌾ │ » │ · │ ˙ │ │
// │ │ ⍉ │ 𝕤 │ ↕ │ 𝕗𝕘 │ ⊸ │ ∘ │ ○ │ ⟜ │ ⋄ │ ↩ │ │
// ├────────┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──────────┤
// │ │ ⋈ │ 𝕏 │ │ ⍒ │ ⌈ │ │ ≢ │ ≤ │ ≥ │ ⇐ │ │
// │ │ ⥊ │ 𝕩 │ ↓ │ │ ⌊ │ │ ≡ │ ∾ │ ≍ │ ≠ │ │
// ├───────────┼────┼────┼────┼────┴────┴────┴────┼────┼────┼────┼────────────┤
// │ │ │ │ │ │ │ │ │ │
// │ │ │ │ │ ‿ │ │ │ │ │
// └───────────┴────┴────┴────┴───────────────────┴────┴────┴────┴────────────┘
//
// This layout is intended to be used as an overlay on top of a base layout.
default partial alphanumeric_keys
xkb_symbols "bqn" {
name[Group1]= "BQN";
key <SPCE> { [ U0203F ] }; // space ‿
key <TLDE> { [ U002DC, U000AC ] }; // `˜¬
key <AE01> { [ U002D8, U02389 ] }; // 1˘⎉
key <AE02> { [ U000A8, U02687 ] }; // 2¨⚇
key <AE03> { [ U0207C, U0235F ] }; // 3⁼⍟
key <AE04> { [ U0231C, U025F6 ] }; // 4⌜
key <AE05> { [ U000B4, U02298 ] }; // 5´
key <AE06> { [ U002DD, U0238A ] }; // 6˝⎊
key <AE07> { [ U000AF, U0234E ] }; // 7 ⍎
key <AE08> { [ U0221E, U02355 ] }; // 8∞⍕
key <AE09> { [ U000AF, U027E8 ] }; // 9¯⟨
key <AE10> { [ U02022, U027E9 ] }; // 0•⟩
key <AE11> { [ U000F7, U0221A ] }; // -÷√
key <AE12> { [ U000D7, U022C6 ] }; // =×⋆
key <AD01> { [ U0233D, U02199 ] }; // Q⌽↙
key <AD02> { [ U1D568, U1D54E ] }; // W𝕨𝕎
key <AD03> { [ U0220A, U02377 ] }; // E∊⍷
key <AD04> { [ U02191, U1D563 ] }; // R↑𝕣
key <AD05> { [ U02227, U0234B ] }; // T∧⍋
key <AD06> { [ ] }; // Y
key <AD07> { [ U02294 ] }; // U⊔
key <AD08> { [ U0228F, U02291 ] }; // I⊏⊑
key <AD09> { [ U02290, U02292 ] }; // O⊐⊒
key <AD10> { [ U003C0, U02373 ] }; // Pπ
key <AD11> { [ U02190, U022A3 ] }; // [←⊣
key <AD12> { [ U02192, U022A2 ] }; // ]→⊢
key <AC01> { [ U02349, U02196 ] }; // A⍉↖
key <AC02> { [ U1D564, U1D54A ] }; // S𝕤𝕊
key <AC03> { [ U02195 ] }; // D↕
key <AC04> { [ U1D557, U1D53D ] }; // F𝕗𝔽
key <AC05> { [ U1D558, U1D53E ] }; // G𝕘𝔾
key <AC06> { [ U022B8, U000AB ] }; // H⊸«
key <AC07> { [ U02218 ] }; // J∘
key <AC08> { [ U025CB, U0233E ] }; // K○⌾
key <AC09> { [ U027DC, U000BB ] }; // L⟜»
key <AC10> { [ U022C4, U000B7 ] }; // ;⋄·
key <AC11> { [ U021A9, U002D9 ] }; // '↩˙
key <AC12> { [ ] }; // /
key <AB01> { [ U0294A, U022C8 ] }; // Z⥊⋈
key <AB02> { [ U1D569, U1D54F ] }; // X𝕩𝕏
key <AB03> { [ U02193 ] }; // C↓
key <AB04> { [ U02228, U02352 ] }; // V
key <AB05> { [ U0230A, U02308 ] }; // B⌊⌈
key <AB06> { [ ] }; // N
key <AB07> { [ U02261, U02262 ] }; // M≡≢
key <AB08> { [ U0223E, U02264 ] }; // ,∾≤
key <AB09> { [ U0224D, U02265 ] }; // .≍≥
key <AB10> { [ U02260, U021D0 ] }; // /≠⇐
};

355
nixos/xkb/symbols/br Normal file
View File

@@ -0,0 +1,355 @@
// Keyboard layouts for Brazil.
default
xkb_symbols "abnt2" {
// Based on a very simple Brazilian ABNT2 keyboard,
// by Ricardo Y. Igarashi (iga@that.com.br).
// With added support for dead keys in I18N applications,
// by Conectiva (http://www.conectiva.com.br).
include "latin"
name[Group1]="Portuguese (Brazil)";
key <TLDE> { [ apostrophe, quotedbl, notsign, notsign ] };
key <AE02> { [ 2, at, twosuperior, onehalf ] };
key <AE03> { [ 3, numbersign, threesuperior, threequarters ] };
key <AE04> { [ 4, dollar, sterling, onequarter ] };
key <AE05> { [ 5, percent, cent, threeeighths ] };
key <AE06> { [ 6, dead_diaeresis, notsign, diaeresis ] };
key <AE12> { [ equal, plus, section, dead_ogonek ] };
key <AD01> { [ q, Q, slash, slash ] };
key <AD02> { [ w, W, question, question ] };
key <AD03> { [ e, E, degree, degree ] };
key <AD04> { [ r, R, registered, registered ] };
key <AD11> { [ dead_acute, dead_grave, acute, grave ] };
key <AD12> { [ bracketleft, braceleft, ordfeminine, dead_macron ] };
key <BKSL> { [ bracketright, braceright, masculine, masculine ] };
key <AC10> { [ ccedilla, Ccedilla, dead_acute,dead_doubleacute ] };
key <AC11> { [ dead_tilde,dead_circumflex, asciitilde, asciicircum ] };
key <LSGT> { [ backslash, bar, dead_caron, dead_breve ] };
key <AB03> { [ c, C, copyright, copyright ] };
key <AB07> { [ m, M, mu, mu ] };
key <AB10> { [ semicolon, colon, dead_belowdot, dead_abovedot ] };
// The ABNT-2 keyboard has this special key:
key <AB11> { [ slash, question, degree, questiondown ] };
include "kpdl(comma)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "br(abnt2)"
name[Group1]="Portuguese (Brazil, no dead keys)";
key <AE06> { [ 6, diaeresis, notsign, notsign ] };
key <AE12> { [ equal, plus, section, radical ] };
key <AD11> { [ apostrophe, grave ] };
key <AD12> { [ bracketleft, braceleft, ordfeminine, dagger ] };
key <AC07> { [ j, J, ezh, EZH ] };
key <AC10> { [ ccedilla, Ccedilla, acute, doubleacute ] };
key <AC11> { [ asciitilde, asciicircum ] };
key <LSGT> { [ backslash, bar, endash, emdash ] };
key <AB10> { [ semicolon, colon, ellipsis, abovedot ] };
};
// The ABNT2 keyboard on IBM/Lenovo Thinkpads,
// by Piter PUNK <piterpk@terra.com.br>.
//
partial alphanumeric_keys
xkb_symbols "thinkpad" {
include "br(abnt2)"
name[Group1]="Portuguese (Brazil, IBM/Lenovo ThinkPad)";
key <RCTL> { [ slash, question, degree, questiondown ] };
};
partial alphanumeric_keys
xkb_symbols "olpc" {
// #HW-SPECIFIC
include "us(basic)"
name[Group1]="Portuguese (Brazil)";
key <TLDE> { [ apostrophe, quotedbl ] };
key <AE01> { [ 1, exclam, onesuperior ] };
key <AE02> { [ 2, at, twosuperior ] };
key <AE03> { [ 3, numbersign, threesuperior ] };
key <AE04> { [ 4, dollar, sterling ] };
key <AE05> { [ 5, percent, cent ] };
key <AE06> { [ 6, dead_diaeresis, notsign ] };
key <AE12> { [ equal, plus, section ] };
key <AD03> { [ e, E, EuroSign ] };
key <AD11> { [ dead_acute, dead_grave, acute, grave ] };
key <AD12> { [ bracketleft, braceleft, ordfeminine ] };
key <BKSL> { [ bracketright, braceright, masculine ] };
key <AC10> { [ ccedilla, Ccedilla ] };
key <AC11> { [ dead_tilde, dead_circumflex ] };
key <AB01> { [ z, Z, bar ] };
key <AB03> { [ c, C, 0x10020A2 ] };
key <AB09> { [ period, greater, backslash ] };
key <AB10> { [ semicolon, colon ] };
key <I219> { [ slash, question, degree, ISO_Next_Group ] };
include "level3(ralt_switch)"
};
// A phonetic layout for typing Russian on a ABNT2 keyboard.
// Originally by: Evandro Bernardes <evbernardes@gmail.com>, February 2023.
partial alphanumeric_keys
xkb_symbols "rus" {
include "br(abnt2)"
name[Group1]= "Russian (Brazil, phonetic)";
key <LatQ> {[ Cyrillic_softsign, Cyrillic_SOFTSIGN, Cyrillic_hardsign, Cyrillic_HARDSIGN ]};
key <LatW> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]};
key <AD04> {[ Cyrillic_er, Cyrillic_ER ]};
key <AD05> {[ Cyrillic_te, Cyrillic_TE ]};
key <LatY> {[ Cyrillic_yeru, Cyrillic_YERU ]};
key <AD07> {[ Cyrillic_u, Cyrillic_U, Cyrillic_yu, Cyrillic_YU ]};
key <AD08> {[ Cyrillic_i, Cyrillic_I ]};
key <AD09> {[ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ]};
key <AD10> {[ Cyrillic_pe, Cyrillic_PE ]};
key <LatA> {[ Cyrillic_a, Cyrillic_A, Cyrillic_ya, Cyrillic_YA ]};
key <AC02> {[ Cyrillic_es, Cyrillic_ES ]};
key <AC03> {[ Cyrillic_de, Cyrillic_DE ]};
key <AC04> {[ Cyrillic_ef, Cyrillic_EF ]};
key <AC05> {[ Cyrillic_ghe, Cyrillic_GHE ]};
key <AC06> {[ Cyrillic_ha, Cyrillic_HA ]};
key <AC07> {[ Cyrillic_shorti, Cyrillic_SHORTI ]};
key <AC08> {[ Cyrillic_ka, Cyrillic_KA ]};
key <AC09> {[ Cyrillic_el, Cyrillic_EL ]};
key <AC10> {[ Cyrillic_che, Cyrillic_CHE ]};
key <LatZ> {[ Cyrillic_ze, Cyrillic_ZE ]};
key <AB02> {[ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ]};
key <AB03> {[ Cyrillic_tse, Cyrillic_TSE ]};
key <AB04> {[ Cyrillic_ve, Cyrillic_VE ]};
key <AB05> {[ Cyrillic_be, Cyrillic_BE ]};
key <AB06> {[ Cyrillic_en, Cyrillic_EN ]};
key <AB07> {[ Cyrillic_em, Cyrillic_EM ]};
};
//
// Brazilian Dvorak layout 2005-04-18
// "Teclado Simplificado Brasileiro" ou "Dvorak Brasileiro"
//
// Heitor Moraes heitor.moraes@gmail.com
// Luiz Portella lfpor@lujz.org
// Nando Florestan nando2003@mandic.com.br
// Ari Caldeira ari@tecladobrasileiro.com.br
//
partial alphanumeric_keys
xkb_symbols "dvorak" {
name[Group1]="Portuguese (Brazil, Dvorak)";
// Numeric row
key <TLDE> { [ apostrophe, quotedbl, dead_caron, dead_doubleacute ] };
key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
key <AE02> { [ 2, at, twosuperior, onehalf ] };
key <AE03> { [ 3, numbersign, threesuperior, threequarters ] };
key <AE04> { [ 4, dollar, sterling, onequarter ] };
key <AE05> { [ 5, percent, cent, permille ] };
key <AE06> { [ 6, dead_diaeresis, notsign, diaeresis ] };
key <AE07> { [ 7, ampersand, dead_belowdot, dead_abovedot ] };
key <AE08> { [ 8, asterisk, dead_ogonek, dead_horn ] };
key <AE09> { [ 9, parenleft, dead_cedilla, dead_hook ] };
key <AE10> { [ 0, parenright, dead_macron, dead_breve ] };
key <AE11> { [ bracketleft, braceleft, ordfeminine, 0x01000326 ] };
key <AE12> { [ bracketright, braceright, masculine, dead_abovering ] };
// Upper row
key <AD01> { [ slash, question, degree, questiondown ] };
key <AD02> { [ comma, less, 0x01000329, 0x01000313 ] };
key <AD03> { [ period, greater, 0x01002022, periodcentered ] };
key <AD04> { [ p, P, thorn, THORN ] };
key <AD05> { [ y, Y, yen, yen ] };
key <AD06> { [ f, F, leftdoublequotemark, leftsinglequotemark ] };
key <AD07> { [ g, G, rightdoublequotemark, rightsinglequotemark ] };
key <AD08> { [ c, C, uparrow, copyright ] };
key <AD09> { [ r, R, registered, registered ] };
key <AD10> { [ l, L, lstroke, Lstroke ] };
key <AD11> { [ dead_acute, dead_grave, acute, grave ] };
key <AD12> { [ equal, plus, section, plusminus ] };
// Central row
key <AC01> { [ a, A, ae, AE ] };
key <AC02> { [ o, O, oe, OE ] };
key <AC03> { [ e, E, EuroSign, EuroSign ] };
key <AC04> { [ u, U, oslash, Oslash ] };
key <AC05> { [ i, I, idotless, Iabovedot ] };
key <AC06> { [ d, D, eth, ETH ] };
key <AC07> { [ h, H, leftarrow, paragraph ] };
key <AC08> { [ t, T, rightarrow, trademark ] };
key <AC09> { [ n, N, eng, ENG ] };
key <AC10> { [ s, S, ssharp, U1E9E ] };
key <AC11> { [ dead_tilde, dead_circumflex, asciitilde, asciicircum ] };
key <BKSL> { [ minus, underscore, 0x01002015, 0x01000336 ] };
// Lower row
key <LSGT> { [ ccedilla, Ccedilla, backslash, bar ] };
key <AB01> { [ semicolon, colon, 0x01000331, 0x0100032D ] };
key <AB02> { [ q, Q, schwa, SCHWA ] };
key <AB03> { [ j, J, ezh, EZH ] };
key <AB04> { [ k, K, guillemotleft, 0x01002039 ] };
key <AB05> { [ x, X, multiply, division ] };
key <AB06> { [ b, B, guillemotright, 0x0100203A ] };
key <AB07> { [ m, M, downarrow, mu ] };
key <AB08> { [ w, W, ubreve, Ubreve ] };
key <AB09> { [ v, V, doublelowquotemark, singlelowquotemark ] };
key <AB10> { [ z, Z, 0x0100201F, 0x0100201B ] };
key <AB11> { [ backslash, bar, currency, brokenbar ] };
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
// Configures the "," for the numeric keypad
include "kpdl(comma)"
// Configures the use of the AltGr key
include "level3(ralt_switch)"
};
//
// Brazilian Nativo layout.
// This is a Dvorak-based layout, designed for the Portuguese language.
//
// Ari Caldeira <ari@tecladobrasileiro.com.br> 2005-07-19
//
partial alphanumeric_keys
xkb_symbols "nativo" {
name[Group1]="Portuguese (Brazil, Nativo)";
// Numeric row
key <TLDE> { [ equal, plus, section, plusminus ] };
key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
key <AE02> { [ 2, at, twosuperior, onehalf ] };
key <AE03> { [ 3, numbersign, threesuperior, threequarters ] };
key <AE04> { [ 4, dollar, sterling, onequarter ] };
key <AE05> { [ 5, percent, cent, permille ] };
key <AE06> { [ 6, dead_diaeresis, notsign, diaeresis ] };
key <AE07> { [ 7, ampersand, dead_belowdot, dead_abovedot ] };
key <AE08> { [ 8, asterisk, dead_ogonek, dead_horn ] };
key <AE09> { [ 9, parenleft, dead_cedilla, dead_hook ] };
key <AE10> { [ 0, parenright, dead_macron, dead_breve ] };
key <AE11> { [ bracketleft, braceleft, ordfeminine, 0x01000326 ] };
key <AE12> { [ bracketright, braceright, masculine, dead_abovering ] };
// Upper row
key <AD01> { [ slash, question, degree, questiondown ] };
key <AD02> { [ comma, less, 0x01000329, 0x01000313 ] };
key <AD03> { [ period, greater, 0x01002022, periodcentered ] };
key <AD04> { [ h, H, paragraph, paragraph ] };
key <AD05> { [ x, X, multiply, division ] };
key <AD06> { [ w, W, ubreve, Ubreve ] };
key <AD07> { [ l, L, lstroke, Lstroke ] };
key <AD08> { [ t, T, trademark, trademark ] };
key <AD09> { [ c, C, copyright, copyright ] };
key <AD10> { [ p, P, thorn, THORN ] };
key <AD11> { [ dead_tilde, dead_circumflex, asciitilde, asciicircum ] };
key <AD12> { [ minus, underscore, 0x01002015, 0x01000336 ] };
// Central row
key <AC01> { [ i, I, idotless, Iabovedot ] };
key <AC02> { [ e, E, EuroSign, EuroSign ] };
key <AC03> { [ a, A, ae, AE ] };
key <AC04> { [ o, O, oe, OE ] };
key <AC05> { [ u, U, oslash, Oslash ] };
key <AC06> { [ m, M, mu, mu ] };
key <AC07> { [ d, D, eth, ETH ] };
key <AC08> { [ s, S, ssharp, U1E9E ] };
key <AC09> { [ r, R, registered, registered ] };
key <AC10> { [ n, N, eng, ENG ] };
key <AC11> { [ dead_acute, dead_grave, acute, grave ] };
key <BKSL> { [ apostrophe, quotedbl, dead_caron, dead_doubleacute ] };
// Lower row
key <LSGT> { [ semicolon, colon, 0x01000331, 0x0100032D ] };
key <AB01> { [ y, Y, yen, yen ] };
key <AB02> { [ ccedilla, Ccedilla, backslash, bar ] };
key <AB03> { [ j, J, ezh, EZH ] };
key <AB04> { [ b, B, guillemotleft, 0x01002039 ] };
key <AB05> { [ k, K, guillemotright, 0x0100203A ] };
key <AB06> { [ q, Q, schwa, SCHWA ] };
key <AB07> { [ v, V, doublelowquotemark, singlelowquotemark ] };
key <AB08> { [ g, G, leftdoublequotemark, leftsinglequotemark ] };
key <AB09> { [ f, F, rightdoublequotemark, rightsinglequotemark ] };
key <AB10> { [ z, Z, 0x0100201F, 0x0100201B ] };
key <AB11> { [ backslash, bar, currency, brokenbar ] };
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
// Configures the "," for the numeric keypad
include "kpdl(comma)"
// Configures the use of the AltGr key
include "level3(ralt_switch)"
};
//
// Brazilian Nativo layout for US keyboards.
//
// Ari Caldeira <ari@tecladobrasileiro.com.br> 2005-07-19
//
partial alphanumeric_keys
xkb_symbols "nativo-us" {
include "br(nativo)"
name[Group1]="Portuguese (Brazil, Nativo for US keyboards)";
key <AB01> { [ y, Y, ccedilla, Ccedilla ] };
key <AB02> { [ semicolon, colon, backslash, bar ] };
};
//
// Brazilian Nativo layout for typing Esperanto.
//
// Ari Caldeira <ari@tecladobrasileiro.com.br> 2005-07-19
//
partial alphanumeric_keys
xkb_symbols "nativo-epo" {
include "br(nativo)"
name[Group1]="Esperanto (Brazil, Nativo)";
key <AD04> { [ h, H, hcircumflex, Hcircumflex ] };
key <AD05> { [ ccircumflex, Ccircumflex, x, X ] };
key <AD06> { [ ubreve, Ubreve, w, W ] };
key <AB01> { [ jcircumflex, Jcircumflex, y, Y ] };
key <AB02> { [ scircumflex, Scircumflex, ccedilla, Ccedilla ] };
key <AB06> { [ gcircumflex, Gcircumflex, q, Q ] };
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/br(sun_type6)"
};

92
nixos/xkb/symbols/brai Normal file
View File

@@ -0,0 +1,92 @@
// 10-dot patterns on the home row + v and n
default partial alphanumeric_keys
xkb_symbols "home_row" {
include "brai(keypad)"
name[Group1]="Braille";
key <AC04> { [ braille_dot_1 ] };
key <AC03> { [ braille_dot_2 ] };
key <AC02> { [ braille_dot_3 ] };
key <AC07> { [ braille_dot_4 ] };
key <AC08> { [ braille_dot_5 ] };
key <AC09> { [ braille_dot_6 ] };
key <AC01> { [ braille_dot_7 ] };
key <AC10> { [ braille_dot_8 ] };
key <AB04> { [ braille_dot_9 ] };
key <AB06> { [ braille_dot_10 ] };
};
// 6-dot patterns for the left hand
partial alphanumeric_keys
xkb_symbols "left_hand" {
include "brai(keypad_left)"
name[Group1]="Braille (left-handed)";
key <AC03> { [ braille_dot_1 ] };
key <AC02> { [ braille_dot_2 ] };
key <AC01> { [ braille_dot_3 ] };
key <AC04> { [ braille_dot_4 ] };
key <AB04> { [ braille_dot_5 ] };
key <AB05> { [ braille_dot_6 ] };
};
// 6-dot patterns for the left hand
partial alphanumeric_keys
xkb_symbols "left_hand_invert" {
include "brai(left_hand)"
name[Group1]="Braille (left-handed inverted thumb)";
key <AB05> { [ braille_dot_5 ] };
key <AB04> { [ braille_dot_6 ] };
};
// 6-dot patterns for the right hand
partial alphanumeric_keys
xkb_symbols "right_hand" {
include "brai(keypad)"
name[Group1]="Braille (right-handed)";
key <AC07> { [ braille_dot_1 ] };
key <AB06> { [ braille_dot_2 ] };
key <AB05> { [ braille_dot_3 ] };
key <AC08> { [ braille_dot_4 ] };
key <AC10> { [ braille_dot_5 ] };
key <AC09> { [ braille_dot_6 ] };
};
// 6-dot patterns for the right hand
partial alphanumeric_keys
xkb_symbols "right_hand_invert" {
include "brai(right_hand)"
name[Group1]="Braille (right-handed inverted thumb)";
key <AB05> { [ braille_dot_2 ] };
key <AB06> { [ braille_dot_3 ] };
};
// 6-dot patterns on the keypad
hidden partial keypad_keys
xkb_symbols "keypad" {
key <KP4> { [ braille_dot_1 ] };
key <KP1> { [ braille_dot_2 ] };
key <KP0> { [ braille_dot_3 ] };
key <KP5> { [ braille_dot_4 ] };
key <KP6> { [ braille_dot_5 ] };
key <KPAD> { [ braille_dot_6 ] };
};
// 6-dot patterns on the keypad with left hand
hidden partial keypad_keys
xkb_symbols "keypad_left" {
key <KPMU> { [ braille_dot_1 ] };
key <KPDV> { [ braille_dot_2 ] };
key <NMLK> { [ braille_dot_3 ] };
key <KPSU> { [ braille_dot_4 ] };
key <KPAD> { [ braille_dot_5 ] };
key <KPEN> { [ braille_dot_6 ] };
};

83
nixos/xkb/symbols/bt Normal file
View File

@@ -0,0 +1,83 @@
// Keyboard layout for Bhutan.
// Based on the official layout for Dzongkha that was
// approved by the Department of Information Technology and
// the Dzongkha Development Commission of the Government of Bhutan.
//
// Copyright (C) 2004, Gregory Mokhin <mokhin@bog.msu.ru>
// January 2004 -- layout map provided by Chris Fynn
// July 2004 -- some corrections by Pema Geyleg <pema_geyleg@druknet.bt>
// May 2022 -- updated to the revised standard of October 2009
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Dzongkha";
key <TLDE> {[ U0F09, U0F0A, U0FD1, U0FD0 ]};
// Mainly digits:
key <AE01> {[ U0F21, U0F04, 1, U0FD3 ]};
key <AE02> {[ U0F22, U0F05, 2, U0FD4 ]};
key <AE03> {[ U0F23, U0F06, 3, U0F3A ]};
key <AE04> {[ U0F24, U0F48, 4, U0F3B ]}; // U+0F48 is an unassigned code point
key <AE05> {[ U0F25, U0F0E, 5, U0F85 ]};
key <AE06> {[ U0F26, U0F08, 6, U0F01 ]};
key <AE07> {[ U0F27, U0F38, 7, U0F8A ]};
key <AE08> {[ U0F28, U0F34, 8, asterisk ]};
key <AE09> {[ U0F29, U0F3C, 9, parenleft ]};
key <AE10> {[ U0F20, U0F3D, 0, parenright ]};
key <AE11> {[ U0F14, U0F7F, minus, U0FD2 ]};
key <AE12> {[ U0F0D, U0F11, equal, plus ]};
key <BKSL> {[ U0F5D, U0FAD, backslash, U0FBA ]};
// Consonants ( ka kha ga nga ):
key <AD01> {[ U0F40, U0F90, U0F88, U0F8D ]};
key <AD02> {[ U0F41, U0F91, U0F89, U0F8E ]};
key <AD03> {[ U0F42, U0F92, U0F8C, U0F8F ]};
key <AD04> {[ U0F44, U0F94, U0F83, U0F82 ]};
// Vowels ( i u e o ):
key <AD05> {[ U0F72, U0F80, U0F1A, U0F8B ]}; // fourth level needs double code point
key <AD06> {[ U0F74, U0F84, U0F1B, none ]};
key <AD07> {[ U0F7A, U0F7B, U0F1C, none ]};
key <AD08> {[ U0F7C, U0F7D, U0F1D, U0F17 ]};
// Consonants ( ca cha ja nya ):
key <AD09> {[ U0F45, U0F95, U0F1E, U0F18 ]};
key <AD10> {[ U0F46, U0F96, U0F1F, U0F19 ]};
key <AD11> {[ U0F47, U0F97, parenleft, U0F3F ]};
key <AD12> {[ U0F49, U0F99, parenright, U0F3E ]};
// Consonants ( ta tha da na pa pha ba ma tsa tsha dza wa ):
key <AC01> {[ U0F4F, U0F9F, U0F4A, U0F9A ]};
key <AC02> {[ U0F50, U0FA0, U0F4B, U0F9B ]};
key <AC03> {[ U0F51, U0FA1, U0F4C, U0F9C ]};
key <AC04> {[ U0F53, U0FA3, U0F4E, U0F9E ]};
key <AC05> {[ U0F54, U0FA4, U2039, guillemotleft ]};
key <AC06> {[ U0F55, U0FA5, U203A, guillemotright ]};
key <AC07> {[ U0F56, U0FA6, U0F37, U0F35 ]};
key <AC08> {[ U0F58, U0FA8, U0F7E, U0F87 ]};
key <AC09> {[ U0F59, U0FA9, U0F39, U0F86 ]};
key <AC10> {[ U0F5A, U0FAA, semicolon, colon ]};
key <AC11> {[ U0F5B, U0FAB, apostrophe, quotedbl ]};
key <LSGT> {[ U0F0D, U0F11, U0F10, U0F0F ]};
// Consonants ( zha za 'a ya ra la sha sa ha a ):
key <AB01> {[ U0F5E, U0FAE, U0F13, U0F36 ]};
key <AB02> {[ U0F5F, U0FAF, U0FBE, U0FBF ]};
key <AB03> {[ U0F60, U0F71, U0F03, U0FB0 ]};
key <AB04> {[ U0F61, U0FB1, U0F0F, U0FBB ]};
key <AB05> {[ U0F62, U0FB2, U0F6A, U0FBC ]};
key <AB06> {[ U0F63, U0FB3, U0F12, none ]};
key <AB07> {[ U0F64, U0FB4, U0F65, U0FB5 ]};
key <AB08> {[ U0F66, U0FB6, comma, U0FD9 ]};
key <AB09> {[ U0F67, U0FB7, period, U0FDA ]};
key <AB10> {[ U0F68, U0FB8, slash, question]};
// Tshegs and spaces:
key <SPCE> {[ U0F0B, space, U0F0C, nobreakspace ]};
include "level3(ralt_switch)"
};

21
nixos/xkb/symbols/bw Normal file
View File

@@ -0,0 +1,21 @@
// Keyboard layout for Botswana.
default partial alphanumeric_keys
xkb_symbols "tswana" {
include "us"
name[Group1]= "Tswana";
key <TLDE> {[ grave, asciitilde, U0300, U0303 ]}; // COMBINING GRAVE ACCENT, COMBINING TILDE
key <AE06> {[ 6, asciicircum, U0302 ]}; // COMBINING CIRCUMFLEX ACCENT
key <AE08> {[ 8, asterisk, U0307, U0323 ]}; // COMBINING DOT ABOVE, COMBINING DOT BELOW
key <AE09> {[ 9, parenleft, U0306 ]}; // COMBINING BREVE
key <AE10> {[ 0, parenright, U030c ]}; // COMBINING CARON
key <AE11> {[ minus, underscore, U0304, U0331 ]}; // COMBINING MACRON, COMBINING MACRON BELOW
key <AC10> {[ semicolon, colon, U0324, U0324 ]}; // COMBINING DIAERESIS BELOW
key <AC11> {[apostrophe, quotedbl, U0301, U0308 ]}; // COMBINING ACUTE ACCENT, COMBINING DIAERESIS
include "level3(ralt_switch)"
};

113
nixos/xkb/symbols/by Normal file
View File

@@ -0,0 +1,113 @@
// Keyboard layouts for Belarus.
// Belarusian standard keyboard, by Alexander Mikhailian <mikhailian@altern.org>.
// Reworked to use Russian keymap as base and winkeys by default,
// by Paul Lubetsky <vegeek@gmail.com>, see https://bugs.freedesktop.org/23604.
// Added Belarusian-Russian and Russian-Belarusian variants,
// by Pavel Senchanka <pavel.senchanka@gmail.com>
default partial alphanumeric_keys
xkb_symbols "basic" {
include "ru(winkeys)"
name[Group1]= "Belarusian";
key <AD07> {[ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ]};
key <AD09> {[ Byelorussian_shortu, Byelorussian_SHORTU ]};
key <AD12> {[ apostrophe, apostrophe ]};
key <AB05> {[ Ukrainian_i, Ukrainian_I ]};
};
partial alphanumeric_keys
xkb_symbols "legacy" {
include "by(basic)"
name[Group1]= "Belarusian (legacy)";
key <AE03> {[ 3, numbersign ]};
key <AE04> {[ 4, asterisk ]};
key <AE05> {[ 5, colon ]};
key <AE06> {[ 6, comma ]};
key <AE07> {[ 7, period ]};
key <AE08> {[ 8, semicolon ]};
key <AB10> {[ slash, question ]};
key <BKSL> {[ backslash, bar ]};
};
partial alphanumeric_keys
xkb_symbols "latin" {
include "latin"
name[Group1]= "Belarusian (Latin)";
key <AD02> {[ w, W, scaron, Scaron ]};
key <AD07> {[ u, U, ubreve, Ubreve ]};
key <AC02> {[ s, S, sacute, Sacute ]};
key <AC08> {[ k, K, lacute, Lacute ]};
key <AC09> {[ l, L, lstroke, Lstroke ]};
key <AB01> {[ z, Z, zacute, Zacute ]};
key <AB02> {[ x, X, zcaron, Zcaron ]};
key <AB03> {[ c, C, cacute, Cacute ]};
key <AB04> {[ v, V, ccaron, Ccaron ]};
key <AB06> {[ n, N, nacute, Nacute ]};
// Poland
key <AD03> {[ e, E, eogonek, Eogonek ]};
key <AD09> {[ o, O, oacute, Oacute ]};
key <AC01> {[ a, A, aogonek, Aogonek ]};
key <AC07> {[ j, J, zabovedot, Zabovedot ]};
include "level3(ralt_switch)"
};
// Russian layout with Belarusian symbols on third level.
partial alphanumeric_keys
xkb_symbols "ru" {
include "ru(winkeys)"
name[Group1]= "Russian (Belarus)";
key <AB05> {[ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ]};
key <AD09> {[ Cyrillic_shcha, Cyrillic_SHCHA, Byelorussian_shortu, Byelorussian_SHORTU ]};
key <AD12> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U2019, apostrophe ]};
include "level3(ralt_switch)"
};
// Belarusian layout extended with other East Slavic symbols (Russian, Ukrainian).
partial alphanumeric_keys
xkb_symbols "intl" {
include "by(basic)"
name[Group1]= "Belarusian (intl.)";
// Russian
key <AB05> {[ Ukrainian_i, Ukrainian_I, Cyrillic_i, Cyrillic_I ]};
key <AD09> {[ Byelorussian_shortu, Byelorussian_SHORTU, Cyrillic_shcha, Cyrillic_SHCHA ]};
key <AD12> {[ U2019, apostrophe, Cyrillic_hardsign, Cyrillic_HARDSIGN ]};
// Ukrainian (Yi is usually on <AD12>, but it is already taken in our case).
key <AC11> {[ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ]};
key <AD11> {[ Cyrillic_ha, Cyrillic_HA, Ukrainian_yi, Ukrainian_YI ]};
key <BKSL> {[ backslash, bar, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "phonetic" {
include "ru(phonetic)"
name[Group1]= "Belarusian (phonetic)";
// Mostly same as good old YAWERTY layout, but with correct
// Belarusian i and ў (u-short) instead of щ (shcha). We also
// keep originals on level3 just in case.
key <AD12> {[ Byelorussian_shortu, Byelorussian_SHORTU, Cyrillic_shcha, Cyrillic_SHCHA ]};
key <AD08> {[ Ukrainian_i, Ukrainian_I, Cyrillic_i, Cyrillic_I ]};
// Lets also add level3+u to enable another way to input u-short
key <AD07> {[ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ]};
// Since we already enable level3 lets also do alternative
// means for io and hardsign.
key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ]};
key <AB02> {[ Cyrillic_softsign, Cyrillic_SOFTSIGN, Cyrillic_hardsign, Cyrillic_HARDSIGN ]};
include "level3(ralt_switch)"
};

379
nixos/xkb/symbols/ca Normal file
View File

@@ -0,0 +1,379 @@
// Keyboard layouts for Canada.
default partial
xkb_symbols "fr" {
name[Group1] = "French (Canada)";
key <TLDE> {[ numbersign, bar, backslash ]};
key <AE01> {[ 1, exclam, plusminus ]};
key <AE02> {[ 2, quotedbl, at ]};
key <AE03> {[ 3, slash, sterling ]};
key <AE04> {[ 4, dollar, cent ]};
key <AE05> {[ 5, percent, currency ]};
key <AE06> {[ 6, question, notsign ]};
key <AE07> {[ 7, ampersand, brokenbar ]};
key <AE08> {[ 8, asterisk, twosuperior ]};
key <AE09> {[ 9, parenleft, threesuperior ]};
key <AE10> {[ 0, parenright, onequarter ]};
key <AE11> {[ minus, underscore, onehalf ]};
key <AE12> {[ equal, plus, threequarters ]};
key <AD01> {[ q, Q ]};
key <AD02> {[ w, W ]};
key <AD03> {[ e, E, EuroSign ]};
key <AD04> {[ r, R ]};
key <AD05> {[ t, T ]};
key <AD06> {[ y, Y, yen ]};
key <AD07> {[ u, U ]};
key <AD08> {[ i, I ]};
key <AD09> {[ o, O, section ]};
key <AD10> {[ p, P, paragraph ]};
key <AD11> {[dead_circumflex, dead_circumflex, bracketleft ]};
key <AD12> {[ dead_cedilla, dead_diaeresis, bracketright ]};
key <AC01> {[ a, A ]};
key <AC02> {[ s, S ]};
key <AC03> {[ d, D ]};
key <AC04> {[ f, F ]};
key <AC05> {[ g, G ]};
key <AC06> {[ h, H ]};
key <AC07> {[ j, J ]};
key <AC08> {[ k, K ]};
key <AC09> {[ l, L ]};
key <AC10> {[ semicolon, colon, asciitilde ]};
key <AC11> {[dead_grave, dead_grave, braceleft ]};
key <BKSL> {[ less, greater, braceright ]};
key <LSGT> {[guillemotleft, guillemotright, degree]};
key <AB01> {[ z, Z ]};
key <AB02> {[ x, X ]};
key <AB03> {[ c, C ]};
key <AB04> {[ v, V ]};
key <AB05> {[ b, B ]};
key <AB06> {[ n, N ]};
key <AB07> {[ m, M, mu ]};
key <AB08> {[ comma, apostrophe, macron ]};
key <AB09> {[ period, period, hyphen ]};
key <AB10> {[ eacute, Eacute, dead_acute ]};
key <SPCE> {[ space, space, nobreakspace ]};
include "level3(ralt_switch)"
};
xkb_symbols "fr-dvorak" {
name[Group1] = "French (Canada, Dvorak)";
key <TLDE> {[ numbersign, bar, backslash ]};
key <AE01> {[ 1, exclam, plusminus ]};
key <AE02> {[ 2, quotedbl, at ]};
key <AE03> {[ 3, slash, sterling ]};
key <AE04> {[ 4, dollar, cent ]};
key <AE05> {[ 5, percent, currency ]};
key <AE06> {[ 6, question, notsign ]};
key <AE07> {[ 7, ampersand, brokenbar ]};
key <AE08> {[ 8, asterisk, twosuperior ]};
key <AE09> {[ 9, parenleft, threesuperior ]};
key <AE10> {[ 0, parenright, onequarter ]};
key <AE11> {[dead_circumflex, dead_circumflex, bracketleft ]};
key <AE12> {[ dead_cedilla, dead_diaeresis, bracketright ]};
key <AD01> {[dead_grave, dead_grave, braceleft ]};
key <AD02> {[ comma, apostrophe, macron ]};
key <AD03> {[ period, period, hyphen ]};
key <AD04> {[ p, P, paragraph ]};
key <AD05> {[ y, Y ]};
key <AD06> {[ f, F ]};
key <AD07> {[ g, G ]};
key <AD08> {[ c, C ]};
key <AD09> {[ r, R ]};
key <AD10> {[ l, L ]};
key <AD11> {[ eacute, Eacute, dead_acute ]};
key <AD12> {[ equal, plus, threequarters ]};
key <AC01> {[ a, A ]};
key <AC02> {[ o, O, section ]};
key <AC03> {[ e, E ]};
key <AC04> {[ u, U ]};
key <AC05> {[ i, I ]};
key <AC06> {[ d, D ]};
key <AC07> {[ h, H ]};
key <AC08> {[ t, T ]};
key <AC09> {[ n, N ]};
key <AC10> {[ s, S ]};
key <AC11> {[ minus, underscore, onehalf ]};
key <BKSL> {[ less, greater, braceright ]};
key <LSGT> {[guillemotleft, guillemotright, degree]};
key <AB01> {[ semicolon, colon, asciitilde ]};
key <AB02> {[ q, Q ]};
key <AB03> {[ j, J ]};
key <AB04> {[ k, K ]};
key <AB05> {[ x, X ]};
key <AB06> {[ b, B ]};
key <AB07> {[ m, M, mu ]};
key <AB08> {[ w, W ]};
key <AB09> {[ v, V ]};
key <AB10> {[ z, Z ]};
key <SPCE> {[ space, space, nobreakspace ]};
include "level3(ralt_switch)"
};
partial
xkb_symbols "fr-legacy" {
include "ca(fr)"
name[Group1] = "French (Canada, legacy)";
key <TLDE> {[ degree, degree, notsign ]};
key <AE01> {[ 1, exclam, onesuperior ]};
key <AE03> {[ 3, numbersign, threesuperior ]};
key <AE04> {[ 4, dollar, onequarter ]};
key <AE05> {[ 5, percent, onehalf ]};
key <AE06> {[ 6, question, threequarters ]};
key <AE07> {[ 7, ampersand, braceleft ]};
key <AE08> {[ 8, asterisk, bracketleft ]};
key <AE09> {[ 9, parenleft, bracketright, plusminus ]};
key <AE10> {[ 0, parenright, braceright ]};
key <AE11> {[ minus, underscore, bar, questiondown]};
key <AE12> {[ equal, plus, dead_cedilla ]};
key <AD04> {[ r, R, paragraph, registered ]};
key <AD06> {[ y, Y, yen ]};
key <AD09> {[ o, O, oslash, Oslash ]};
key <AD10> {[ p, P, thorn, THORN ]};
key <AD11> {[dead_circumflex, dead_circumflex, degree ]};
key <AD12> {[ ccedilla, Ccedilla, dead_tilde, dead_diaeresis ]};
key <AC01> {[ a, A, ae, AE ]};
key <AC02> {[ s, S, ssharp, section ]};
key <AC03> {[ d, D, eth, ETH ]};
key <AC04> {[ f, F, ordfeminine ]};
key <AC10> {[ semicolon, colon, dead_acute, dead_acute ]};
key <AC11> {[ egrave, Egrave ]};
key <BKSL> {[ agrave, Agrave, dead_grave ]};
key <LSGT> {[ ugrave, Ugrave, backslash, bar ]};
key <AB01> {[ z, Z, guillemotleft ]};
key <AB02> {[ x, X, guillemotright]};
key <AB03> {[ c, C, cent, copyright ]};
key <AB07> {[ m, M, mu, masculine ]};
key <AB08> {[ comma, apostrophe, less ]};
key <AB09> {[ period, period, greater ]};
key <AB10> {[ eacute, Eacute, slash ]};
};
// Inuktitut keyboard layout, by Pablo Saratxaga <pablo@mandrakesoft.com>.
alphanumeric_keys
xkb_symbols "ike" {
name[Group1]= "Inuktitut";
key <TLDE> {[ U157b, U1575 ]};
key <AE01> {[ U1595, 1 ]};
key <AE02> {[ U1449, 2 ]};
key <AE03> {[ U1550, 3 ]};
key <AE04> {[ U1483, 4 ]};
key <AE05> {[ U1466, 5 ]};
key <AE06> {[ U1585, 6 ]};
key <AE07> {[ U14bb, 7 ]};
key <AE08> {[ U14d0, 8 ]};
key <AE09> {[ U14ea, 9 ]};
key <AE10> {[ U153e, 0 ]};
key <AE11> {[ minus, underscore]};
key <AE12> {[ U155d, equal ]};
key <AD01> {[ U158f, U148b ]};
key <AD02> {[ U1403, U1431 ]};
key <AD03> {[ U157f, U1546 ]};
key <AD04> {[ U146d, U1596 ]};
key <AD05> {[ U144e, U1671 ]};
key <AD06> {[ U14ef, U1673 ]};
key <AD07> {[ U14a5, U1675 ]};
key <AD08> {[ U14c2, U15a4 ]};
key <AD09> {[ U14d5, U15a0 ]};
key <AD10> {[ U1528, U15a6 ]};
key <AD11> {[ U14a1, U1505 ]};
key <AD12> {[dead_abovedot,U141e]};
key <AC01> {[ U1591, U148d ]};
key <AC02> {[ U1405, U1433 ]};
key <AC03> {[ U1581, U1548 ]};
key <AC04> {[ U146f, U1555 ]};
key <AC05> {[ U1450, parenleft]};
key <AC06> {[ U14f1, parenright]};
key <AC07> {[ U14a7, U152a ]};
key <AC08> {[ U14c4, U1557 ]};
key <AC09> {[ U14d7, U15a2 ]};
key <AC10> {[ semicolon, colon ]};
key <AC11> {[apostrophe,quotedbl]};
key <BKSL> {[ backslash, bar ]};
key <LSGT> {[ U1579, U1577 ]};
key <AB01> {[ U1593, U1490 ]};
key <AB02> {[ U140a, U1438 ]};
key <AB03> {[ U1583, U154b ]};
key <AB04> {[ U1472, question ]};
key <AB05> {[ U1455, U157c ]};
key <AB06> {[ U14f4, U14c7 ]};
key <AB07> {[ U14aa, U14da ]};
key <AB08> {[ comma, less ]};
key <AB09> {[ period, greater ]};
key <AB10> {[ U152d, U1559 ]};
};
partial
xkb_symbols "multix" {
name[Group1] = "Canadian (CSA)";
key.type[group1]="EIGHT_LEVEL";
key <TLDE> {[ slash, backslash, bar, NoSymbol, NoSymbol, hyphen ]};
key <AE01> {[ 1, exclam, plusminus, NoSymbol, onesuperior, exclamdown ]};
key <AE02> {[ 2, at, at, NoSymbol, twosuperior, NoSymbol ]};
key <AE03> {[ 3, numbersign, sterling, NoSymbol, threesuperior, sterling ]};
key <AE04> {[ 4, dollar, currency, NoSymbol, onequarter, EuroSign ]};
key <AE05> {[ 5, percent, NoSymbol, NoSymbol, onehalf, threeeighths ]};
key <AE06> {[ 6, question, NoSymbol, NoSymbol, threequarters, fiveeighths ]};
key <AE07> {[ 7, ampersand, braceleft, NoSymbol, NoSymbol, seveneighths ]};
key <AE08> {[ 8, asterisk, braceright, NoSymbol, NoSymbol, trademark ]};
key <AE09> {[ 9, parenleft, bracketleft, NoSymbol, NoSymbol, plusminus ]};
key <AE10> {[ 0, parenright, bracketright, NoSymbol ]};
key <AE11> {[ minus, underscore, onehalf, NoSymbol, NoSymbol, questiondown ]};
key <AE12> {[ equal, plus, notsign, NoSymbol, dead_cedilla, dead_ogonek ]};
key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";
key <AD01> {[ q, Q, NoSymbol, NoSymbol, NoSymbol, Greek_OMEGA ]};
key <AD02> {[ w, W, NoSymbol, NoSymbol, lstroke, Lstroke ]};
key <AD03> {[ e, E, EuroSign, NoSymbol, oe, OE ]};
key <AD04> {[ r, R, NoSymbol, NoSymbol, paragraph, registered ]};
key <AD05> {[ t, T, NoSymbol, NoSymbol, tslash, Tslash ]};
key <AD06> {[ y, Y, NoSymbol, NoSymbol, leftarrow, yen ]};
key <AD07> {[ u, U, NoSymbol, NoSymbol, downarrow, uparrow ]};
key <AD08> {[ i, I, NoSymbol, NoSymbol, rightarrow, idotless ]};
key <AD09> {[ o, O, section, NoSymbol, oslash, Oslash ]};
key <AD10> {[ p, P, paragraph, NoSymbol, thorn, THORN ]};
key.type[group1]="EIGHT_LEVEL";
key <AD11> {[dead_circumflex, dead_diaeresis, dead_grave, NoSymbol, NoSymbol, dead_abovering ]};
key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";
key <AD12> {[ ccedilla, Ccedilla, asciitilde, NoSymbol, dead_tilde, dead_macron ]};
key <AC01> {[ a, A, NoSymbol, NoSymbol, ae, AE ]};
key <AC02> {[ s, S, NoSymbol, NoSymbol, ssharp, section ]};
key <AC03> {[ d, D, NoSymbol, NoSymbol, eth, ETH ]};
key <AC04> {[ f, F, NoSymbol, NoSymbol, NoSymbol, ordfeminine ]};
key <AC05> {[ g, G, NoSymbol, NoSymbol, eng, ENG ]};
key <AC06> {[ h, H, NoSymbol, NoSymbol, hstroke, Hstroke ]};
key <AC07> {[ j, J, NoSymbol, NoSymbol, U0133, U0132 ]}; // ij IJ
key <AC08> {[ k, K, NoSymbol, NoSymbol, kra, NoSymbol ]};
key <AC09> {[ l, L, NoSymbol, NoSymbol, U0140, U013F ]}; // ŀ Ŀ
key.type[group1]="EIGHT_LEVEL";
key <AC10> {[ semicolon, colon, degree, NoSymbol, dead_acute, dead_doubleacute ]};
key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";
key <AC11> {[ egrave, Egrave, braceleft, NoSymbol, NoSymbol, dead_caron ]};
key <BKSL> {[ agrave, Agrave, braceright, NoSymbol, NoSymbol, dead_breve ]};
key <LSGT> {[ ugrave, Ugrave, degree, NoSymbol, NoSymbol, brokenbar ]};
key <AB01> {[ z, Z, guillemotleft, NoSymbol ]};
key <AB02> {[ x, X, guillemotright, NoSymbol ]};
key <AB03> {[ c, C, NoSymbol, NoSymbol, cent, copyright ]};
key <AB04> {[ v, V, NoSymbol, NoSymbol, leftdoublequotemark, leftsinglequotemark ]};
key <AB05> {[ b, B, NoSymbol, NoSymbol, rightdoublequotemark, rightsinglequotemark ]};
key <AB06> {[ n, N, NoSymbol, NoSymbol, U0149, U266A ]}; // ʼn ♪
key <AB07> {[ m, M, mu, NoSymbol, mu, masculine ]};
key.type[group1]="EIGHT_LEVEL";
key <AB08> {[ comma, apostrophe, less, NoSymbol, Greek_horizbar, multiply ]};
key <AB09> {[ period, quotedbl, greater, NoSymbol, periodcentered, division ]};
key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";
key <AB10> {[ eacute, Eacute, dead_acute, NoSymbol, NoSymbol, dead_abovedot ]};
include "nbsp(level3)"
include "level3(ralt_switch)"
include "level5(rctrl_switch)"
};
// OLPC Section
xkb_symbols "olpc" {
include "ca(fr)"
key <AE02> {[ 2, quotedbl, ograve, Ograve ]};
key <AE03> {[ 3, slash, at, none ]};
key <AD03> {[ e, E, EuroSign, none ]};
key <AB09> {[ period, period, U2010, none ]}; // HYPHEN
key <I219> {[ guillemotleft, guillemotright, degree, none ]};
};
partial alphanumeric_keys
xkb_symbols "eng" {
include "us(basic)"
name[Group1] = "English (Canada)";
key <LSGT> {[ backslash, bar, none, none ]};
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "kut" {
// Ejective U+0313 and acute accents are taken from shs layout.
include "ca(shs)"
name[Group1]= "Kutenai";
key <AD05> {[ t, T, U01C2, U01C2 ]}; // alveolar click
key <AB03> {[ c, C, cent, cent ]};
key <AB09> {[ period, greater, periodcentered ]};
key <AB10> {[ slash, question, U0294 ]}; // glottal stop
key <AC10> {[ semicolon, colon, U02BE, U02BE ]}; // MODIFIER LETTER RIGHT HALF RING
key <AC11> {[ apostrophe, quotedbl, U0315, U0315 ]}; // COMBINING COMMA ABOVE RIGHT
};
// Secwepemctsin keyboard for X11
// written by Neskie Manuel <neskiem@gmail.com>
partial alphanumeric_keys
xkb_symbols "shs" {
include "us"
name[Group1]= "Secwepemctsin";
// Using a "dead key" to get a COMBINING COMMA ABOVE
// for ejectives on q, l, t, s, m, g, k, p, w, y, r.
// The Compose key is used for the other acutes and grave.
key <AB08> {[ comma, less, U0313 ]};
key <AC01> {[ a, A, aacute, Aacute ]};
key <AD03> {[ e, E, eacute, Eacute ]};
key <AD07> {[ u, U, uacute, Uacute ]};
key <AD08> {[ i, I, iacute, Iacute ]};
key <AD09> {[ o, O, oacute, Oacute ]};
include "level3(ralt_switch)"
include "compose(rctrl)"
};
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/ca(sun_type6)"
};

108
nixos/xkb/symbols/capslock Normal file
View File

@@ -0,0 +1,108 @@
default hidden partial modifier_keys
xkb_symbols "capslock" {
replace key <CAPS> { [ Caps_Lock ], type[group1] = "ONE_LEVEL" };
modifier_map Lock { Caps_Lock };
};
hidden partial modifier_keys
xkb_symbols "shiftlock" {
replace key <CAPS> { [ Shift_Lock ], type[group1] = "ONE_LEVEL" };
modifier_map Shift { Shift_Lock };
};
hidden partial modifier_keys
xkb_symbols "swapescape" {
key <CAPS> { [ Escape ], type[group1] = "ONE_LEVEL" };
key <ESC> { [ Caps_Lock ] };
};
hidden partial modifier_keys
xkb_symbols "escape" {
key <CAPS> { [ Escape ], type[group1] = "ONE_LEVEL" };
};
hidden partial modifier_keys
xkb_symbols "escape_shifted_capslock" {
key <CAPS> {
type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Escape, Caps_Lock ],
actions[Group1] = [ NoAction(), LockMods(modifiers = Lock) ]
};
};
hidden partial modifier_keys
xkb_symbols "escape_shifted_compose" {
key <CAPS> {
type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Escape, Multi_key ],
actions[Group1] = [ NoAction(), NoAction() ]
};
};
hidden partial modifier_keys
xkb_symbols "backspace" {
key <CAPS> { [ BackSpace ], type[group1] = "ONE_LEVEL" };
};
hidden partial modifier_keys
xkb_symbols "super" {
key <CAPS> { [ Super_L ], type[group1] = "ONE_LEVEL" };
modifier_map Mod4 { <CAPS> };
};
hidden partial modifier_keys
xkb_symbols "hyper" {
key <CAPS> { [ Hyper_L ], type[group1] = "ONE_LEVEL" };
modifier_map Mod4 { <CAPS> };
};
hidden partial modifier_keys
xkb_symbols "menu" {
key <CAPS> { [ Menu ], type[group1] = "ONE_LEVEL" };
};
hidden partial modifier_keys
xkb_symbols "numlock" {
key <CAPS> { [ Num_Lock ], type[group1] = "ONE_LEVEL" };
};
// This changes the <CAPS> key to become a Control modifier,
// but it will still produce the Caps_Lock keysym; this is
// useful for apps that need to distinguish it from usual
// Control_L and Control_R.
hidden partial modifier_keys
xkb_symbols "ctrl_modifier" {
replace key <CAPS> {
type[Group1] = "ONE_LEVEL",
symbols[Group1] = [ Caps_Lock ],
actions[Group1] = [ SetMods(modifiers=Control) ]
};
modifier_map Control { <CAPS> };
};
hidden partial modifier_keys
xkb_symbols "none" {
key <CAPS> { [ VoidSymbol ], type[group1] = "ONE_LEVEL" };
};
// For layouts having digits on the 2nd level on the digits row and key type
// FOUR_LEVEL (e.g. fr(basic) and be(basic)), this makes CapsLock give the digits
// by changing their key type to FOUR_LEVEL_SEMIALPHABETIC. Note that this has the
// drawback that the uppercases À, È, É and Ç are no longer available, as those
// layouts rely on internal capitalization rules for those letters.
hidden partial alphanumeric_keys
xkb_symbols "digits_row" {
key.type[group1] = "FOUR_LEVEL_SEMIALPHABETIC";
// No symbol defined: we just want to change the key type
key <AE01> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
key <AE02> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
key <AE03> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
key <AE04> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
key <AE05> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
key <AE06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
key <AE07> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
key <AE08> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
key <AE09> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
key <AE10> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
};

65
nixos/xkb/symbols/cd Normal file
View File

@@ -0,0 +1,65 @@
// Keyboard layout for Congo.
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "French (Democratic Republic of the Congo)";
key.type[Group1] = "FOUR_LEVEL";
key <TLDE> {[ grave, asciitilde, U0303 ]}; // combining tilde
key <AE01> {[ ampersand, 1, numbersign ]};
key <AE02> {[ U0301, 2, at ]}; // combining acute
key <AE03> {[ U0300, 3, guillemotleft ]}; // combining grave
key <AE04> {[ parenleft, 4, bracketleft ]};
key <AE05> {[ braceleft, 5, less ]};
key <AE06> {[braceright, 6, greater ]};
key <AE07> {[parenright, 7, bracketright ]};
key <AE08> {[ U0302, 8, guillemotright ]}; // combining circumflex
key <AE09> {[ U030C, 9, U030D ]}; // combining caron, combining verical line above
key <AE10> {[ U0308, 0, at ]}; // combining diaeresis
key <AE11> {[ minus, underscore, percent, degree ]};
key <AE12> {[ equal, plus, multiply, division ]};
key <AD01> {[ a, A, ae, AE ]};
key <AD02> {[ z, Z ]};
key <AD03> {[ e, E, oe, OE ]};
key <AD04> {[ r, R ]};
key <AD05> {[ t, T ]};
key <AD06> {[ y, Y ]};
key <AD07> {[ u, U, U0289, U0244 ]}; // ʉ Ʉ
key <AD08> {[ i, I, U0268, U0197 ]}; // ɨ Ɨ
key <AD09> {[ o, O, oslash, Oslash ]};
key <AD10> {[ p, P ]};
key <AD11> {[ U025B, U0190, asciicircum ]}; // ɛ Ɛ
key <AD12> {[ asterisk, asciicircum, dollar ]};
key <AC01> {[ q, Q ]};
key <AC02> {[ s, S ]};
key <AC03> {[ d, D ]};
key <AC04> {[ f, F ]};
key <AC05> {[ g, G ]};
key <AC06> {[ h, H ]};
key <AC07> {[ j, J ]};
key <AC08> {[ k, K ]};
key <AC09> {[ l, L ]};
key <AC10> {[ m, M ]};
key <AC11> {[ U0254, U0186 ]}; // ɔ Ɔ
key <BKSL> {[ quotedbl, backslash, bar ]};
key <LSGT> {[ backslash, bar ]};
key <AB01> {[ w, W ]};
key <AB02> {[ x, X ]};
key <AB03> {[ c, C ]};
key <AB04> {[ v, V ]};
key <AB05> {[ b, B ]};
key <AB06> {[ n, N, eng, ENG ]};
key <AB07> {[ comma, question, U0327 ]}; // combining cedilla
key <AB08> {[ semicolon, period ]};
key <AB09> {[ colon, slash ]};
key <AB10> {[ exclam, apostrophe, U2019 ]}; // single comma quotation mark
key <SPCE> {[ space, space, nobreakspace, U202F ]}; // narrow no-break space
include "level3(ralt_switch)"
};

184
nixos/xkb/symbols/ch Normal file
View File

@@ -0,0 +1,184 @@
// Keyboard layouts for Switzerland.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin"
name[Group1]= "German (Switzerland)";
key <TLDE> {[ section, degree ]};
key <AE01> {[ 1, plus, bar, exclamdown ]};
key <AE02> {[ 2, quotedbl, at, oneeighth ]};
key <AE03> {[ 3, asterisk, numbersign ]};
key <AE04> {[ 4, ccedilla ]};
key <AE05> {[ 5, percent ]};
key <AE06> {[ 6, ampersand, notsign ]};
key <AE07> {[ 7, slash, bar ]};
key <AE08> {[ 8, parenleft, cent ]};
key <AE09> {[ 9, parenright ]};
key <AE10> {[ 0, equal ]};
key <AE11> {[ apostrophe, question, dead_acute ]};
key <AE12> {[ dead_circumflex, dead_grave, dead_tilde ]};
key <AD03> {[ e, E, EuroSign ]};
key <AD06> {[ z, Z ]};
key <AD09> {[ o, O, oe, OE ]};
key <AD11> {[ udiaeresis, egrave, bracketleft ]};
key <AD12> {[ dead_diaeresis, exclam, bracketright ]};
key <AC10> {[ odiaeresis, eacute ]};
key <AC11> {[ adiaeresis, agrave, braceleft ]};
key <BKSL> {[ dollar, sterling, braceright ]};
key <LSGT> {[ less, greater, backslash, brokenbar ]};
key <AB01> {[ y, Y ]};
key <AB08> {[ comma, semicolon ]};
key <AB09> {[ period, colon ]};
key <AB10> {[ minus, underscore ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "legacy" {
include "ch(basic)"
name[Group1]= "German (Switzerland, legacy)";
key <AE07> {[ 7, slash, brokenbar ]};
};
partial alphanumeric_keys
xkb_symbols "de" {
include "ch(basic)"
};
partial alphanumeric_keys
xkb_symbols "de_nodeadkeys" {
include "ch(basic)"
name[Group1]= "German (Switzerland, no dead keys)";
key <AE11> {[ apostrophe, question, acute ]};
key <AE12> {[ asciicircum, grave, asciitilde ]};
key <AD12> {[ diaeresis, exclam, bracketright ]};
};
partial alphanumeric_keys
xkb_symbols "fr" {
include "ch(basic)"
name[Group1]= "French (Switzerland)";
override key <AD11> {[ egrave, udiaeresis, bracketleft ]};
override key <AC10> {[ eacute, odiaeresis ]};
override key <AC11> {[ agrave, adiaeresis, braceleft ]};
};
partial alphanumeric_keys
xkb_symbols "fr_nodeadkeys" {
include "ch(fr)"
name[Group1]= "French (Switzerland, no dead keys)";
key <AE11> {[ apostrophe, question, acute ]};
key <AE12> {[ asciicircum, grave, asciitilde ]};
key <AD12> {[ diaeresis, exclam, bracketright ]};
};
// Layout for a Swiss German Apple Extended Keyboard II.
// Original author: Andreas Tobler <a.tobler@schweiz.ch>, 2000, 2003.
partial alphanumeric_keys
xkb_symbols "de_mac" {
name[Group1]= "German (Switzerland, Macintosh)";
key <TLDE> {[section, degree, UFB01, permille ]}; // fi
key <AE01> {[ 1, plus, plusminus, infinity ]};
key <AE02> {[ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ]};
key <AE03> {[ 3, asterisk, numbersign, less ]};
key <AE04> {[ 4, ccedilla, Ccedilla, slash ]};
key <AE05> {[ 5, percent, bracketleft ]};
key <AE06> {[ 6, ampersand, bracketright ]};
key <AE07> {[ 7, slash, bar, backslash ]};
key <AE08> {[ 8, parenleft, braceleft, Ograve ]};
key <AE09> {[ 9, parenright, braceright, Ocircumflex ]};
key <AE10> {[ 0, equal, notequal, Uacute ]};
key <AE11> {[ apostrophe, question, questiondown ]};
key <AE12> {[ dead_circumflex, dead_grave, dead_acute, asciicircum ]};
key <AD01> {[ q, Q, oe, OE ]};
key <AD02> {[ w, W, Greek_SIGMA, Aacute ]};
key <AD03> {[ e, E, EuroSign, Ediaeresis ]};
key <AD04> {[ r, R, registered, Egrave ]};
key <AD05> {[ t, T, dagger, Icircumflex ]};
key <AD06> {[ z, Z, Greek_OMEGA, Iacute ]};
key <AD07> {[ u, U, degree, Ugrave ]};
key <AD08> {[ i, I, exclamdown, idotless ]};
key <AD09> {[ o, O, oslash, Oslash ]};
key <AD10> {[ p, P, Greek_pi, Greek_PI ]};
key <AD11> {[ udiaeresis, egrave, section, ydiaeresis ]};
key <AD12> {[ dead_diaeresis, exclam, grave, apostrophe ]};
key <AC01> {[ a, A, aring, Aring ]};
key <AC02> {[ s, S, ssharp, U1E9E ]}; // ẞ -- ought to be: ligature fl -- tobler
key <AC03> {[ d, D, Greek_sigma, partialderivative ]};
key <AC04> {[ f, F, function, doubledagger ]};
key <AC05> {[ g, G, at, comma ]};
key <AC06> {[ h, H, ordfeminine, periodcentered ]};
key <AC07> {[ j, J, masculine, eth ]};
key <AC08> {[ k, K, Greek_DELTA, macron ]};
key <AC09> {[ l, L, notsign, caret ]};
key <AC10> {[ odiaeresis, eacute, cent, breve ]};
key <AC11> {[ adiaeresis, agrave, ae, AE ]};
key <BKSL> {[ dollar, sterling, paragraph, enfilledcircbullet ]};
key <LSGT> {[ less, greater, lessthanequal, greaterthanequal ]};
key <AB01> {[ y, Y, yen, Ydiaeresis ]};
key <AB02> {[ x, X, similarequal, trademark ]};
key <AB03> {[ c, C, copyright ]};
key <AB04> {[ v, V, radical, diamond ]};
key <AB05> {[ b, B, integral ]};
key <AB06> {[ n, N, dead_tilde, enopencircbullet ]};
// to be fixed -- tobler
key <AB07> {[ m, M, mu, dead_abovering ]};
// not sure -- tobler
key <AB08> {[ comma, semicolon, guillemotleft, guillemotright ]};
key <AB09> {[ period, colon, ellipsis, division ]};
key <AB10> {[ minus, underscore, hyphen, emdash ]};
key <SPCE> {[ space, nobreakspace, nobreakspace ]};
include "kpdl(comma)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "fr_mac" {
include "ch(de_mac)"
name[Group1]= "French (Switzerland, Macintosh)";
override key <AD11> {[ egrave, udiaeresis, bracketleft ]};
override key <AC10> {[ eacute, odiaeresis ]};
override key <AC11> {[ agrave, adiaeresis, braceleft ]};
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6_de" {
include "sun_vndr/ch(sun_type6_de)"
};
partial alphanumeric_keys
xkb_symbols "sun_type6_fr" {
include "sun_vndr/ch(sun_type6_fr)"
};

364
nixos/xkb/symbols/cm Normal file
View File

@@ -0,0 +1,364 @@
// Keyboard layouts for Cameroon.
// Cameroon is officially a bilingual country, using French and English, but there are over 270 minority languages.
// The XKB versions of the French and English keyboards were developed by Matthew Lee, Jenni Beadle, and Bruce Cox
// of SIL Cameroon in association with Going Komputya, Uwe Yung of the Goethe Institute, Yaoundé, and Centre ANACLAC.
// Cameroon QWERTY and Cameroon AZERTY are based largely on SIL Cameroon's Keyman and Microsoft keyboards of the
// same style already in wide use. These keyboards are designed to allow the user to type any of Cameroon's 270+
// languages and dialects that use the approved orthography. This Approved Orthography was adopted in 1979 by the
// National Committee for the Unification and Harmonisation of Alphabets of Camerooninan Languages.
default partial alphanumeric_keys
xkb_symbols "basic"
{
include "us(basic)"
name[Group1]="English (Cameroon)";
};
partial alphanumeric_keys
xkb_symbols "french"
{
include "fr(basic)"
name[Group1]="French (Cameroon)";
};
// == Cameroon AZERTY ==
// Cameroon AZERTY uses the French AZERTY layout, as French keyboards are widely used here. While this keyboard is designed for
// Cameroonian orthography, it still is possible (but not recommended) to type French with minimal discomfort using this keyboard.
// Cameroon AZERTY uses the "!" (exclamation) key as the "Cameroon" key. Pressing this key before another key allows you to access
// the special letters and diacritics needed in Cameroonian orthography.
// For example, press "!" then "a" and get "ɛ" (small epsilon). "!" then "Shift" + "a" (A) will get an "Ɛ" (capital epsilon).
// Press the "!" key twice to get a "!".
// If you prefer, you can hold the AltGr key to access the same letters, but we have found this to be much more awkward in practice.
// If you really don't like our Cameroon key, simply comment out "include "cm(exclamation_switch)"" and the exclamation key will
// return to normal.
// All Diacritics (with the exception of French Trema and Circumflex) must be typed (in order of stacking) after the letter.
partial alphanumeric_keys
xkb_symbols "azerty"
{
include "cm(basic)"
name[Group1] = "Cameroon (AZERTY, intl.)";
key <AB01> { [ w, W, U1E85, U1E84 ] }; // SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS
key <AB02> { [ x, X, U2039, U203A ] }; // SMALL LETTER X, CAPITAL LETTER X, SINGLE LEFT-POINTING ANGLE QUOTATION MARK, SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
key <AB03> { [ c, C, U0327, copyright ] }; // SMALL LETTER C, CAPITAL LETTER C, COMBINING CEDILLA, COPYRIGHT SIGN
key <AB04> { [ v, V, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO)
key <AB05> { [ b, B, U0253, U0181 ] }; // SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK
key <AB06> { [ n, N, U014B, U014A ] }; // SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG
key <AB07> { [ U002C, U003F, NoSymbol, U00D7 ] }; // COMMA, QUESTION MARK, , MULTIPLY
key <AB08> { [ semicolon, period, dead_acute, dead_grave ] }; // SEMICOLON, PERIOD
key <AB09> { [ colon, slash, U0323 ] }; // COLON, SLASH, COMBINING DOT BELOW
key <AB10> { [ exclam, U00A7 ] }; // EXCLAMATION MARK, SECTION SIGN
key <AC01> { [ q, Q, U2014, U2013 ] }; // SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH
key <AC02> { [ s, S, U201C, U201D ] }; // SMALL LETTER S, CAPITAL LETTER S, LEFT DOUBLE QUOTES, RIGHT DOUBLE QUOTES
key <AC03> { [ d, D, U0257, U018A ] }; // SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK
key <AC04> { [ f, F, U00E6, U00C6 ] }; // SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE
key <AC05> { [ g, G, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO)
key <AC06> { [ h, H, U0251, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA
key <AC07> { [ j, J, leftarrow, U2122 ] }; //SMALL LETTER J, CAPITAL LETTER J, LEFT ARROW, TRADE MARK SIGN
key <AC08> { [ k, K, downarrow, uparrow ] }; // SMALL LETTER K, CAPITAL LETTER K, DOWN ARROW, UP ARROW
key <AC09> { [ l, L, rightarrow, U00A3 ] }; // SMALL LETTER L, CAPITAL LETTER L, RIGHT ARROW, POUND STERLING
key <AC10> { [ m, M, U00F9, U00B5 ] }; // SMALL LETTER M, CAPITAL LETTER M, SMALL LETTER U WITH GRAVE, MICRO SYMBOL
key <AC11> { [ U0300, U0302, U1DC5, U1DC4 ] }; // COMBINING LOW TONE, COMBINING FALLING TONE, COMBINING LOW-MID TONE, COMBINING MID-HIGH TONE
key <AD01> { [ a, A, U025B, U0190 ] }; // SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E
key <AD02> { [ z, Z, U2026, U2020 ] }; // SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER
key <AD03> { [ e, E, schwa, SCHWA ] };
key <AD04> { [ r, R, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN
key <AD05> { [ t, T, U0153, U0152 ] }; // SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE
key <AD06> { [ y, Y, U01B4, U01B3 ] }; // SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK
key <AD07> { [ u, U, U0289, U0244 ] }; // SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR
key <AD08> { [ i, I, U0268, U0197 ] }; // SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR
key <AD09> { [ o, O, U0254, U0186 ] }; // SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O
key <AD10> { [ p, P, U00F8, U00D8 ] }; // SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR
key <AD11> { [ U0301, U030C, dead_circumflex, dead_diaeresis ] }; // COMBINING HIGH TONE, COMBINING RISING TONE, DEAD CIRCUMFLEX, DEAD DIAERESIS
key <AD12> { [ U0330, U0303, U0304, U030D ] }; // COMBINING TILDE (NASAL) BELOW, COMBINING TILDE (NASAL), COMBINING MID TONE, COMBINING VERTICAL LINE ABOVE
key <AE01> { [ U0026, KP_1, U00B9, U2018 ] }; // AMPERSAND, 1, SUPERSCRIPT 1, LEFT SINGLE QUOTE
key <AE02> { [ eacute, KP_2, asciitilde, U2019 ] }; // SMALL LETTER E WITH ACUTE, 2, TILDE, RIGHT SINGLE QUOTE
key <AE03> { [ U0022, KP_3, U0025 ] }; // QUOTATION MARK, 3, PERCENT SIGN
key <AE04> { [ U0027, KP_4, U007B ] }; // APOSTROPHE, 4, LEFT CURLY BRACKET
key <AE05> { [ U0028, KP_5, U005B, numbersign ] }; // LEFT PARENTHESIS, 5, LEFT SQUARE BRACKET, NUMBER SIGN
key <AE06> { [ U002D, KP_6, U007C ] }; // HYPHEN/MINUS, 6, BAR
key <AE07> { [ U00E8, KP_7, U0300 ] }; // SMALL LETTER E WITH GRAVE, 7, COMBINING GRAVE
key <AE08> { [ underscore, KP_8, backslash, U20D6 ] }; // UNDERSCORE, 8, BACKSLASH, COMBINING LEFT ARROW ABOVE
key <AE09> { [ ccedilla, KP_9, U005E] }; // SMALL LETTER C WITH CEDILLA, 9, CIRCUMFLEX
key <AE10> { [ U00E0, KP_0, at, U20D7 ] }; // SMALL LETTER A WITH GRAVE, 0, @, COMBINING RIGHT ARROW ABOVE
key <AE11> { [ U0029, U00B0, U005D ] }; // RIGHT PARENTHESIS, DEGREE, RIGHT SQUARE BRACKET
key <AE12> { [ U003D, U002B, U007D, U00B1 ] }; // EQUAL SIGN, PLUS SIGN, RIGHT CURLY BRACKET, PLUS-MINUS SIGN
key <BKSL> { [ U1DC6, U1DC7, asterisk, U00A4 ] }; // COMBINING MID-LOW, COMBINING HIGH-MID, MULTIPLY, CURRENCY SIGN
key <LSGT> { [ U003C, U003E, U00AB, U00BB ] }; // LESS THAN, GREATER THAN, LEFT GUILLEMET, RIGHT GUILLEMET
key <TLDE> { [ U0024, U20AC, U00B2, U00B3 ] }; // DOLLAR, EURO, SUPERSCRIPT 2, SUPERSCRIPT 3
include "cm(exclamation_switch)"
include "level3(ralt_switch)"
};
// == Cameroon QWERTY ==
// Cameroon QWERTY uses the US QWERTY layout, as US keyboards are also widely used here. While this keyboard is designed for
// Cameroonian orthography, it is possible (but not recommended) to type English with minimal discomfort using this keyboard.
// Cameroon QWERTY uses the ";" (semicolon) key as the "Cameroon" key. Pressing this key before another key allows you to access
// the special letters and diacritics needed in Cameroonian orthography.
// For example, press ";" then "a" and get "ɛ" (small epsilon). ";" then "Shift" + "a" (A) will get an "Ɛ" (capital epsilon).
// Press ";" twice to get a ";", or press Shift + ; (:) twice to get a ":" (colon).
// If you prefer, you can hold the AltGr key to access the same letters, but we have found this to be much more awkward in practice.
// If you really don't like our Cameroon key, simply comment out "include "cm(semicolon_switch)"" and the semicolon key will return
// to normal.
// All Diacritics must be typed (in order of stacking) after the letter.
partial alphanumeric_keys
xkb_symbols "qwerty"
{
include "cm(basic)"
name[Group1] = "Cameroon Multilingual (QWERTY, intl.)";
key <AB01> { [ z, Z, U2026, U2020 ] }; // SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER
key <AB02> { [ x, X ] }; // SMALL LETTER X, CAPITAL LETTER X
key <AB03> { [ c, C, U0327, U00A9 ] }; // SMALL LETTER C, CAPITAL LETTER C, CEDILLA, COPYRIGHT
key <AB04> { [ v, V, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO)
key <AB05> { [ b, B, U0253, U0181 ] }; // SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK
key <AB06> { [ n, N, U014B, U014A ] }; // SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG
key <AB07> { [ m, M, NoSymbol, U2122 ] }; // SMALL LETTER M, CAPITAL LETTER M, , TRADEMARK SIGN
key <AB08> { [ U002C, U003C, U2039, U00AB ] }; // COMMA, LESS THAN SIGN, LEFT SINGLE GUILLEMET, LEFT DOUBLE GUILLEMET
key <AB09> { [ U002E, U003E, U203A, U00BB ] }; // PERIOD, GREATER THAN SIGN, RIGHT SINGLE GUILLEMET, RIGHT DOUBLE GUILLEMET
key <AB10> { [ U002F, U003F, U00F7 ] }; // SLASH, QUESTION MARK, DIVISION SIGN
key <AC01> { [ a, A, U025B, U0190 ] }; // SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E
key <AC02> { [ s, S ] }; // SMALL LETTER S, CAPITAL LETTER S
key <AC03> { [ d, D, U0257, U018A ] }; // SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK
key <AC04> { [ f, F, U00E6, U00C6 ] }; // SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE
key <AC05> { [ g, G, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO)
key <AC06> { [ h, H, U0251, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA
key <AC07> { [ j, J, U0330, U0323 ] }; // SMALL LETTER J, CAPITAL LETTER J, COMBINING TILDE (NASAL) BELOW, COMBINING DOT BELOW
key <AC08> { [ k, K, U1DC5, U1DC7 ] }; // SMALL LETTER K, CAPITAL LETTER K, COMBINING LOW-MID TONE, COMBINING HIGH-MID
key <AC09> { [ l, L, U1DC6, U1DC4 ] }; // SMALL LETTER L, CAPITAL LETTER L, COMBINING MID-LOW, COMBINING MID-HIGH TONE
key <AC10> { [ U003B, U003A ] }; // SEMICOLON, COLON
key <AC11> { [ U0300, U0302, U0027, U0022 ] }; // COMBINING LOW TONE, COMBINING FALLING TONE, APOSTROPHE, QUOTATION MARK
key <AD01> { [ q, Q, U2014, U2013 ] }; // SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH
key <AD02> { [ w, W, U1E85, U1E84 ] }; // SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS
key <AD03> { [ e, E, schwa, SCHWA ] };
key <AD04> { [ r, R, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN
key <AD05> { [ t, T, U0153, U0152 ] }; // SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE
key <AD06> { [ y, Y, U01B4, U01B3 ] }; // SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK
key <AD07> { [ u, U, U0289, U0244 ] }; // SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR
key <AD08> { [ i, I, U0268, U0197 ] }; // SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR
key <AD09> { [ o, O, U0254, U0186 ] }; // SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O
key <AD10> { [ p, P, U00F8, U00D8 ] }; // SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR
key <AD11> { [ U0301, U030C, U005B, U007B ] }; // COMBINING HIGH TONE, COMBINING RISING TONE, LEFT SQUARE BRACKET, LEFT CURLY BRACKET
key <AD12> { [ U0327, U0308, U005D, U007D ] }; // COMBINING CEDILLA, COMBINING DIAERESIS, RIGHT SQUARE BRACKET, RIGHT CURLY BRACKET
key <AE01> { [ U0031, U0021, U00BC ] }; // 1, EXCLAMATION POINT, ONE QUARTER
key <AE02> { [ U0032, U0040, U00BD ] }; //2, AT SYMBOL, ONE HALF
key <AE03> { [ U0033, U0023, U00BE ] }; // 3, NUMBER SIGN, THREE QUARTERS
key <AE04> { [ U0034, U0024, NoSymbol, U20AC ] }; // 4, DOLLAR, , EURO SIGN
key <AE08> { [ U0038, U002A, NoSymbol, U00D7 ] }; // 8, ASTERISK, , MATH MULTIPLY
key <AE09> { [ U0039, U0028, U2018, U201C ] }; // 9, LEFT PARENTHESIS, LEFT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK
key <AE10> { [ U0030, U0029, U2019, U201D ] }; // 0, RIGHT PARENTHESIS, RIGHT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK
key <AE11> { [ U002D, U005F, U0304 ] }; // MINUS, UNDERSCORE, COMBINING MID TONE, COMBINING MID TONE
key <AE12> { [ U003D, U002B, NoSymbol, U00B1 ] }; // EQUAL, PLUS, , PLUS-MINUS
key <BKSL> { [ U005C, U007C ] }; // BACKSLASH, BAR
key <TLDE> { [ U030D, U0303, U0060, U007E ] }; // COMBINING VERTICAL LINE ABOVE, COMBINING TILDE ABOVE, GRAVE ACCENT, TILDE
include "cm(semicolon_switch)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "dvorak"
{
name[Group1] = "Cameroon (Dvorak, intl.)";
key <AB01> { [ semicolon, colon ] }; // SEMICOLON, COLON
key <AB02> { [ q, Q, U2014, U2013 ] }; // SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH
key <AB03> { [ j, J, U0330, U0323 ] }; // SMALL LETTER J, CAPITAL LETTER J, COMBINING TILDE (NASAL) BELOW, COMBINING DOT BELOW
key <AB04> { [ k, K, U1DC5, U1DC7 ] }; // SMALL LETTER K, CAPITAL LETTER K, COMBINING LOW-MID TONE, COMBINING HIGH-MID
key <AB05> { [ x, X ] }; // SMALL LETTER X, CAPITAL LETTER X
key <AB06> { [ b, B, U0253, U0181 ] }; // SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK
key <AB07> { [ m, M, NoSymbol, U2122 ] }; // SMALL LETTER M, CAPITAL LETTER M, , TRADEMARK SIGN
key <AB08> { [ w, W, U1E85, U1E84 ] }; // SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS
key <AB09> { [ v, V, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO)
key <AB10> { [ z, Z, U2026, U2020 ] }; // SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER
key <AC01> { [ a, A, U025B, U0190 ] }; // SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E
key <AC02> { [ o, O, U0254, U0186 ] }; // SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O
key <AC03> { [ e, E, schwa, SCHWA ] };
key <AC04> { [ u, U, U0289, U0244 ] }; // SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR
key <AC05> { [ i, I, U0268, U0197 ] }; // SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR
key <AC06> { [ d, D, U0257, U018A ] }; // SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK
key <AC07> { [ h, H, U0251, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA
key <AC08> { [ t, T, U0153, U0152 ] }; // SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE
key <AC09> { [ n, N, U014B, U014A ] }; // SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG
key <AC10> { [ s, S ] }; // SMALL LETTER S, CAPITAL LETTER S
key <AC11> { [ minus, underscore, U0304 ] }; // MINUS, UNDERSCORE, COMBINING MID TONE
key <AD01> { [ U0300, U0302, U0027, U0022 ] }; // COMBINING LOW TONE, COMBINING FALLING TONE, APOSTROPHE, QUOTATION MARK
key <AD02> { [ comma, less, U2039, U00AB ] }; // COMMA, LESS THAN SIGN, LEFT SINGLE GUILLEMET, LEFT DOUBLE GUILLEMET
key <AD03> { [ period, greater, U203A, U00BB ] }; // PERIOD, GREATER THAN SIGN, RIGHT SINGLE GUILLEMET, RIGHT DOUBLE GUILLEMET
key <AD04> { [ p, P, U00F8, U00D8 ] }; // SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR
key <AD05> { [ y, Y, U01B4, U01B3 ] }; // SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK
key <AD06> { [ f, F, U00E6, U00C6 ] }; // SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE
key <AD07> { [ g, G, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO)
key <AD08> { [ c, C, U0327, U00A9 ] }; // SMALL LETTER C, CAPITAL LETTER C, CEDILLA, COPYRIGHT
key <AD09> { [ r, R, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN
key <AD10> { [ l, L, U1DC6, U1DC4 ] }; // SMALL LETTER L, CAPITAL LETTER L, COMBINING MID-LOW, COMBINING MID-HIGH TONE
key <AD11> { [ slash, U003F, U00F7, U0294 ] }; // SLASH, QUESTION MARK, DIVISION SIGN, GLOTTAL STOP
key <AD12> { [ equal, plus, NoSymbol, plusminus ] }; // EQUAL, PLUS, , PLUS-MINUS
key <AE01> { [ 1, exclam, U00BC ] }; // 1, EXCLAMATION POINT, ONE QUARTER
key <AE02> { [ 2, at, U00BD ] }; // 2, AT SYMBOL, ONE HALF
key <AE03> { [ 3, numbersign, U00BE ] }; // 3, NUMBER SIGN, THREE QUARTERS
key <AE04> { [ 4, dollar, NoSymbol, U20AC ] }; // 4, DOLLAR, , EURO SIGN
key <AE05> { [ 5, percent ] }; // 5, PERCENT
key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; // 6, CARET, DEAD CIRCUMFLEX, DEAD CIRCUMFLEX
key <AE07> { [ 7, ampersand ] }; // 7, AMPERSAND
key <AE08> { [ 8, asterisk, NoSymbol, multiply ] }; // 8, ASTERISK, , MULTIPLY
key <AE09> { [ 9, parenleft, leftsinglequotemark, leftdoublequotemark ] }; // 9, LEFT PARENTHESIS, LEFT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK
key <AE10> { [ 0, parenright, rightsinglequotemark, rightdoublequotemark ] }; // 0, RIGHT PARENTHESIS, RIGHT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK
key <AE11> { [ U0301, U030C, U005B, U007B ] }; // COMBINING HIGH TONE, COMBINING RISING TONE, LEFT SQUARE BRACKET, LEFT CURLY BRACKET
key <AE12> { [ U0327, dead_diaeresis, U005D, braceright ] }; // COMBINING CEDILLA, DEAD DIAERESIS, RIGHT SQUARE BRACKET, RIGHT CURLY BRACKET
key <BKSL> { [ backslash, bar ] }; // BACKSLASH, BAR
key <TLDE> { [ U030D, U0303, U0060, U007E ] }; // COMBINING VERTICAL LINE ABOVE, COMBINING TILDE ABOVE, GRAVE ACCENT, TILDE
include "cm(semicolon_switch_dvorak)"
include "level3(ralt_switch)"
};
// The following code creates the "Cameroon key" phenomenon.
partial modifier_keys
xkb_symbols "semicolon_switch" {
key <AC10> {[ ISO_Level3_Latch, colon, semicolon, colon ]};
modifier_map Mod5 { ISO_Level3_Latch };
};
partial modifier_keys
xkb_symbols "exclamation_switch" {
key <AB10> {[ ISO_Level3_Latch, U00A7, exclam, U00A7 ]};
modifier_map Mod5 { ISO_Level3_Latch };
};
partial modifier_keys
xkb_symbols "semicolon_switch_dvorak" {
key <AB01> {[ ISO_Level3_Latch, colon, semicolon, colon ]};
modifier_map Mod5 { ISO_Level3_Latch };
};
// The layout below is for the Mmuock alphabet as described in the book
// "The Sound of Mmuock: Orthography (2. ed.)" [ISBN: 978-9956-645-28-1].
// Mmuock is the language of the Mmuock (local: Muòk) people of Western Cameroon.
//
// Author: Tano Fotang <fotang at mmuock dot org>
// Created: 2014-06-24
// Version: 1.2
//
// NOTES:
//
// 1. We use combining diacritical marks to create tone markings. There are 13
// tones that need to be indicated, although the first 5 are usually enough
// to represent the rest in simplified orthography.
//
// 2. When composing Mmuock text, about every fourth symbol is for tone. To
// facilitate easy and fast input, the combining diacritics are placed on
// the home row (AC). To reduce the number of key strokes required, the
// unshifted third level is used. Only 5 of the combining diacritics are
// not on the AC row; they are in the top number row, AE.
//
// 3. Symbols that are used infrequently (`r', `h', `ɛ', `ǝ', etc.) are placed
// in level3. Additionally, the letter eng (`ŋ'), although commonly used,
// is found in level3 because it can alternatively be represented by <ng>.
// (Indeed, the keyman version of keyboard actually replaces <ng> with `ŋ'.)
//
// 4. The unshifted AB10 key (normally assigned to the slash `/') is used as
// level 3 switch/latch since the slash is not used in the ordinary course
// of typing Mmuock text.
//
// 5. The 'Cameroon Multilingual' keyboards that are defined elsewhere, do not
// fit our needs because: (a) they are based on a different alphabet, (b) the
// vast majority of their symbols are not used in Mmuock, and (c) for the few
// symbols that are used in Mmuock, their placings are not egonomic for
// typing Mmuock as the _PRIMARY_ language. The aim of this keyboard is to
// give priority to symbols that are actually used in the Mmuock alphabet.
//
// 6. The following fonts have been found to produce the best results with this
// keyboard:
// Family Accuracy
// DejaVu (except Sans Mono) 9/10
// Linux Libertine 8/10
// Ubuntu (except light) 8/10
// Droid (except sans mono) 7/10
// Gentium, Gentium Alt 6.5/10
// In the terminal emulator, the following font variants have been tested:
// Ubuntu Mono 9/10
// Unifont (Medium) 9/10
// DejaVu Sans Mono 7.5/10
// Droid Sans Mono 6.5/10
// These fonts are all freely available.
//
// ------the layout-----------
//
// ┌─────┐
// │ 2 4 │ 2 = Shift, 4 = Level3 + Shift
// │ 1 3 │ 1 = Normal, 3 = Level3
// └─────┘
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ~ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & | * │ ( │ ) │ _ │ + ̣┃ ⌫ Back- ┃
// AE│ ` ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6  ̂│ 7  ̑│ 8  ̍│ 9  ̓│ 0  ̊│ ¯ - │ = ̋┃ space ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ Q │ W │ E Ǝ │ Š R │ T │ Y │ U Ω │ I Ɛ │ O Φ │ P ∏ │ Ø { │ Σ } ┃ Enter ┃
// AD┃Tab ↹ ┃ q │ w │ e ǝ │ š r │ t │ y │ u ω │ i ɛ │ o φ │ p π │ ø [ │ σ ] ┃ ⏎ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ A │ S │ D │ F │ G │  ̇ H │ J │ K │ L │ Œ : │ " ” │ Æ | ┃ ┃
// AC┃Caps ⇬ ┃ a  ̃│ s  ̄| d ́| f  ̀| g  ̌|  ̣ h │ j  ̆│ k  ̏│ l  ̈│ œ ; │ ' │ æ \ ┃ ┃
// ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ │ Z Dz │ X │ C │ V │ B │ N ŋ │ M │ < « │ > » │ ? ┃ ┃
// AB┃Shift ⇧ │ z dz │ x │ c │ v │ b │ n Ŋ │ m │ , │ . │ / ┃Shift ⇧ ┃
// ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// AA┃Ctrl ┃Meta ┃Alt ┃ Space ┃AltGr ⇮┃Menu ┃Ctrl ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
//
partial alphanumeric_keys
xkb_symbols "mmuock" {
include "us(basic)"
name[Group1]= "Mmuock";
key <TLDE> { [ dead_grave, dead_tilde, grave, asciitilde ] };
key <AE06> { [ 6, asciicircum, U0302 ] }; // tone 10
key <AE07> { [ 7, ampersand, U0311 ] }; // tone 12
key <AE08> { [ 8, asterisk, U030D ] }; // tone 13
key <AE09> { [ 9, parenleft, U0307 ] }; // tone 7
key <AE10> { [ 0, parenright, U030A ] }; // tone 6
key <AE11> { [dead_macron, underscore, minus, endash ] };
key <AE12> { [ equal, plus, U030B, dead_belowdot ] }; // U030B = tone 8
key <AD03> { [ e, E, U01DD, U018E ] }; // U01DD = reversed E
key <AD04> { [ scaron, Scaron, r, R ] };
key <AD07> { [ u, U, Greek_omega, Greek_OMEGA ] };
key <AD08> { [ i, I, U025B, U0190 ] }; // U025B = open E
key <AD09> { [ o, O, Greek_phi, Greek_PHI ] };
key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
key <AD11> { [ oslash, Oslash, bracketleft, braceleft ] };
key <AD12> { [Greek_sigma, Greek_SIGMA, bracketright, braceright ] };
key <AC01> { [ a, A, U0303 ] }; // tone 0
key <AC02> { [ s, S, U0304 ] }; // tone 1
key <AC03> { [ d, D, U0301 ] }; // tone 3
key <AC04> { [ f, F, U0300 ] }; // tone 4
key <AC05> { [ g, G, U030C ] }; // tone 5
key <AC06> { [ U0323, U0307, h, H ] }; // COMBINING DOT BELOW, ABOVE
key <AC07> { [ j, J, U0306 ] }; // tone 9
key <AC08> { [ k, K, U030F ] }; // tone 11
key <AC09> { [ l, L, U0308 ] }; // tone 14
key <AC10> { [ oe, OE, semicolon, colon ] };
key <AC11> { [ dead_acute, quotedbl, apostrophe ] };
key <BKSL> { [ ae, AE, backslash, bar ] };
key <AB01> { [ z, Z, U01F3, U01F2 ] }; // U01F3 = letter dz
key <AB06> { [ n, N, eng, ENG ] };
key <AB08> { [ comma, less, guillemotleft, U2039 ] };
key <AB09> { [ period, greater, guillemotright, U203A ] };
include "cm(solidus_switch)"
include "level3(ralt_switch)"
};
// Use the slash key as special key for switching or latching to level 3.
partial modifier_keys
xkb_symbols "solidus_switch" {
key <AB10> {[ ISO_Level3_Latch, question, slash, dead_abovedot ]};
modifier_map Mod5 { ISO_Level3_Latch };
};

712
nixos/xkb/symbols/cn Normal file
View File

@@ -0,0 +1,712 @@
// Keyboard layouts for China.
// The default Chinese layout is the same as the American.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "us(basic)"
name[Group1]= "Chinese";
};
// Tibetan Standard Keyboard map for XKB/X.org
//
// Based on the CNS Tibetan keyboard as supported by Windows Vista
// using information published by Tashi Tsering:
// http://www.yalasoo.com/English/docs/yalasoo_en_MStbKb.html
//
// XKB version by Rich Felker <dalias@aerifal.cx>.
//
// The CNS Tibetan keyboard standard specifies 5 keyboards worth of keys,
// but apparently makes no requirements about how each is accessed. Only
// the first 2 are needed for native Tibetan text; the remainder are
// filled with special symbols and letters for transliterating foreign
// text. Further, CNS leaves the level of support of keyboards 2-5 as an
// option to the implementor (despite the fact that #2 is absolutely
// essential...). Windows Vista maps them as follows:
//
// 1. Unshifted
// 2. "m"-key-prefixed
// 3. Shift-modified
// 4. Ctrl+Alt+Shift-modified
// 5. "M"-key-prefixed
//
// I roughly copy the Windows Vista mapping, which was intended by the
// designer of the keyboard, with the following exceptions:
//
// The fifth keyboard is almost empty and contains only precomposed forms
// of subjoined letter characters whose use is strongly discouraged, and
// is not implemented at all in this XKB map. The fourth is implemented,
// but is accessed by an "m"-prefix (or "M"-prefix, for convenience)
// followed by a Shift-modified key. This avoids stealing the Ctrl and Alt
// keys, which belong to applications on *nix and not to the keyboard or
// input method. Aside from enterring rare special symbols and
// foreign-word-transliteration letters, these differences should not
// affect users.
//
// Implementation notes:
//
// A latching ISO Level3 shift is used for the "m"-prefix modifier. In
// principle moving it to other keys (e.g. AltGr) would be possible
// according to user preference, but this is not practical for typing
// Tibetan, since the subjoined consonants, of which Tibetan has 0-2 per
// syllable, are accessed via this mechanism.
//
// One annoyance is that the latching Level3 shift fails to work if the
// previous key is not yet released when "m" is pressed (the key release
// event kills the latch). I consider this a bug in X and don't know an
// easy way to work around it. Complain to the maintainers if it bothers
// you and maybe they'll find a fix. You won't notice it unless you're
// fast at typing Tibetan anyway.
partial alphanumeric_keys
xkb_symbols "tib" {
name[Group1]= "Tibetan";
key <TLDE> { [ 0x1000f68, 0x1000f01, 0x1000fb8, 0x1000f00 ] }; # ཨ ༁ ྸ ༀ
key <AE01> { [ 0x1000f21, 0x1000f2a, 0x1000f04, 0x1000f76 ] }; # ༡ ༪ ༄ ྲྀ
key <AE02> { [ 0x1000f22, 0x1000f2b, 0x1000f05, 0x1000f77 ] }; # ༢ ༫ ༅ ཷ
key <AE03> { [ 0x1000f23, 0x1000f2c, 0x1000f7e, 0x1000f78 ] }; # ༣ ༬ ཾ ླྀ
key <AE04> { [ 0x1000f24, 0x1000f2d, 0x1000f83, 0x1000f79 ] }; # ༤ ༭ ྃ ཹ
key <AE05> { [ 0x1000f25, 0x1000f2e, 0x1000f37, 0x1000f81 ] }; # ༥ ༮ ༷ ཱྀ
key <AE06> { [ 0x1000f26, 0x1000f2f, 0x1000f35, 0x1000f09 ] }; # ༦ ༯ ༵ ༉
key <AE07> { [ 0x1000f27, 0x1000f30, 0x1000f7f, 0x1000f0a ] }; # ༧ ༰ ཿ ༊
key <AE08> { [ 0x1000f28, 0x1000f31, 0x1000f14, 0x1000f0f ] }; # ༨ ༱ ༔ ༏
key <AE09> { [ 0x1000f29, 0x1000f32, 0x1000f11, 0x1000f10 ] }; # ༩ ༲ ༑ ༐
key <AE10> { [ 0x1000f20, 0x1000f33, 0x1000f08, 0x1000f12 ] }; # ༠ ༳ ༈ ༒
key <AE11> { [ 0x1000f67, 0x1000f3c, 0x1000fb7, 0x1000f0c ] }; # ཧ ༼ ྷ ༌
key <AE12> { [ 0x1000f5d, 0x1000f3d, 0x1000fba, 0x1000f13 ] }; # ཝ ༽ ྺ ༓
key <AD01> { [ 0x1000f45, 0x1000f15, 0x1000f95, 0x1000f89 ] }; # ཅ ༕ ྕ ྉ
key <AD02> { [ 0x1000f46, 0x1000f16, 0x1000f96, 0x1000f88 ] }; # ཆ ༖ ྖ ྈ
key <AD03> { [ 0x1000f7a, 0x1000f17, 0x1000f7b, 0x1000fbe ] }; # ེ ༗ ཻ ྾
key <AD04> { [ 0x1000f62, 0x1000fbc, 0x1000fb2, 0x1000f6a ] }; # ར ྼ ྲ ཪ
key <AD05> { [ 0x1000f4f, 0x1000f4a, 0x1000f9f, 0x1000f9a ] }; # ཏ ཊ ྟ ྚ
key <AD06> { [ 0x1000f61, 0x1000fbb, 0x1000fb1, 0x1000fbf ] }; # ཡ ྻ ྱ ྿
key <AD07> { [ 0x1000f74, 0x1000f18, 0x1000fad, 0x1000f75 ] }; # ུ ༘ ྭ ཱུ
key <AD08> { [ 0x1000f72, 0x1000f19, 0x1000f80, 0x1000f73 ] }; # ི ༙ ྀ ཱི
key <AD09> { [ 0x1000f7c, 0x1000f1a, 0x1000f7d, 0x1000fc0 ] }; # ོ ༚ ཽ ࿀
key <AD10> { [ 0x1000f55, 0x1000f1b, 0x1000fa5, 0x1000fc1 ] }; # ཕ ༛ ྥ ࿁
key <AD11> { [ 0x1000f59, 0x1000f1c, 0x1000fa9, 0x1000fc2 ] }; # ཙ ༜ ྩ ࿂
key <AD12> { [ 0x1000f5a, 0x1000f1d, 0x1000faa, 0x1000fc3 ] }; # ཚ ༝ ྪ ࿃
key <BKSL> { [ 0x1000f5b, 0x1000f1e, 0x1000fab, 0x1000f5c ] }; # ཛ ༞ ྫ ཛྷ
key <AC01> { [ 0x1000f60, 0x1000f71, 0x1000fb0, 0x1000fc4 ] }; # འ ཱ ྰ ࿄
key <AC02> { [ 0x1000f66, 0x1000f1f, 0x1000fb6, 0x1000fc5 ] }; # ས ༟ ྶ ࿅
key <AC03> { [ 0x1000f51, 0x1000f4c, 0x1000fa1, 0x1000f9c ] }; # ད ཌ ྡ ྜ
key <AC04> { [ 0x1000f56, 0x1000f3e, 0x1000fa6, 0x1000f57 ] }; # བ ༾ ྦ བྷ
key <AC05> { [ 0x1000f44, 0x1000f3f, 0x1000f94, 0x1000fc6 ] }; # ང ༿ ྔ ࿆
key <AC06> { [ 0x1000f58, 0x1000fcf, 0x1000fa8, 0x1000fc7 ] }; # མ ࿏ ྨ ࿇
key <AC07> { [ 0x1000f0b, 0x1000f02, 0x1000f84, 0x1000fc8 ] }; # ་ ༂ ྄ ࿈
key <AC08> { [ 0x1000f42, 0x1000f03, 0x1000f92, 0x1000f43 ] }; # ག ༃ ྒ གྷ
key <AC09> { [ 0x1000f63, 0x1000f06, 0x1000fb3, 0x1000fc9 ] }; # ལ ༆ ླ ࿉
key <AC10> { [ 0x1000f5e, 0x1000f07, 0x1000fae, 0x1000fca ] }; # ཞ ༇ ྮ ࿊
key <AC11> { [ 0x1000f0d, 0x1000f38, 0x1000f0e, 0x1000fcb ] }; # ། ༸ ༎ ࿋
key <AB01> { [ 0x1000f5f, 0x1000f34, 0x1000faf, 0x1000fcc ] }; # ཟ ༴ ྯ ࿌
key <AB02> { [ 0x1000f64, 0x1000f65, 0x1000fb4, 0x1000fb5 ] }; # ཤ ཥ ྴ ྵ
key <AB03> { [ 0x1000f40, 0x1000f69, 0x1000f90, 0x1000fb9 ] }; # ཀ ཀྵ ྐ ྐྵ
key <AB04> { [ 0x1000f41, 0x1000f87, 0x1000f91, 0x1000f36 ] }; # ཁ ྇ ྑ ༶
key <AB05> { [ 0x1000f54, 0x1000f86, 0x1000fa4, 0x1000f82 ] }; # པ ྆ ྤ ྂ
key <AB06> { [ 0x1000f53, 0x1000f4e, 0x1000fa3, 0x1000f9e ] }; # ན ཎ ྣ ྞ
key <AB07> { [ ISO_Level3_Latch, ISO_Level3_Latch, 0x1000f85, 0x1000f52 ] }; # -བཏགས་ ྅ དྷ
key <AB08> { [ 0x1000f50, 0x1000f4b, 0x1000fa0, 0x1000f9b ] }; # ཐ ཋ ྠ ྛ
key <AB09> { [ 0x1000f47, 0x1000f3a, 0x1000f97, 0x1000f8b ] }; # ཇ ༺ ྗ ྋ
key <AB10> { [ 0x1000f49, 0x1000f3b, 0x1000f99, 0x1000f8a ] }; # ཉ ༻ ྙ ྊ
};
// Tibetan Standard Keyboard with ASCII numerals
//
// Users may prefer that the numeral keys enter ASCII numerals instead of
// Tibetan numerals, since the latter are not in modern use in Tibet.
// This is especially an issue for laptop users who do not have a numeric
// keypad by which to access the ASCII numerals, and who need to type
// numbers to be interpreted by applications.
//
// In this mapping, the Shift-modified numeral keys generate Tibetan
// numerals, since it was unclear to me that the standard Latin punctuation
// keys would be any use without Latin letters. (One can imagine wanting to
// type an email address using the @ sign, but as of present non-ASCII
// email addresses are not possible.) This mapping may change in the future
// if a clearly better use for the shifted numerals is pointed out by users.
partial alphanumeric_keys
xkb_symbols "tib_asciinum" {
include "cn(tib)"
name[Group1]= "Tibetan (with ASCII numerals)";
key <AE01> { [ 1, 0x1000f21, 0x1000f04, 0x1000f76 ] }; # 1 ༡ ༄ ྲྀ
key <AE02> { [ 2, 0x1000f22, 0x1000f05, 0x1000f77 ] }; # 2 ༢ ༅ ཷ
key <AE03> { [ 3, 0x1000f23, 0x1000f7e, 0x1000f78 ] }; # 3 ༣ ཾ ླྀ
key <AE04> { [ 4, 0x1000f24, 0x1000f83, 0x1000f79 ] }; # 4 ༤ ྃ ཹ
key <AE05> { [ 5, 0x1000f25, 0x1000f37, 0x1000f81 ] }; # 5 ༥ ༷ ཱྀ
key <AE06> { [ 6, 0x1000f26, 0x1000f35, 0x1000f09 ] }; # 6 ༦ ༵ ༉
key <AE07> { [ 7, 0x1000f27, 0x1000f7f, 0x1000f0a ] }; # 7 ༧ ཿ ༊
key <AE08> { [ 8, 0x1000f28, 0x1000f14, 0x1000f0f ] }; # 8 ༨ ༔ ༏
key <AE09> { [ 9, 0x1000f29, 0x1000f11, 0x1000f10 ] }; # 9 ༩ ༑ ༐
key <AE10> { [ 0, 0x1000f20, 0x1000f08, 0x1000f12 ] }; # 0 ༠ ༈ ༒
};
// Uyghur Standard Keyboard Map for XKB/X.Org
//
// XKB version in collaboration by Muhemmed Abdullah <muhammad@yulghun.com>,
// Abdussalam Abdurrahman <abdusalam.abdurahman@gmail.com>, and
// Ekrem Tomur <ekrem.tomur@gmail.com>
partial alphanumeric_keys
xkb_symbols "ug" {
include "us(basic)"
name[Group1]= "Uyghur";
key <AE09> { [ 9, parenright ] }; // 9 )
key <AE10> { [ 0, parenleft ] }; // 0 (
key <AE11> { [ minus, 0x1002014 ] }; // - —
key <AD01> { [ 0x1000686, VoidSymbol ] }; // چ
key <AD02> { [ 0x10006cb, VoidSymbol ] }; // ۋ
key <AD03> { [ 0x10006d0, VoidSymbol ] }; // ې
key <AD04> { [ 0x1000631, VoidSymbol ] }; // ر
key <AD05> { [ 0x100062a, VoidSymbol ] }; // ت
key <AD06> { [ 0x100064a, VoidSymbol ] }; // ي
key <AD07> { [ 0x10006c7, VoidSymbol ] }; // ۇ
key <AD08> { [ 0x10006ad, VoidSymbol ] }; // ڭ
key <AD09> { [ 0x1000648, VoidSymbol ] }; // و
key <AD10> { [ 0x100067e, VoidSymbol ] }; // پ
key <AD11> { [ bracketright, guillemotright ] }; // ] »
key <AD12> { [ bracketleft, guillemotleft ] }; // [ «
key <AC01> { [ 0x10006be, VoidSymbol ] }; // ھ
key <AC02> { [ 0x1000633, VoidSymbol ] }; // س
key <AC03> { [ 0x100062f, 0x1000698 ] }; // د ژ
key <AC04> { [ 0x1000627, 0x1000641 ] }; // ا ف
key <AC05> { [ 0x10006d5, 0x10006af ] }; // ە گ
key <AC06> { [ 0x1000649, 0x100062e ] }; // ى خ
key <AC07> { [ 0x1000642, 0x100062c ] }; // ق ج
key <AC08> { [ 0x1000643, 0x10006c6 ] }; // ك ۆ
key <AC09> { [ 0x1000644, VoidSymbol ] }; // ل
key <AC10> { [ Arabic_semicolon, colon ] }; // ؛ :
key <AB01> { [ 0x1000632, VoidSymbol ] }; // ز
key <AB02> { [ 0x1000634, VoidSymbol ] }; // ش
key <AB03> { [ 0x100063a, VoidSymbol ] }; // غ
key <AB04> { [ 0x10006c8, VoidSymbol ] }; // ۈ
key <AB05> { [ 0x1000628, VoidSymbol ] }; // ب
key <AB06> { [ 0x1000646, VoidSymbol ] }; // ن
key <AB07> { [ 0x1000645, VoidSymbol ] }; // م
key <AB08> { [ Arabic_comma, 0x100203a ] }; // ،
key <AB09> { [ period, 0x1002039 ] }; // .
key <AB10> { [ 0x1000626, Arabic_question_mark ] }; // ئ ؟
};
// Pinyin Keyboard, in the style of altgr-intl
//
// Chinese speakers and learners often find it hard to type Hanyu Pinyin
// with all its tones and ü. This rule defines an altgr-intl-like behavior,
// with dead keys activated by "AltGr + <key>". It also works with many
// "pinyin" extensions, such as Tongyong Pinyin (Taiwan Mandarin) and
// various SASM/GNC romanizations.
//
// Number row keys 1 2 3 4 are defined as dead-keys for the tones.
// They correspond to the four tones in Hanyu Pinyin.
//
// To generate a · for "neutral" syllables, use AltGr + ` (grave).
// To generate a raw ü, use AltGr + v.
// V is used instead of ü for tones.
//
// AltGr+Shift+` triggers dead_abovering (˚), used by the Taiwanese
// Tongyong Pinyin variant for the "neutral" tone.
//
// AltGr+6 triggers dead_circumflex (^) for ê ẑ ĉ ŝ, etc.
// These can be stacked after tones to produce ế and ề; other tones require
// combining characters, available through nobreakspace (AltGr+Space).
//
// AltGr+Shift+6 triggers dead_diaeresis (¨) for SASM/GNC
// romanization of tib, mon, and ug.
//
// This file should be used with an appropriate XCompose file with
// definitons for dead_{macron,acute,caron,grave} + a/e/i/o/u/v(ü).
// --Mingye Wang <arthur200126@gmail.com>
partial alphanumeric_keys
xkb_symbols "altgr-pinyin" {
include "us(basic)"
name[Group1]= "Hanyu Pinyin Letters (with AltGr dead keys)";
key <TLDE> { [ grave, asciitilde, periodcentered,dead_abovering ] };
key <AE01> { [ 1, exclam, dead_macron, macron ] };
key <AE02> { [ 2, at, dead_acute, acute ] };
key <AE03> { [ 3, numbersign, dead_caron, caron ] };
key <AE04> { [ 4, dollar, dead_grave, grave ] };
key <AE06> { [ 6, asciicircum, dead_circumflex, dead_diaeresis ] };
key <AB04> { [ v, V, udiaeresis, Udiaeresis ] };
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
include "level3(ralt_switch)"
};
// Mongolian Bichig (traditional) Keyboard Map for XKB/X.Org
//
// by Maurizio M. Gavioli <mmg@vistamaresoft.com>, 2019 from PRC
// standard GB/T 28038-2011, par. 4.3.
// The original standard has vertical presentation forms (UFExx range)
// for level 2 of AB08 - AB10, AD11 - AD13, AE01, AE09, AE10; they have
// been replaced by the corresponding decompositions, assuming that:
// 1) presentation forms are a job of the font stack more than of the
// keyboard management.
// 2) these keyboard layout will not necessarily be used only for
// vertical text orientations.
partial alphanumeric_keys
xkb_symbols "mon_trad" {
include "us(basic)"
name[Group1]= "Mongolian (Bichig)";
key <TLDE> { [ U180D, asciitilde ] }; // ~: FVS3, ~
key <AE01> { [ 1, exclam ] }; // 1: 1, !
key <AE02> { [ 2, U2048 ] }; // 2: 2, ⁈
key <AE03> { [ 3, U2049 ] }; // 3: 3, ⁉
key <AE04> { [ 4, 4 ] }; // 4: 4
key <AE05> { [ 5, percent ] }; // 5: 5, %
key <AE06> { [ 6, U200C ] }; // 6: 6, ZWNJ
key <AE07> { [ 7, U180A ] }; // 7: 7, ᠊ NIRUGU
key <AE08> { [ 8, U200D ] }; // 8: 8, ZWJ
key <AE09> { [ 9, parenleft ] }; // 9: 9, (
key <AE10> { [ 0, parenright ] }; // 0: 0, )
key <AE11> { [ U202F, U180E ] }; // -: NNBSP, MVS
key <AE12> { [ equal, plus ] }; // +: =, +
key <AD01> { [ U1823, U1842 ] }; // Q: ᠣ O, ᡂ CHI
key <AD02> { [ U1838, U1838 ] }; // W: ᠸ WA
key <AD03> { [ U1821, U1827 ] }; // E: ᠡ E, ᠧ EE
key <AD04> { [ U1837, U183F ] }; // R: ᠷ RA, ᠿ ZRA
key <AD05> { [ U1832, U1832 ] }; // T: ᠲ TA
key <AD06> { [ U1836, U1836 ] }; // Y: ᠶ YA
key <AD07> { [ U1826, U1826 ] }; // U: ᠦ UE
key <AD08> { [ U1822, U1822 ] }; // I: ᠢ I
key <AD09> { [ U1825, U1825 ] }; // O: ᠥ OE
key <AD10> { [ U182B, U182B ] }; // P: ᠫ PA
key <AD11> { [ bracketleft, U3008 ] }; // [: [, 〈
key <AD12> { [ bracketright, U3009 ] }; // ]: ], 〉
key <BKSL> { [ U1801, U2014 ] }; // \: ᠁, —
key <AC01> { [ U1820, U1820 ] }; // A: ᠠ A
key <AC02> { [ U1830, U1830 ] }; // S: ᠰ SA
key <AC03> { [ U1833, U1833 ] }; // D: ᠳ DA
key <AC04> { [ U1839, U1839 ] }; // F: ᠹ FA
key <AC05> { [ U182D, U182D ] }; // G: ᠭ GA
key <AC06> { [ U182C, U183E ] }; // H: ᠬ QA, ᠾ HAA
key <AC07> { [ U1835, U1835 ] }; // J: ᠵ JA
key <AC08> { [ U183A, U183B ] }; // K: ᠺ KA, ᠻ KHA
key <AC09> { [ U182F, U1840 ] }; // L: ᠯ LA, ᡀ LHA
key <AC10> { [ semicolon, U1804 ] }; // ;: ;, ᠄
key <AC11> { [ U180B, U180C ] }; // `: FVS1, FVS2
key <AB01> { [ U183D, U1841 ] }; // Z: ᠽ ZA, ᡁ ZHI
key <AB02> { [ U1831, U1831 ] }; // X: ᠱ SHA
key <AB03> { [ U1834, U183C ] }; // C: ᠴ CHA, ᠼ TSA
key <AB04> { [ U1824, U1824 ] }; // V: ᠤ U
key <AB05> { [ U182A, U182A ] }; // B: ᠪ BA
key <AB06> { [ U1828, U1829 ] }; // N: ᠨ NA, ᠩ ANG
key <AB07> { [ U182E, U182E ] }; // M: ᠮ MA
key <AB08> { [ U1802, U300A ] }; // ,: ᠂, 《
key <AB09> { [ U1803, U300B ] }; // .: , 》
key <AB10> { [ U00B7, question ] }; // /: ·, ?
};
// Mongolian (Todo) Keyboard Map for XKB/X.Org
//
// by Maurizio M. Gavioli <mmg@vistamaresoft.com>, 2019 from PRC
// standard GB/T 28038-2011, par. 4.4.
// The original standard has vertical presentation forms (UFExx range)
// in AB08 - AB10, AC10, AD11 - AD13, AE01, AE09 - AE11: they have been
// replaced by the corresponding decompositions; see explanation for
// "mon_trad" above.
partial alphanumeric_keys
xkb_symbols "mon_trad_todo" {
include "us(basic)"
name[Group1]= "Mongolian (Todo)";
key <TLDE> { [ U180D, asciitilde ] }; // ~: FVS3, ~
key <AE01> { [ 1, exclam ] }; // 1: 1, !
key <AE02> { [ 2, U2048 ] }; // 2: 2, ⁈
key <AE03> { [ 3, U2049 ] }; // 3: 3, ⁉
key <AE04> { [ 4, U1843 ] }; // 4: 4, ᡃ TODO LONG VOWEL
key <AE05> { [ 5, percent ] }; // 5: 5, %
key <AE06> { [ 6, U200C ] }; // 6: 6, ZWNJ
key <AE07> { [ 7, U180A ] }; // 7: 7, ᠊ NIRUGU
key <AE08> { [ 8, U200D ] }; // 8: 8, ZWJ
key <AE09> { [ 9, parenleft ] }; // 9: 9, (
key <AE10> { [ 0, parenright ] }; // 0: 0, )
key <AE11> { [ U202F, U2014 ] }; // -: NNBSP, — EM DASH
key <AE12> { [ equal, plus ] }; // +: =, +
key <AD01> { [ U1846, U1806 ] }; // Q: ᡆ TODO O, ᠆ (Todo hyphen)
key <AD02> { [ U1856, U1856 ] }; // W: ᡖ TODO WA
key <AD03> { [ U1844, U1844 ] }; // E: ᡄ TODO E
key <AD04> { [ U1837, U1837 ] }; // R: ᠷ RA
key <AD05> { [ U1850, U1850 ] }; // T: ᡐ TODO TA
key <AD06> { [ U1855, U1855 ] }; // Y: ᡕ TODO YA
key <AD07> { [ U1849, U1849 ] }; // U: ᡉ TODO UE
key <AD08> { [ U1845, U1845 ] }; // I: ᡅ TODO I
key <AD09> { [ U1848, U1848 ] }; // O: ᡈ TODO OE
key <AD10> { [ U184C, U184C ] }; // P: ᠫ PA
key <AD11> { [ bracketleft, U300C ] }; // [: [, 「
key <AD12> { [ bracketright, U300D ] }; // ]: ], 」
key <BKSL> { [ U1801, U00B7 ] }; // \: ᠁, ·
key <AC01> { [ U1820, U1820 ] }; // A: ᠠ A
key <AC02> { [ U1830, U1830 ] }; // S: ᠰ SA
key <AC03> { [ U1851, U1851 ] }; // D: ᡑ TODO DA
key <AC04> { [ U1838, U1838 ] }; // F: ᠸ WA
key <AC05> { [ U184E, U1858 ] }; // G: ᡎ TODO GA, ᡘ TODO GAA
key <AC06> { [ U184D, U1859 ] }; // H: ᡍ TODO Qa, ᡙ TODO HAA
key <AC07> { [ U1853, U185A ] }; // J: ᡓ TODO JA, ᡚ TODO JIA
key <AC08> { [ U1857, U1857 ] }; // K: ᡗ TODO KA
key <AC09> { [ U182F, U1840 ] }; // L: ᠯ LA, ᡀ LHA
key <AC10> { [ semicolon, U1804 ] }; // ;: ;, ᠄
key <AC11> { [ U180B, U180C ] }; // `: FVS1, FVS2
key <AB01> { [ U1834, U185C ] }; // Z: ᠴ CHA, ᠼ TODO DZA
key <AB02> { [ U1831, U1831 ] }; // X: ᠱ SHA
key <AB03> { [ U1854, U1852 ] }; // C: ᡔ TODO TSA ᡒ TODO CHA
key <AB04> { [ U1847, U1847 ] }; // V: ᡇ TODO U
key <AB05> { [ U184B, U184B ] }; // B: ᡋ TODO BA
key <AB06> { [ U1828, U184A ] }; // N: ᠨ NA, ᠩ TODO ANG
key <AB07> { [ U184F, U184F ] }; // M: ᡏ TODO MA
key <AB08> { [ comma, U300E ] }; // ,: ,, 『
key <AB09> { [ U3002, U300F ] }; // .: 。, 』
key <AB10> { [ U3001, question ] }; // /: 、, ?
};
// Mongolian (Xibe) Keyboard Map for XKB/X.Org
//
// by Maurizio M. Gavioli <mmg@vistamaresoft.com>, 2019 from PRC
// standard GB/T 28038-2011, par. 4.5.
// The original standard has vertical presentation forms (UFExx range)
// in AB08 - AB10, AD11 - AD13, AE01, AE09, AE10; they have been
// replaced by the corresponding decompositions; see explanation for
// "mon_trad" above.
partial alphanumeric_keys
xkb_symbols "mon_trad_xibe" {
include "us(basic)"
name[Group1]= "Mongolian (Xibe)";
key <TLDE> { [ U180D, asciitilde ] }; // ~: FVS3, ~
key <AE01> { [ 1, exclam ] }; // 1: 1, !
key <AE02> { [ 2, U2018 ] }; // 2: 2,
key <AE03> { [ 3, U2019 ] }; // 3: 3,
key <AE04> { [ 4, U1807 ] }; // 4: 4, ᠇ SIBE SYLL. BOUND. MARKER
key <AE05> { [ 5, percent ] }; // 5: 5, %
key <AE06> { [ 6, U200C ] }; // 6: 6, ZWNJ
key <AE07> { [ 7, U180A ] }; // 7: 7, ᠊ NIRUGU
key <AE08> { [ 8, U200D ] }; // 8: 8, ZWJ
key <AE09> { [ 9, parenleft ] }; // 9: 9, (
key <AE10> { [ 0, parenright ] }; // 0: 0, )
key <AE11> { [ U202F, U202F ] }; // -: NNBSP
key <AE12> { [ equal, plus ] }; // +: =, +
key <AD01> { [ U1834, U1834 ] }; // Q: ᠴ CHA
key <AD02> { [ U1838, U1838 ] }; // W: ᠸ WA
key <AD03> { [ U185D, U185D ] }; // E: ᡝ SIBE E
key <AD04> { [ U1837, U1870 ] }; // R: ᠷ RA, ᡰ SIBE RAA
key <AD05> { [ U1868, U1868 ] }; // T: ᡨ SIBE TA
key <AD06> { [ U1836, U1836 ] }; // Y: ᠶ YA
key <AD07> { [ U1860, U1860 ] }; // U: ᡠ SIBE UE
key <AD08> { [ U185E, U185F ] }; // I: ᡞ SIBE I, ᡟ SIBE IY
key <AD09> { [ U1823, U1823 ] }; // O: ᠣ O
key <AD10> { [ U1866, U1866 ] }; // P: ᡦ SIBE PA
key <AD11> { [ bracketleft, U201C ] }; // [: [, “
key <AD12> { [ bracketright, U201D ] }; // ]: ], ”
key <BKSL> { [ U1801, U2014 ] }; // \: ᠁, —
key <AC01> { [ U1820, U1820 ] }; // A: ᠠ A
key <AC02> { [ U1830, U1830 ] }; // S: ᠰ SA
key <AC03> { [ U1869, U1869 ] }; // D: ᡩ SIBE DA
key <AC04> { [ U186B, U186B ] }; // F: ᡫ SIBE FA
key <AC05> { [ U1864, U186C ] }; // G: ᡤ SIBE GA, ᡬ SIBE GAA
key <AC06> { [ U1865, U186D ] }; // H: ᡥ SIBE HA, ᡭ SIBE HAA
key <AC07> { [ U186A, U186A ] }; // J: ᡪ SIBE JA
key <AC08> { [ U1863, U183A ] }; // K: ᡣ SIBE KA, ᠺ KA
key <AC09> { [ U182F, U182F ] }; // L: ᠯ LA
key <AC10> { [ semicolon, U1804 ] }; // ;: ;, ᠄
key <AC11> { [ U180B, U180C ] }; // `: FVS1, FVS2
key <AB01> { [ U186F, U1872 ] }; // Z: ᡯ SIBE ZA, ᡲ SIBE ZHA
key <AB02> { [ U1867, U1867 ] }; // X: ᡧ SIBE SHA
key <AB03> { [ U186E, U1871 ] }; // C: ᡮ SIBE TSA, ᡱ SIBE CHA
key <AB04> { [ U1861, U1861 ] }; // V: ᡡ SIBE U
key <AB05> { [ U182A, U182A ] }; // B: ᠪ BA
key <AB06> { [ U1828, U1862 ] }; // N: ᠨ NA, ᡢ SIBE ANG
key <AB07> { [ U182E, U182E ] }; // M: ᠮ MA
key <AB08> { [ comma, U300E ] }; // ,: ,, 『
key <AB09> { [ U3002, U300F ] }; // .: 。, 』
key <AB10> { [ U3001, question ] }; // /: 、, ?
};
// Mongolian (Manchu) Keyboard Map for XKB/X.Org
//
// by Maurizio M. Gavioli <mmg@vistamaresoft.com>, 2019 from PRC
// standard GB/T 28038-2011, par. 4.6.
// The original standard has vertical presentation forms (UFExx range)
// for level 2 of AB10, ABC10, AD11 - AD13, AE01, AE09, AE10; they have been
// replaced by the corresponding decompositions; see explanation for
// "mon_trad" above.
partial alphanumeric_keys
xkb_symbols "mon_trad_manchu" {
include "us(basic)"
name[Group1]= "Mongolian (Manchu)";
key <TLDE> { [ U180D, asciitilde ] }; // ~: FVS3, ~
key <AE01> { [ 1, exclam ] }; // 1: 1, !
key <AE02> { [ 2, 2 ] }; // 2: 2
key <AE03> { [ 3, 3 ] }; // 3: 3
key <AE04> { [ 4, 4 ] }; // 4: 4
key <AE05> { [ 5, percent ] }; // 5: 5, %
key <AE06> { [ 6, U200C ] }; // 6: 6, ZWNJ
key <AE07> { [ 7, U180A ] }; // 7: 7, ᠊ NIRUGU
key <AE08> { [ 8, U200D ] }; // 8: 8, ZWJ
key <AE09> { [ 9, parenleft ] }; // 9: 9, (
key <AE10> { [ 0, parenright ] }; // 0: 0, )
key <AE11> { [ U202F, U202F ] }; // -: NNBSP
key <AE12> { [ equal, plus ] }; // +: =, +
key <AD01> { [ U1834, U1834 ] }; // Q: ᠴ CHA
key <AD02> { [ U1838, U1838 ] }; // W: ᠸ WA
key <AD03> { [ U185D, U185D ] }; // E: ᡝ SIBE E
key <AD04> { [ U1875, U1870 ] }; // R: ᡵ MANCHU RA, ᡰ SIBE RAA
key <AD05> { [ U1868, U1868 ] }; // T: ᡠ SIBE TA
key <AD06> { [ U1836, U1836 ] }; // Y: ᠶ YA
key <AD07> { [ U1860, U1860 ] }; // U: ᡠ SIBE UE
key <AD08> { [ U1873, U185F ] }; // I: ᡳ MANCHU I, ᡟ SIBE IY
key <AD09> { [ U1823, U1823 ] }; // O: ᠣ O
key <AD10> { [ U1866, U1866 ] }; // P: ᡦ SIBE PA
key <AD11> { [ bracketleft, bracketleft ] }; // [: [
key <AD12> { [ bracketright, bracketright ] }; // ]: ]
key <BKSL> { [ U1801, U2014 ] }; // \: ᠁, —
key <AC01> { [ U1820, U1820 ] }; // A: ᠠ A
key <AC02> { [ U1830, U1830 ] }; // S: ᠰ SA
key <AC03> { [ U1869, U1869 ] }; // D: ᡩ SIBE DA
key <AC04> { [ U1876, U1876 ] }; // F: ᡶ MANCHU FA
key <AC05> { [ U1864, U186C ] }; // G: ᡩ SIBE GA, ᡶ SIBE GAA
key <AC06> { [ U1865, U186D ] }; // H: ᡩ SIBE HA, ᡶ SIBE HAA
key <AC07> { [ U1835, U1835 ] }; // J: ᠵ JA
key <AC08> { [ U1874, U183A ] }; // K: ᡴ MANCHU KA, ᠺ KA
key <AC09> { [ U182F, U182F ] }; // L: ᠯ LA
key <AC10> { [ semicolon, U1804 ] }; // ;: ;, ᠄
key <AC11> { [ U180B, U180C ] }; // `: FVS1, FVS2
key <AB01> { [ U186F, U1872 ] }; // Z: ᡯ SIBE ZA, ᡲ SIBE ZHA
key <AB02> { [ U1867, U1867 ] }; // X: ᡧ SIBE SHA
key <AB03> { [ U186E, U1871 ] }; // C: ᡮ SIBE TSA, ᡱ SIBE CHA
key <AB04> { [ U1861, U1861 ] }; // V: ᡡ SIBE U
key <AB05> { [ U182A, U182A ] }; // B: ᠪ BA
key <AB06> { [ U1828, U1862 ] }; // N: ᠨ NA, ᡢ SIBE ANG
key <AB07> { [ U182E, U182E ] }; // M: ᠮ MA
key <AB08> { [ U1808, U1808 ] }; // ,: ᠈
key <AB09> { [ U1809, U1809 ] }; // .:
key <AB10> { [ question, question ] }; // /: , ?
};
// Mongolian Bichig Galik Keyboard Map for XKB/X.Org
//
// by Maurizio M. Gavioli <mmg@vistamaresoft.com>, 2019 from PRC
// standard GB/T 28038-2011, par. 4.7.
partial alphanumeric_keys
xkb_symbols "mon_trad_galik" {
include "us(basic)"
name[Group1]= "Mongolian (Galik)";
key <TLDE> { [ U180D, U180D ] }; // ~: FVS3
key <AE01> { [ U1811, U1811 ] }; // 1: ᠑
key <AE02> { [ U1812, U1812 ] }; // 2: ᠒
key <AE03> { [ U1813, U1813 ] }; // 3: ᠓
key <AE04> { [ U1814, U1814 ] }; // 4: ᠔
key <AE05> { [ U1815, U1815 ] }; // 5: ᠕
key <AE06> { [ U1816, U200C ] }; // 6: ᠖, ZWNJ
key <AE07> { [ U1817, U1817 ] }; // 7: ᠗
key <AE08> { [ U1818, U200D ] }; // 8: ᠘, ZWJ
key <AE09> { [ U1819, U1919 ] }; // 9: ᠙
key <AE10> { [ U1810, U1910 ] }; // 0: ᠐
key <AE11> { [ U202F, U180E ] }; // -: NNBSP, MVS
key <AE12> { [ VoidSymbol, VoidSymbol ] }; // +: ---
key <AD01> { [ U1880, U1827 ] }; // Q: ᢀ ALI GALI ANUNASVARA ONE, ᠧ EE
key <AD02> { [ U1881, U1823 ] }; // W: ᢁ ALI GALI VISARGA ONE, ᠣ O
key <AD03> { [ U1882, U1821 ] }; // E: ᢂ ALI GALI DAMARU, ᠡ E
key <AD04> { [ U1883, U1883 ] }; // R: ᢃ ALI GALI UBADAMA
key <AD05> { [ U1884, U1884 ] }; // T: ᢄ ALI GAL INVERTED UDADAMA
key <AD06> { [ U1885, U1885 ] }; // Y: ᢅ ALI GALI BALUDA
key <AD07> { [ U1886, U1826 ] }; // U: ᢆ ALI GALI THREE BALUDA, ᠦ UE
key <AD08> { [ U1887, U1822 ] }; // I: ᢇ ALI GALI A, ᠢ I
key <AD09> { [ U1888, U1888 ] }; // O: ᢈALI GALI I
key <AD10> { [ U1889, U1889 ] }; // P: ᢉ ALI GALI KA
key <AD11> { [ U188A, U188A ] }; // [: ᢊ ALI GALI NGA
key <AD12> { [ U1895, U1895 ] }; // ]: ᢕ ALI GALI ZHA
key <BKSL> { [ VoidSymbol, VoidSymbol ] }; // \: --
key <AC01> { [ U188B, U1820 ] }; // A: ᠀ ALI GALI CA,ᠠ A
key <AC02> { [ U188C, U188C ] }; // S: ᡛ ALI GALI TTA
key <AC03> { [ U188D, U188D ] }; // D: ᢍ ALI GALI THA
key <AC04> { [ U188E, U188E ] }; // F: ᢎ ALI GALI DDA
key <AC05> { [ U188F, U188F ] }; // G: ᢏ ALI GALI NNA
key <AC06> { [ U1890, U1890 ] }; // H: ᢐ ALI GALI TA
key <AC07> { [ U1891, U1853 ] }; // J: ᢑ ALI GALI DA, ᡓ TODO JA
key <AC08> { [ U1892, U1858 ] }; // K: ᢒ ALI GALI PA, ᡘ TODO GAA
key <AC09> { [ U1893, U1893 ] }; // L: ᢓ ALI GALI PHA
key <AC10> { [ U1894, U1894 ] }; // ;: ᢔ ALI GALI SSA
key <AC11> { [ U180B, U180C ] }; // `: FVS1, FVS2
key <AB01> { [ U1896, U185C ] }; // Z: ᢖ ALI GALI ZA, ᡜ TODO DZA
key <AB02> { [ U1897, U1897 ] }; // X: ᢗ ALI GALI AH
key <AB03> { [ U18A6, U18A6 ] }; // C: ᢦ ALI GALI HALF U
key <AB04> { [ U18A7, U1824 ] }; // V: ᢦ ALI GALI HALF YA ,ᠤ U
key <AB05> { [ U18A9, U18A9 ] }; // B: ᢩ ALI GALI DAGALGA
key <AB06> { [ U1805, U1805 ] }; // N: ᠅
key <AB07> { [ U1800, U185B ] }; // M: ᠀ BIRGA, ᡛ TODO NYA
key <AB08> { [ U1802, U1802 ] }; // ,: ᠂
key <AB09> { [ U1803, U1803 ] }; // .:
key <AB10> { [ VoidSymbol, VoidSymbol ] }; // /:
};
// Mongolian (Todo Galik) Keyboard Map for XKB/X.Org
//
// by Maurizio M. Gavioli <mmg@vistamaresoft.com>, 2019 from PRC
// standard GB/T 28038-2011, par. 4.8.
partial alphanumeric_keys
xkb_symbols "mon_todo_galik" {
include "us(basic)"
name[Group1]= "Mongolian (Todo Galik)";
key <TLDE> { [ U180D, U180D ] }; // ~: FVS3
key <AE01> { [ U1811, U1811 ] }; // 1: ᠑
key <AE02> { [ U1812, U1812 ] }; // 2: ᠒
key <AE03> { [ U1813, U1813 ] }; // 3: ᠓
key <AE04> { [ U1814, U1843 ] }; // 4: ᠔, ᡃ TODO LONG VOWEL SIGN
key <AE05> { [ U1815, U1815 ] }; // 5: ᠕
key <AE06> { [ U1816, U200C ] }; // 6: ᠖, ZWNJ
key <AE07> { [ U1817, U1817 ] }; // 7: ᠗
key <AE08> { [ U1818, U200D ] }; // 8: ᠘, ZWJ
key <AE09> { [ U1819, U1919 ] }; // 9: ᠙
key <AE10> { [ U1810, U1910 ] }; // 0: ᠐
key <AE11> { [ U202F, U202F ] }; // -: NNBSP
key <AE12> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AD01> { [ U1880, U1880 ] }; // Q: ᢀ ALI GALI ANUNASVARA ONE
key <AD02> { [ U1881, U1846 ] }; // W: ᢁ ALI GALI VISARGA ONE, ᡆ TODO O
key <AD03> { [ U1882, U1844 ] }; // E: ᢂ ALI GALI DAMARU, ᡄ TODO E
key <AD04> { [ U1883, U1883 ] }; // R: ᢃ ALI GALI UBADAMA
key <AD05> { [ U1884, U1884 ] }; // T: ᢄ ALI GAL INVERTED UDADAMA
key <AD06> { [ U1885, U1885 ] }; // Y: ᢅ ALI GALI BALUDA
key <AD07> { [ U1886, U1849 ] }; // U: ᢆ ALI GALI THREE BALUDA, ᡉ TODO UE
key <AD08> { [ U1889, U1845 ] }; // I: ᢉ ALI GALI KA, ᡅ TODO I
key <AD09> { [ U188A, U188A ] }; // O: ᢊ ALI GALI NGA
key <AD10> { [ U1887, U1887 ] }; // P: ᢇ ALI GALI A
key <AD11> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AD12> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <BKSL> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AC01> { [ U188B, U1820 ] }; // A: ᢋ ALI GALI CA, ᠠ A
key <AC02> { [ U188C, U188C ] }; // S: ᢌ ALI GALI TTA
key <AC03> { [ U188D, U188D ] }; // D: ᢍ ALI GALI THA
key <AC04> { [ U188E, U188E ] }; // F: ᢎ ALI GALI DDA
key <AC05> { [ U188F, U188F ] }; // G: ᢏ ALI GALI NNA
key <AC06> { [ U1894, U1894 ] }; // ;: ᢔ ALI GALI SSA
key <AC07> { [ U1896, U1896 ] }; // Z: ᢖ ALI GALI ZA
key <AC08> { [ U1897, U1897 ] }; // X: ᢗ ALI GALI AH
key <AC09> { [ U1898, U1898 ] }; // L: ᢘ TODO ALI GALI TA
key <AC10> { [ U1892, U1892 ] }; // K: ᢒ ALI GALI PA
key <AC11> { [ U180B, U180C ] }; // `: FVS1, FVS2
key <AB01> { [ U1899, U1899 ] }; // Z: ᢙ TODO ALI GALI ZHA
key <AB02> { [ U18A7, U18A6 ] }; // X: ᢧ ALI GALI HALF YA
key <AB03> { [ U1893, U1893 ] }; // C: ᢓ ALI GALI PHA
key <AB04> { [ U1847, U1847 ] }; // V: ᡇ TODO U
key <AB05> { [ U18A9, U18A9 ] }; // B: ᢩ ALIGALI DAGALGA
key <AB06> { [ U1805, U1805 ] }; // N: ᠅ FOUR DOTS
key <AB07> { [ U1800, U185B ] }; // M: ᠀ BIRGA, ᡛ TODO NIA
key <AB08> { [ U1802, U1802 ] }; // ,: ᠂ COMMA
key <AB09> { [ U1803, U1803 ] }; // .: FULL STOP
key <AB10> { [ VoidSymbol, VoidSymbol ] }; // /: ---
};
// Mongolian (Manchu Galik) Keyboard Map for XKB/X.Org
//
// by Maurizio M. Gavioli <mmg@vistamaresoft.com>, 2019 from PRC
// standard GB/T 28038-2011, par. 4.9.
partial alphanumeric_keys
xkb_symbols "mon_manchu_galik" {
include "us(basic)"
name[Group1]= "Mongolian (Manchu Galik)";
key <TLDE> { [ U180D, U180D ] }; // ~: FVS3
key <AE01> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AE02> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AE03> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AE04> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AE05> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AE06> { [ VoidSymbol, U200C ] }; // 6: --, ZWNJ
key <AE07> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AE08> { [ VoidSymbol, U200D ] }; // 8: 8, ZWJ
key <AE09> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AE10> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AE11> { [ U202F, U202F ] }; // -: NNBSP
key <AE12> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AD01> { [ U1880, U1880 ] }; // Q: ᢀ ALI GALI ANUNASVARA ONE
key <AD02> { [ U1881, U1881 ] }; // W: ᢁ ALI GALI VISARGA ONE
key <AD03> { [ U1882, U185D ] }; // E: ᢂ ALI GALI DAMARU, ᡝ SIBE E
key <AD04> { [ U1883, U1883 ] }; // R: ᢃ ALI GALI UBADAMA
key <AD05> { [ U1884, U1884 ] }; // T: ᢄ ALI GAL INVERTED UDADAMA
key <AD06> { [ U1885, U1885 ] }; // Y: ᢅ ALI GALI BALUDA
key <AD07> { [ U1886, U1860 ] }; // U: ᢆ ALI GALI THREE BALUDA, ᡠ SIBE UE
key <AD08> { [ U1887, U1873 ] }; // I: ᢇ ALI GALI A, ᡳ MANCHU I
key <AD09> { [ U1888, U1823 ] }; // O: ᢈ ALI GALI I, ᠣ O
key <AD10> { [ U188F, U188F ] }; // P: ᢏ ALI GALI NNA
key <AD11> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AD12> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <BKSL> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AC01> { [ U1892, U1820 ] }; // A: ᢒ ALI GALI PA, ᠠ A
key <AC02> { [ U189A, U189A ] }; // S: ᢚ MANCHU ALI GALI GHA
key <AC03> { [ U189B, U189B ] }; // D: ᢛ MANCHU ALI GALI NGA
key <AC04> { [ U189C, U189C ] }; // F: ᢜ MANCHU ALI GALI CA
key <AC05> { [ U189D, U189D ] }; // G: ᢝ MANCHU ALI GALI JHA
key <AC06> { [ U189E, U189E ] }; // H: ᢞ MANCHU ALI GALI TTA
key <AC07> { [ U189F, U189F ] }; // J: ᢟ MANCHU ALI GALI DDHA
key <AC08> { [ U18A0, U18A0 ] }; // K: ᢠ MANCHU ALI GALI TA
key <AC09> { [ U18A1, U18A1 ] }; // L: ᢡ MANCHU ALI GALI DHA
key <AC10> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AC11> { [ U180B, U180C ] }; // `: FVS1, FVS2
key <AB01> { [ U18A2, U18A2 ] }; // Z: ᢢ MANCHU ALI GALI SSA
key <AB02> { [ U18A3, U18A3 ] }; // X: ᢣ MANCHU ALI GALI CYA
key <AB03> { [ U18A4, U18A4 ] }; // C: ᢤ MANCHU ALI GALI ZHA
key <AB04> { [ U18A5, U1861 ] }; // V: ᢥ MANCHU ALI GALI ZA, ᡡ SIBE U
key <AB05> { [ U18A8, U18A8 ] }; // B: ᢨ MANCHU ALI GALI BHA
key <AB06> { [ U18AA, U18AA ] }; // N: ᢪ MANCHU ALI GALI LHA
key <AB07> { [ VoidSymbol, VoidSymbol ] }; // /: ---
key <AB08> { [ U1808, U1808 ] }; // ,: ᠈
key <AB09> { [ U1809, U1809 ] }; // .:
key <AB10> { [ VoidSymbol, VoidSymbol ] }; // /: ---
};

95
nixos/xkb/symbols/compose Normal file
View File

@@ -0,0 +1,95 @@
partial modifier_keys
xkb_symbols "ralt" {
key <RALT> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "lwin" {
key <LWIN> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "lwin-altgr" {
key <LWIN> { type[Group1]="FOUR_LEVEL", [ Super_L, Super_L, Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "rwin" {
key <RWIN> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "rwin-altgr" {
key <RWIN> { type[Group1]="FOUR_LEVEL", [ Super_R, Super_R, Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "menu" {
key <MENU> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "menu-altgr" {
key <MENU> { type[Group1]="FOUR_LEVEL", [ Menu, Menu, Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "rctrl" {
key <RCTL> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "rctrl-altgr" {
key <RCTL> { type[Group1]="FOUR_LEVEL", [ Control_R, Control_R, Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "lctrl" {
key <LCTL> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "lctrl-altgr" {
key <LCTL> { type[Group1]="FOUR_LEVEL", [ Control_L, Control_L, Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "caps" {
key <CAPS> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "caps-altgr" {
key <CAPS> { type[Group1]="FOUR_LEVEL", [ Caps_Lock, Caps_Lock, Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "102" {
key <LSGT> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "102-altgr" {
key <LSGT> { type[Group1]="FOUR_LEVEL", [ less, greater, Multi_key, Multi_key ] };
};
// Make plain Insert do Compose, while Shift+Insert remains Insert.
partial modifier_keys
xkb_symbols "ins" {
key <INS> { type[Group1]="TWO_LEVEL", [ Multi_key, Insert ] };
};
partial modifier_keys
xkb_symbols "paus" {
key <PAUS> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "prsc" {
key <PRSC> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};
partial modifier_keys
xkb_symbols "sclk" {
key <SCLK> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};

130
nixos/xkb/symbols/ctrl Normal file
View File

@@ -0,0 +1,130 @@
// Eliminate CapsLock, making it another Ctrl.
partial modifier_keys
xkb_symbols "nocaps" {
replace key <CAPS> { [ Control_L ], type[group1] = "ONE_LEVEL" };
modifier_map Control { <CAPS> };
};
// Make the left Ctrl key a left Meta.
xkb_symbols "lctrl_meta" {
replace key <LCTL> { [ Meta_L ] };
modifier_map Mod4 { <LCTL> };
};
// Swap the functions of the CapsLock key and the left Ctrl key.
partial modifier_keys
xkb_symbols "swapcaps" {
replace key <CAPS> { [ Control_L ], type[group1] = "ONE_LEVEL" };
replace key <LCTL> { [ Caps_Lock ] };
modifier_map Control { <CAPS> };
modifier_map Lock { <LCTL> };
};
// Make the left Ctrl key a left Hyper,
// and the CapsLock key a left Control.
partial modifier_keys
xkb_symbols "hyper_capscontrol" {
replace key <CAPS> { [ Control_L ], type[group1] = "ONE_LEVEL" };
replace key <LCTL> { [ Hyper_L ] };
modifier_map Control { <CAPS> };
modifier_map Mod4 { <LCTL> };
};
// Swap the functions of the CapsLock key and the left Ctrl key.
// Pressing the left Ctrl key switches to the next group.
partial modifier_keys
xkb_symbols "grouptoggle_capscontrol" {
include "ctrl(swapcaps)"
include "group(lctrl_toggle)"
};
// Move Ctrl to the leftmost key on the middle row and CapsLock to the
// leftmost key on the bottom row. Only works if the geometry or keycodes
// file has defined appropriate aliases for the keys in question.
partial modifier_keys
xkb_symbols "ac_ctrl" {
replace key <AC00> { [ Control_L ], type[group1] = "ONE_LEVEL" };
replace key <AA00> { [ Caps_Lock ] };
modifier_map Control { <AC00> };
modifier_map Lock { <AA00> };
};
// Move Ctrl to the leftmost key on the bottom row and CapsLock to the
// leftmost key on the middle row. Only works if the geometry or keycodes
// file has defined appropriate aliases for the keys in question.
partial modifier_keys
xkb_symbols "aa_ctrl" {
replace key <AA00> { [ Control_L ] };
replace key <AC00> { [ Caps_Lock ] };
modifier_map Control { <AA00> };
modifier_map Lock { <AC00> };
};
// Right Ctrl functions as another right Alt.
partial modifier_keys
xkb_symbols "rctrl_ralt" {
key <RCTL> { [ Alt_R ] };
modifier_map Mod1 { <RCTL> };
};
// Menu key functions as another right Ctrl.
partial modifier_keys
xkb_symbols "menu_rctrl" {
key <MENU> { [ Control_R ] };
modifier_map Control { <MENU> };
};
// Right Alt key functions as another right Ctrl.
partial modifier_keys
xkb_symbols "ralt_rctrl" {
replace key <RALT> { [ Control_R, Control_R ], type[group1] = "TWO_LEVEL" };
modifier_map Control { <RALT> };
};
// Swap the functions of the left Alt key and the left Ctrl key.
partial modifier_keys
xkb_symbols "swap_lalt_lctl" {
replace key <LALT> { [ Control_L, Control_L ] };
replace key <LCTL> { [ Alt_L, Meta_L ] };
modifier_map Mod1 { <LCTL> };
modifier_map Control { <LALT> };
};
// Swap the functions of the right Alt key and the right Ctrl key.
partial modifier_keys
xkb_symbols "swap_ralt_rctl" {
replace key <RALT> { [ Control_R, Control_R ] };
replace key <RCTL> { [ Alt_R, Meta_R ] };
modifier_map Mod1 { <RCTL> };
modifier_map Control { <RALT> };
};
// Swap the functions of the left Win key and the left Ctrl key.
partial modifier_keys
xkb_symbols "swap_lwin_lctl" {
replace key <LWIN> { [ Control_L ] };
replace key <LCTL> { [ Super_L ] };
modifier_map Mod4 { <LCTL> };
modifier_map Control { <LWIN> };
};
// Swap the functions of the right Win key and the right Ctrl key.
partial modifier_keys
xkb_symbols "swap_rwin_rctl" {
replace key <RWIN> { [ Control_R ] };
replace key <RCTL> { [ Super_R ] };
modifier_map Mod4 { <RCTL> };
modifier_map Control { <RWIN> };
};
// Map Ctrl to the left Alt key, Alt to the left Win key,
// and Super to the left Ctrl key.
partial modifier_keys
xkb_symbols "swap_lalt_lctl_lwin" {
replace key <LALT> { [ Control_L, Control_L ] };
replace key <LWIN> { [ Alt_L, Meta_L ] };
replace key <LCTL> { [ Super_L ] };
modifier_map Mod1 { <LWIN> };
modifier_map Mod4 { <LCTL> };
modifier_map Control { <LALT> };
};

520
nixos/xkb/symbols/cz Normal file
View File

@@ -0,0 +1,520 @@
// Keyboard layouts for Czechia.
default partial alphanumeric_keys
xkb_symbols "basic" {
// This layout conforms to a new Czech compromise standard
// designed to satisfy most Unix, Windows and Mac users.
// Originally by Kamil Toman <ktoman@email.cz>, 2001.
include "latin"
name[Group1]= "Czech";
key <TLDE> {[ semicolon, dead_abovering, grave, asciitilde ]};
key <AE01> {[ plus, 1, exclam, dead_tilde ]};
key <AE02> {[ ecaron, 2, at, dead_caron ]};
key <AE03> {[ scaron, 3, numbersign, dead_circumflex ]};
key <AE04> {[ ccaron, 4, dollar, dead_breve ]};
key <AE05> {[ rcaron, 5, percent, dead_abovering ]};
key <AE06> {[ zcaron, 6, asciicircum, dead_ogonek ]};
key <AE07> {[ yacute, 7, ampersand, dead_grave ]};
key <AE08> {[ aacute, 8, asterisk, dead_abovedot]};
key <AE09> {[ iacute, 9, braceleft, dead_acute ]};
key <AE10> {[ eacute, 0, braceright, dead_doubleacute ]};
key <AE11> {[ equal, percent, NoSymbol, dead_diaeresis ]};
key <AE12> {[dead_acute, dead_caron, dead_macron, dead_cedilla ]};
key <AD01> {[ q, Q, backslash, NoSymbol ]};
key <AD02> {[ w, W, bar, NoSymbol ]};
key <AD03> {[ e, E, EuroSign, NoSymbol ]};
key <AD04> {[ r, R, NoSymbol, NoSymbol ]};
key <AD05> {[ t, T, NoSymbol, NoSymbol ]};
key <AD06> {[ z, Z, NoSymbol, NoSymbol ]};
key <AD07> {[ u, U, NoSymbol, NoSymbol ]};
key <AD08> {[ i, I, NoSymbol, NoSymbol ]};
key <AD09> {[ o, O, NoSymbol, NoSymbol ]};
key <AD10> {[ p, P, NoSymbol, NoSymbol ]};
key <AD11> {[ uacute, slash, bracketleft, division ]};
key <AD12> {[parenright, parenleft, bracketright, multiply ]};
key <AC01> {[ a, A, asciitilde, NoSymbol ]};
key <AC02> {[ s, S, dstroke, NoSymbol ]};
key <AC03> {[ d, D, Dstroke, NoSymbol ]};
key <AC04> {[ f, F, bracketleft, NoSymbol ]};
key <AC05> {[ g, G, bracketright, NoSymbol ]};
key <AC06> {[ h, H, grave, NoSymbol ]};
key <AC07> {[ j, J, apostrophe, NoSymbol ]};
key <AC08> {[ k, K, lstroke, NoSymbol ]};
key <AC09> {[ l, L, Lstroke, NoSymbol ]};
key <AC10> {[ uring, quotedbl, dollar, NoSymbol ]};
key <AC11> {[ section, exclam, apostrophe, ssharp ]};
key <BKSL> {[dead_diaeresis, apostrophe, backslash, bar ]};
key <LSGT> {[ backslash, bar, slash, NoSymbol ]};
key <AB01> {[ y, Y, degree, NoSymbol ]};
key <AB02> {[ x, X, numbersign, NoSymbol ]};
key <AB03> {[ c, C, ampersand, NoSymbol ]};
key <AB04> {[ v, V, at, NoSymbol ]};
key <AB05> {[ b, B, braceleft, NoSymbol ]};
key <AB06> {[ n, N, braceright, NoSymbol ]};
key <AB07> {[ m, M, asciicircum, NoSymbol ]};
key <AB08> {[ comma, question, less, NoSymbol ]};
key <AB09> {[ period, colon, greater, NoSymbol ]};
key <AB10> {[ minus, underscore, asterisk, NoSymbol ]};
key <SPCE> {[ space, space, space, space ]};
include "level3(ralt_switch)"
};
xkb_symbols "bksl" {
// Put backslash on BKSL key (for when LSGT key is missing).
include "cz(basic)"
name[Group1]= "Czech (extra backslash)";
key <BKSL> {[ backslash, bar, slash, NoSymbol ]};
};
partial alphanumeric_keys
xkb_symbols "qwerty" {
// This layout represents the actual Czech keyboards;
// it complies with the symbols printed on the keys.
// Originally by Lukáš Mojžíš <lmojzis@grenames.cz>, 2011.
include "cz(basic)"
name[Group1]= "Czech (QWERTY)";
key <AE09> {[ iacute, 9, parenleft, dead_acute ]};
key <AE10> {[ eacute, 0, parenright, dead_doubleacute ]};
key <AD06> {[ y, Y, NoSymbol, NoSymbol ]};
key <AD11> {[ uacute, slash, bracketleft, braceleft ]};
key <AD12> {[ parenright, parenleft, bracketright, braceright ]};
key <AC10> {[ uring, quotedbl, semicolon, colon ]};
key <AC11> {[ section, exclam, apostrophe, ssharp ]};
key <AB01> {[ z, Z, degree, NoSymbol ]};
};
xkb_symbols "qwerty_bksl" {
include "cz(qwerty)"
name[Group1]= "Czech (QWERTY, extra backslash)";
key <BKSL> {[ backslash, bar, slash, NoSymbol ]};
};
partial alphanumeric_keys
xkb_symbols "winkeys" {
// This layout conforms (mostly) to the one in Windows, which differs
// slightly from the standard ČSN 36 9050, but it is printed on every
// physical keyboard currently on the market.
//
// Originally by Milos Kozák <milos.kozak@lejmr.com>, 2023.
include "cz(basic)"
name[Group1]= "Czech (QWERTZ, Windows)";
key <AE11> {[ equal, percent, minus, underscore ]};
key <AE12> {[ dead_acute, dead_caron, equal, plus ]};
key <AD11> {[ uacute, slash, bracketleft, braceleft ]};
key <AD12> {[ parenright, parenleft, bracketright, braceright ]};
key <AC10> {[ uring, quotedbl, semicolon, colon ]};
key <AC11> {[ section, exclam, apostrophe, quotedbl ]};
key <AB08> {[ comma, question, less, comma ]};
key <AB09> {[ period, colon, greater, period ]};
key <AB10> {[ minus, underscore, slash, question ]};
};
partial alphanumeric_keys
xkb_symbols "winkeys-qwerty" {
include "cz(winkeys)"
name[Group1]= "Czech (QWERTY, Windows)";
key <AD06> {[ y, Y, any, any ]};
key <AB01> {[ z, Z, degree, any ]};
};
partial alphanumeric_keys
xkb_symbols "qwerty-mac" {
// This layout corresponds to the Apple's Czech - QWERTY.
// 2018 by Jakub Jirutka <jakub@jirutka.cz>
include "latin"
name[Group1]= "Czech (QWERTY, Macintosh)";
key <TLDE> {[ less, greater, lessthanequal, greaterthanequal]};
key <AE01> {[ plus, 1, grave, notsign ]};
key <AE02> {[ ecaron, 2, at, enfilledcircbullet]};
key <AE03> {[ scaron, 3, numbersign, notequal ]};
key <AE04> {[ ccaron, 4, dollar, sterling ]};
key <AE05> {[ rcaron, 5, asciitilde, U25CA ]};
key <AE06> {[ zcaron, 6, asciicircum, dagger ]};
key <AE07> {[ yacute, 7, ampersand, paragraph ]};
key <AE08> {[ aacute, 8, asterisk, division ]};
key <AE09> {[ iacute, 9, braceleft, guillemotleft]};
key <AE10> {[ eacute, 0, braceright, guillemotright]};
key <AE11> {[ equal, percent, dead_abovering, dead_cedilla]};
key <AE12> {[dead_acute, dead_caron, dead_circumflex, dead_macron]};
key <AD01> {[ q, Q, NoSymbol, NoSymbol ]};
key <AD02> {[ w, W, eabovedot, Eabovedot ]};
key <AD03> {[ e, E, eogonek, Eogonek ]};
key <AD04> {[ r, R, EuroSign, registered ]};
key <AD05> {[ t, T, NoSymbol, trademark ]};
key <AD06> {[ y, Y, NoSymbol, NoSymbol ]};
key <AD07> {[ u, U, NoSymbol, NoSymbol ]};
key <AD08> {[ i, I, NoSymbol, NoSymbol ]};
key <AD09> {[ o, O, NoSymbol, NoSymbol ]};
key <AD10> {[ p, P, NoSymbol, NoSymbol ]};
key <AD11> {[ uacute, slash, bracketleft, less ]};
key <AD12> {[parenright, parenleft, bracketright, greater ]};
key <AC01> {[ a, A, aogonek, Aogonek ]};
key <AC02> {[ s, S, ssharp, U2211 ]};
key <AC03> {[ d, D, partialderivative, U2206 ]};
key <AC04> {[ f, F, NoSymbol, NoSymbol ]};
key <AC05> {[ g, G, NoSymbol, NoSymbol ]};
key <AC06> {[ h, H, leftsinglequotemark, leftdoublequotemark]};
key <AC07> {[ j, J, rightsinglequotemark, rightdoublequotemark]};
key <AC08> {[ k, K, NoSymbol, NoSymbol ]};
key <AC09> {[ l, L, lstroke, Lstroke ]};
key <AC10> {[ uring, quotedbl, semicolon, ellipsis ]};
key <AC11> {[ section, exclam, apostrophe, dead_tilde ]};
key <BKSL> {[dead_diaeresis, grave, dead_diaeresis, dead_doubleacute]};
key <LSGT> {[ backslash, bar, NoSymbol, NoSymbol ]};
key <AB01> {[ z, Z, zabovedot, Zabovedot ]};
key <AB02> {[ x, X, NoSymbol, NoSymbol ]};
key <AB03> {[ c, C, NoSymbol, copyright ]};
key <AB04> {[ v, V, NoSymbol, squareroot ]};
key <AB05> {[ b, B, NoSymbol, NoSymbol ]};
key <AB06> {[ n, N, singlelowquotemark, doublelowquotemark]};
key <AB07> {[ m, M, NoSymbol, NoSymbol ]};
key <AB08> {[ comma, question, less, lessthanequal]};
key <AB09> {[ period, colon, greater, greaterthanequal]};
key <AB10> {[ minus, underscore, endash, emdash ]};
key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys alternate_group
xkb_symbols "ucw" {
// This layout is meant to be used as the second group:
// it contains accented characters only, no 'latin' set.
// Originally by Milan Vancura <mvancura@suse.cz>, 2008.
name[Group1]= "Czech (UCW, only accented letters)";
key <AD01> {[ adiaeresis, Adiaeresis ]};
key <AD02> {[ ecaron, Ecaron ]};
key <AD03> {[ eacute, Eacute ]};
key <AD04> {[ rcaron, Rcaron ]};
key <AD05> {[ tcaron, Tcaron ]};
key <AD06> {[ yacute, Yacute ]};
key <AD07> {[ uring, Uring ]};
key <AD08> {[ iacute, Iacute ]};
key <AD09> {[ oacute, Oacute ]};
key <AD10> {[ odiaeresis, Odiaeresis ]};
key <AC01> {[ aacute, Aacute ]};
key <AC02> {[ scaron, Scaron ]};
key <AC03> {[ dcaron, Dcaron ]};
key <AC04> {[ ediaeresis, Ediaeresis ]};
key <AC05> {[ racute, Racute ]};
key <AC06> {[ uacute, Uacute ]};
key <AC07> {[ udiaeresis, Udiaeresis ]};
key <AC08> {[ ocircumflex, Ocircumflex ]};
key <AC09> {[ lcaron, Lcaron ]};
key <AB01> {[ zcaron, Zcaron ]};
key <AB02> {[ ssharp, U1E9E ]};
key <AB03> {[ ccaron, Ccaron ]};
key <AB04> {[ ccedilla, Ccedilla ]};
key <AB05> {[ ntilde, Ntilde ]};
key <AB06> {[ ncaron, Ncaron ]};
key <AB07> {[ lacute, Lacute ]};
};
partial alphanumeric_keys alternate_group
xkb_symbols "colemak-ucw" {
// UCW extension for a US Colemak layout.
// Originally by Marek Maskarinec <marek@mrms.cz>, 2022.
name[Group1]= "Czech (US, Colemak, UCW support)";
key <AD09> {[ yacute, Yacute ]};
key <AD08> {[ uring, Uring ]};
key <AC01> {[ aacute, Aacute ]};
key <AC02> {[ rcaron, Rcaron ]};
key <AC03> {[ scaron, Scaron ]};
key <AC04> {[ tcaron, Tcaron ]};
key <AC05> {[ dcaron, Dcaron ]};
key <AC06> {[ uacute, Uacute ]};
key <AC07> {[ ncaron, Ncaron ]};
key <AC08> {[ ecaron, Ecaron ]};
key <AC09> {[ iacute, Iacute ]};
key <AC10> {[ oacute, Oacute ]};
key <AB01> {[ zcaron, Zcaron ]};
key <AB03> {[ ccaron, Ccaron ]};
key <AB07> {[ eacute, Eacute ]};
};
partial alphanumeric_keys
xkb_symbols "dvorak-ucw" {
// US Dvorak layout extended with UCW,
// AltGr produces accented characters.
include "us(dvorak)"
name[Group1]= "Czech (US, Dvorak, UCW support)";
key <AD05> {[ y, Y, yacute, Yacute ]};
key <AD08> {[ c, C, ccaron, Ccaron ]};
key <AD09> {[ r, R, rcaron, Rcaron ]};
key <AC01> {[ a, A, aacute, Aacute ]};
key <AC02> {[ o, O, oacute, Oacute ]};
key <AC03> {[ e, E, ecaron, Ecaron ]};
key <AC04> {[ u, U, uring, Uring ]};
key <AC05> {[ i, I, iacute, Iacute ]};
key <AC06> {[ d, D, dcaron, Dcaron ]};
key <AC08> {[ t, T, tcaron, Tcaron ]};
key <AC09> {[ n, N, ncaron, Ncaron ]};
key <AC10> {[ s, S, scaron, Scaron ]};
key <AB03> {[ j, J, eacute, Eacute ]};
key <AB04> {[ k, K, uacute, Uacute ]};
key <AB10> {[ z, Z, zcaron, Zcaron ]};
include "level3(ralt_switch)"
};
// Phonetic layout with Russian letters on a Czech Qwerty keyboard.
// Originally by Pavel Sorejs <sorejs@gmail.com>, 2015.
partial alphanumeric_keys
xkb_symbols "rus" {
include "cz(qwerty)"
name[Group1]= "Russian (Czechia, phonetic)";
key <TLDE> {[ Cyrillic_io, Cyrillic_IO ]};
key <AE01> {[ plus, ampersand, 1, 1 ]};
key <AE02> {[ Cyrillic_hardsign, 2, 2, 2 ]};
key <AE03> {[ Cyrillic_sha, Cyrillic_SHA, 3, 3 ]};
key <AE04> {[ Cyrillic_che, Cyrillic_CHE, 4, 4 ]};
key <AE05> {[ Cyrillic_shcha, Cyrillic_SHCHA, 5, 5 ]};
key <AE06> {[ Cyrillic_zhe, Cyrillic_ZHE, 6, 6 ]};
key <AE07> {[ quotedbl, 4, 7, 7 ]};
key <AE08> {[ section, 5, 8, 8 ]};
key <AE09> {[ dollar, 6, 9, 9 ]};
key <AE10> {[ equal, 7, 0, 0 ]};
key <AE11> {[ percent, 8 ]};
key <AE12> {[ apostrophe, 9 ]};
key <AD01> {[ numerosign, 1, q, Q ]};
key <AD02> {[ Cyrillic_yu, Cyrillic_YU, w, W ]};
key <AD03> {[ Cyrillic_ie, Cyrillic_IE, e, E ]};
key <AD04> {[ Cyrillic_er, Cyrillic_ER, r, R ]};
key <AD05> {[ Cyrillic_te, Cyrillic_TE, t, T ]};
key <AD06> {[ Cyrillic_yeru, Cyrillic_YERU, y, Y ]};
key <AD07> {[ Cyrillic_u, Cyrillic_U, u, U ]};
key <AD08> {[ Cyrillic_i, Cyrillic_I, i, I ]};
key <AD09> {[ Cyrillic_o, Cyrillic_O, o, O ]};
key <AD10> {[ Cyrillic_pe, Cyrillic_PE, p, P ]};
key <AD11> {[ Cyrillic_e, Cyrillic_E, bracketleft, division ]};
key <AD12> {[ parenright, parenleft, bracketright, multiply ]};
key <AC01> {[ Cyrillic_a, Cyrillic_A, a, A ]};
key <AC02> {[ Cyrillic_es, Cyrillic_ES, s, S ]};
key <AC03> {[ Cyrillic_de, Cyrillic_DE, d, D ]};
key <AC04> {[ Cyrillic_ef, Cyrillic_EF, f, F ]};
key <AC05> {[ Cyrillic_ghe, Cyrillic_GHE, g, G ]};
key <AC06> {[ Cyrillic_ha, Cyrillic_HA, h, H ]};
key <AC07> {[ Cyrillic_shorti, Cyrillic_SHORTI, j, J ]};
key <AC08> {[ Cyrillic_ka, Cyrillic_KA, k, K ]};
key <AC09> {[ Cyrillic_el, Cyrillic_EL, l, L ]};
key <AC10> {[ Cyrillic_softsign, Cyrillic_SOFTSIGN, less, greater ]};
key <AC11> {[ semicolon, colon ]};
key <BKSL> {[ backslash, brokenbar ]};
key <LSGT> {[ bar, brokenbar ]};
key <AB01> {[ Cyrillic_ze, Cyrillic_ZE, z, Z ]};
key <AB02> {[ Cyrillic_ya, Cyrillic_YA, x, X ]};
key <AB03> {[ Cyrillic_tse, Cyrillic_TSE, c, C ]};
key <AB04> {[ Cyrillic_ve, Cyrillic_VE, v, V ]};
key <AB05> {[ Cyrillic_be, Cyrillic_BE, b, B ]};
key <AB06> {[ Cyrillic_en, Cyrillic_EN, n, N ]};
key <AB07> {[ Cyrillic_em, Cyrillic_EM, m, M ]};
key <AB08> {[ comma, question ]};
key <AB09> {[ period, exclam ]};
key <AB10> {[ minus, slash ]};
include "level3(ralt_switch)"
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/cz(sun_type6)"
};
xkb_symbols "prog" {
// Programmer keyboard -- a mix between the basic Czech and the basic US layout.
// The accented Czech letters are on the top row and on the upper levels of the
// corresponding letter. Punctuation is located like on a basic US layout.
//
// Originally by Viktor Grešák <vgresak@gmail.com>
// and Tomáš Hudec <Tommy.Hudec@gmail.com>, 2019.
name[Group1]="Czech (programming)";
key <TLDE> {[ grave, asciitilde ]};
key <AE01> {[ plus, 1, exclam, none ]};
key <AE02> {[ ecaron, 2, at, Ecaron ]};
key <AE03> {[ scaron, 3, numbersign, Scaron ]};
key <AE04> {[ ccaron, 4, dollar, Ccaron ]};
key <AE05> {[ rcaron, 5, percent, Rcaron ]};
key <AE06> {[ zcaron, 6, asciicircum, Zcaron ]};
key <AE07> {[ yacute, 7, ampersand, Yacute ]};
key <AE08> {[ aacute, 8, asterisk, Aacute ]};
key <AE09> {[ iacute, 9, parenleft, Iacute ]};
key <AE10> {[ eacute, 0, parenright, Eacute ]};
key <AE11> {[ equal, minus, underscore, U2212 ]};
key <AE12> {[ dead_acute, dead_caron, plusminus, notequal ]};
key <AD01> {[ q, Q ]};
key <AD02> {[ w, W ]};
key <AD03> {[ e, E ]};
key <AD04> {[ r, R ]};
key <AD05> {[ t, T, tcaron, Tcaron ]};
key <AD06> {[ y, Y ]};
key <AD07> {[ u, U ]};
key <AD08> {[ i, I ]};
key <AD09> {[ o, O, oacute, Oacute ]};
key <AD10> {[ p, P ]};
key <AD11> {[ bracketleft, braceleft, uacute, Uacute ]};
key <AD12> {[ bracketright, braceright ]};
key <AC01> {[ a, A ]};
key <AC02> {[ s, S ]};
key <AC03> {[ d, D, dcaron, Dcaron ]};
key <AC04> {[ f, F ]};
key <AC05> {[ g, G ]};
key <AC06> {[ h, H ]};
key <AC07> {[ j, J ]};
key <AC08> {[ k, K ]};
key <AC09> {[ l, L ]};
key <AC10> {[ semicolon, colon, uring, Uring ]};
key <AC11> {[ apostrophe, quotedbl, section ]};
key <BKSL> {[ backslash, bar, dead_diaeresis ]};
key <AB01> {[ z, Z ]};
key <AB02> {[ x, X ]};
key <AB03> {[ c, C ]};
key <AB04> {[ v, V ]};
key <AB05> {[ b, B ]};
key <AB06> {[ n, N, ncaron, Ncaron ]};
key <AB07> {[ m, M ]};
key <AB08> {[ comma, less, multiply ]};
key <AB09> {[ period, greater, division ]};
key <AB10> {[ slash, question, dead_abovedot ]};
key <COMP> {[ Menu, Multi_key ]};
include "level3(ralt_switch)"
};
hidden
xkb_symbols "typo" {
// Typographic symbols on the third and fourth levels.
// Originally by Viktor Grešák <vgresak@gmail.com>
// and Tomáš Hudec <Tommy.Hudec@gmail.com>, 2019.
key <TLDE> {[ any, any, singlelowquotemark, leftsinglequotemark ]};
key <AE01> {[ any, any, any, rightsinglequotemark ]};
key <AE11> {[ any, any, underscore, U2212 ]};
key <AD04> {[ any, any, permille, registered ]};
key <AD06> {[ any, any, leftarrow ]};
key <AD07> {[ any, any, downarrow, uparrow ]};
key <AD08> {[ any, any, rightarrow, UFB01 ]};
key <AD10> {[ any, any, minutes, seconds ]};
key <AC04> {[ any, any, UFB00, UFB05 ]};
key <AC06> {[ any, any, U2010, U2011 ]};
key <AC07> {[ any, any, guillemotright, guillemotleft ]};
key <AC08> {[ any, any, dagger, doubledagger ]};
key <AC09> {[ any, any, UFB02, UFB04 ]};
key <AC11> {[ any, any, any, UFB03 ]};
key <AB01> {[ any, any, degree, U2300 ]};
key <AB02> {[ any, any, multiply, U22C5 ]};
key <AB03> {[ any, any, ampersand, copyright ]};
key <AB04> {[ any, any, at, ordfeminine ]};
key <AB05> {[ any, any, enfilledcircbullet, enopencircbullet ]};
key <AB07> {[ any, any, U203A, U2039 ]};
key <AB08> {[ any, any, doublelowquotemark, leftdoublequotemark ]};
key <AB09> {[ any, any, ellipsis, rightdoublequotemark ]};
key <AB10> {[ any, any, endash, emdash ]};
key <SPCE> {[ space, space, space, nobreakspace ]};
};
xkb_symbols "prog_typo" {
// The Programmer and Typographic layouts combined.
include "cz(prog)"
include "cz(typo)"
name[Group1]="Czech (programming, typographic)";
};
xkb_symbols "coder" {
// A US layout with Czech characters under AltGr,
// for touch-typing programmers who need to write Czech occasionally.
// https://github.com/michalkahle/czech-coder-xkb
include "us"
name[Group1]= "Czech (coder)";
key <TLDE> {[ grave, asciitilde, semicolon, dead_abovering ]};
key <AE02> {[ 2, at, ecaron, Ecaron ]};
key <AE03> {[ 3, numbersign, scaron, Scaron ]};
key <AE04> {[ 4, dollar, ccaron, Ccaron ]};
key <AE05> {[ 5, percent, rcaron, Rcaron ]};
key <AE06> {[ 6, asciicircum, zcaron, Zcaron ]};
key <AE07> {[ 7, ampersand, yacute, Yacute ]};
key <AE08> {[ 8, asterisk, aacute, Aacute ]};
key <AE09> {[ 9, parenleft, iacute, Iacute ]};
key <AE10> {[ 0, parenright, eacute, Eacute ]};
key <AE12> {[ equal, plus, dead_acute, dead_caron ]};
key <AD03> {[ e, E, e, EuroSign ]};
key <AD11> {[ bracketleft, braceleft, uacute, Uacute ]};
key <AC10> {[ semicolon, colon, uring, Uring ]};
key <AC11> {[ apostrophe, quotedbl, section, quotedbl ]};
key <BKSL> {[ backslash, bar, dead_diaeresis, apostrophe ]};
include "level3(ralt_switch)"
};

1204
nixos/xkb/symbols/de Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,130 @@
//
//Copyright (c) 1996 Digital Equipment Corporation
//
//Permission is hereby granted, free of charge, to any person obtaining
//a copy of this software and associated documentation files (the
//"Software"), to deal in the Software without restriction, including
//without limitation the rights to use, copy, modify, merge, publish,
//distribute, sublicense, and sell copies of the Software, and to
//permit persons to whom the Software is furnished to do so, subject to
//the following conditions:
//
//The above copyright notice and this permission notice shall be included
//in all copies or substantial portions of the Software.
//
//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
//OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
//IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM,
//DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
//THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//Except as contained in this notice, the name of the Digital Equipment
//Corporation shall not be used in advertising or otherwise to promote
//the sale, use or other dealings in this Software without prior written
//authorization from Digital Equipment Corporation.
//
// HISTORY
// Log: lk,v
// Revision 1.2 1996/06/18 09:10:09 erik
// use flags correctly, assorted cleanups and consortium fixes
//
// Revision 1.1.2.2 1995/03/10 17:16:52 William_Walker
// Rename to avoid name conflicts with XKB stuff
// [1995/03/10 17:10:33 William_Walker]
//
// Revision 1.1.2.2 1994/10/31 15:22:00 William_Walker
// New experimental version.
// [1994/10/31 14:48:37 William_Walker]
//
// EndLog
//
// @(#)RCSfile: lk,v Revision: 1.2 (DEC) Date: 1996/01/24 12:14:58
//
// Symbols common to all the LK-style keyboards.
//
default xkb_symbols "common" {
// Modifier mappings
modifier_map Shift { Shift_L, Shift_R };
modifier_map Lock { Caps_Lock };
modifier_map Control { Control_L, Control_R };
modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
modifier_map Mod2 { Num_Lock };
modifier_map Mod3 { Scroll_Lock };
// Additional alphanumeric keys
key <LSGT> { [ less, greater ] };
key <LALT> { [ Alt_L, Meta_L ] };
// "Function" keys
key <FK01> { [ F1 ] };
key <FK02> { [ F2 ] };
key <FK03> { [ F3 ] };
key <FK04> { [ F4 ] };
key <FK05> { [ F5 ] };
key <FK06> { [ F6 ] };
key <FK07> { [ F7 ] };
key <FK08> { [ F8 ] };
key <FK09> { [ F9 ] };
key <FK10> { [ F10 ] };
key <FK11> { [ Escape, F11 ] };
key <FK12> { [ F12 ] };
key <FK13> { [ F13 ] };
key <FK14> { [ F14 ] };
key <FK17> { [ F17 ] };
key <FK18> { [ F18 ] };
key <FK19> { [ F19 ] };
key <FK20> { [ F20 ] };
// "Editing" keys
key <HELP> { [ Help ] };
key <DO> { [ Menu ] };
key <FIND> { [ Find ] };
key <INS> { [ Insert ] };
key <DELE> { [ Delete ] };
key <SELE> { [ Select ] };
key <PGUP> { [ Prior ] };
key <PGDN> { [ Next ] };
key <UP> { [ Up ] };
key <LEFT> { [ Left ] };
key <DOWN> { [ Down ] };
key <RGHT> { [ Right ] };
// "Keypad" keys
key <KPF1> {
type= "SHIFT+ALT",
symbols[Group1]=[ KP_F1,Pointer_EnableKeys ]
};
key <KPF2> { [ KP_F2 ] };
key <KPF3> { [ KP_F3 ] };
key <KPF4> { [ KP_F4 ] };
key <KPCO> { [ KP_Separator ] };
key <KPSU> { [ KP_Subtract ] };
key <KP7> { [ KP_7 ] };
key <KP8> { [ KP_8 ] };
key <KP9> { [ KP_9 ] };
key <KP4> { [ KP_4 ] };
key <KP5> { [ KP_5 ] };
key <KP6> { [ KP_6 ] };
key <KP1> { [ KP_1 ] };
key <KP2> { [ KP_2 ] };
key <KP3> { [ KP_3 ] };
key <KPEN> { [ KP_Enter ] };
key <KP0> { [ KP_0 ] };
key <KPDL> { [ KP_Decimal ] };
};
xkb_symbols "lk401" {
include "digital_vndr/lk(common)"
key <RALT> { [ Alt_R, Meta_R ] };
key <LCMP> { [ Multi_key ] };
key <RCMP> { [ Multi_key ] };
};

View File

@@ -0,0 +1,175 @@
//
//Copyright (c) 1996 Digital Equipment Corporation
//
//Permission is hereby granted, free of charge, to any person obtaining
//a copy of this software and associated documentation files (the
//"Software"), to deal in the Software without restriction, including
//without limitation the rights to use, copy, modify, merge, publish,
//distribute, sublicense, and sell copies of the Software, and to
//permit persons to whom the Software is furnished to do so, subject to
//the following conditions:
//
//The above copyright notice and this permission notice shall be included
//in all copies or substantial portions of the Software.
//
//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
//OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
//IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM,
//DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
//THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//Except as contained in this notice, the name of the Digital Equipment
//Corporation shall not be used in advertising or otherwise to promote
//the sale, use or other dealings in this Software without prior written
//authorization from Digital Equipment Corporation.
//
// HISTORY
// Log
// Revision 1.2 1996/06/18 09:10:12 erik
// use flags correctly, assorted cleanups and consortium fixes
//
// Revision 1.1.6.4 1995/12/19 19:55:58 William_Walker
// Update to XKB 0.65
// [1995/12/17 02:37:07 William_Walker]
//
// Revision 1.1.6.3 1995/10/25 21:01:09 William_Walker
// Make sure we use DIN 2137 and VT510 Spec for Group Semantics
// [1995/10/23 15:49:03 William_Walker]
//
// Revision 1.1.6.2 1995/08/07 17:40:40 William_Walker
// Upgrade XKB to protocol 0.62 (dual submit from decx11)
// [1995/08/06 14:06:32 William_Walker]
//
// Revision 1.1.2.7 1995/08/05 15:25:57 William_Walker
// Sync up with Erik's pool.
// [1995/08/03 20:17:15 William_Walker]
//
// Revision 1.1.2.6 1995/06/27 12:18:25 William_Walker
// Add LK201 and LK450 support as well as TW and DP variants.
// [1995/06/26 20:29:52 William_Walker]
//
// Revision 1.1.2.5 1995/06/08 17:10:28 William_Walker
// Make RALT default to Mode_switch
// [1995/06/08 17:08:50 William_Walker]
//
// Revision 1.1.2.4 1995/06/05 19:24:14 William_Walker
// New file. I love keymaps.
// [1995/06/05 18:17:03 William_Walker]
//
// EndLog
//
// @(#)RCSfile: pc Revision: /main/4 (DEC) Date: 1996/01/24 12:15:02
//
// **************************************************************
// * *
// * The symbols common to all Extended PC layouts. *
// * *
// **************************************************************
xkb_symbols "pc" {
// Modifier mappings
//
modifier_map Shift { Shift_L, Shift_R };
modifier_map Lock { Caps_Lock };
modifier_map Control { Control_L, Control_R };
modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
modifier_map Mod3 { Mode_switch };
modifier_map Mod4 { Num_Lock };
modifier_map Mod5 { Scroll_Lock };
// Common keys
//
key <BKSP> { [ BackSpace, Delete ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <CAPS> { [ Caps_Lock ] };
key <RTRN> { [ Return ] };
key <LFSH> { [ Shift_L ] };
key <RTSH> { [ Shift_R ] };
key <LCTL> { [ Control_L ] };
key <LALT> { [ Alt_L, Meta_L ] };
key <SPCE> { [ space ] };
key <RALT> { [ Mode_switch ] };
key <RCTL> { [ Control_R ] };
// "Function" keys
//
key <ESC> { [ Escape ] };
key <FK01> { [ F1 ] };
key <FK02> { [ F2 ] };
key <FK03> { [ F3 ] };
key <FK04> { [ F4 ] };
key <FK05> { [ F5 ] };
key <FK06> { [ F6 ] };
key <FK07> { [ F7 ] };
key <FK08> { [ F8 ] };
key <FK09> { [ F9 ] };
key <FK10> { [ F10 ] };
key <FK11> { [ F11 ] };
key <FK12> { [ F12 ] };
key <PRSC> {
type= "PC_ALT_LEVEL2",
symbols[Group1]= [ Print, Sys_Req ]
};
key <SCLK> { [ Scroll_Lock ] };
key <PAUS> {
type= "PC_CONTROL_LEVEL2",
symbols[Group1]= [ Pause, Break ]
};
// "Editing" keys
//
key <INS> { [ Insert ] };
key <HOME> { [ Home ] };
key <PGUP> { [ Prior ] };
key <DELE> { [ Delete ] };
key <END> { [ End ] };
key <PGDN> { [ Next ] };
key <UP> { [ Up ] };
key <LEFT> { [ Left ] };
key <DOWN> { [ Down ] };
key <RGHT> { [ Right ] };
// "Keypad" keys
//
key <NMLK> {
type= "SHIFT+ALT",
symbols[Group1]= [ Num_Lock,Pointer_EnableKeys]
};
key <KPDV> { [ KP_Divide ] };
key <KPMU> { [ KP_Multiply ] };
key <KPSU> { [ KP_Subtract ] };
key <KP7> { [ KP_Home, KP_7 ] };
key <KP8> { [ KP_Up, KP_8 ] };
key <KP9> { [ KP_Prior, KP_9 ] };
key <KPAD> { [ KP_Add ] };
key <KP4> { [ KP_Left, KP_4 ] };
key <KP5> { [ KP_5 ] };
key <KP6> { [ KP_Right, KP_6 ] };
key <KP1> { [ KP_End, KP_1 ] };
key <KP2> { [ KP_Down, KP_2 ] };
key <KP3> { [ KP_Next, KP_3 ] };
key <KPEN> { [ KP_Enter ] };
key <KP0> { [ KP_Insert, KP_0 ] };
key <KPDL> { [ KP_Delete, KP_Decimal ] };
// Key to support Lock-Down Modifier descriptions for R5
//
key <LDM> { [ NoSymbol ] };
};
xkb_symbols "pc104" {
include "digital_vndr/pc(pc)"
replace key <LALT> { [ Alt_L ] };
key <LWIN> { [ Meta_L ] };
key <RWIN> { [ Meta_R ] };
key <MENU> { [ Menu ] };
};

View File

@@ -0,0 +1,211 @@
//
//Copyright (c) 1996 Digital Equipment Corporation
//
//Permission is hereby granted, free of charge, to any person obtaining
//a copy of this software and associated documentation files (the
//"Software"), to deal in the Software without restriction, including
//without limitation the rights to use, copy, modify, merge, publish,
//distribute, sublicense, and sell copies of the Software, and to
//permit persons to whom the Software is furnished to do so, subject to
//the following conditions:
//
//The above copyright notice and this permission notice shall be included
//in all copies or substantial portions of the Software.
//
//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
//OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
//IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM,
//DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
//THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//Except as contained in this notice, the name of the Digital Equipment
//Corporation shall not be used in advertising or otherwise to promote
//the sale, use or other dealings in this Software without prior written
//authorization from Digital Equipment Corporation.
//
// HISTORY
// Log
// Revision 1.2 1996/06/18 09:10:16 erik
// use flags correctly, assorted cleanups and consortium fixes
//
// Revision 1.1.6.3 1995/12/19 19:56:37 William_Walker
// Update to XKB 0.65
// [1995/12/17 02:37:44 William_Walker]
//
// Revision 1.1.6.2 1995/10/25 21:01:25 William_Walker
// Add pc104-key support
// [1995/10/23 15:46:27 William_Walker]
//
// Revision 1.1.2.7 1995/06/27 12:18:40 William_Walker
// Add LK201 and LK450 support as well as TW and DP variants.
// [1995/06/26 20:30:33 William_Walker]
//
// Revision 1.1.2.6 1995/06/09 20:55:20 William_Walker
// Add VT105 layout support and ISO group support
// [1995/06/09 20:43:05 William_Walker]
//
// Revision 1.1.2.5 1995/06/08 21:05:49 William_Walker
// Use ISO_Next_Group instead of grouplock
// [1995/06/08 21:03:56 William_Walker]
//
// Revision 1.1.2.4 1995/06/05 19:25:00 William_Walker
// New file. I love keymaps.
// [1995/06/05 18:17:54 William_Walker]
//
// EndLog
//
// @(#)RCSfile: us Revision: /main/4 (DEC) Date: 1996/01/24 12:15:05
//
// **************************************************************
// * *
// * Symbols for en_US.ISO8859-1 - English for U.S. *
// * *
// **************************************************************
xkb_symbols "us" {
key <AE00> { [ grave, asciitilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, dollar ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, asciicircum ] };
key <AE07> { [ 7, ampersand ] };
key <AE08> { [ 8, asterisk ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
key <AD03> { [ e, E ] };
key <AD04> { [ r, R ] };
key <AD05> { [ t, T ] };
key <AD06> { [ y, Y ] };
key <AD07> { [ u, U ] };
key <AD08> { [ i, I ] };
key <AD09> { [ o, O ] };
key <AD10> { [ p, P ] };
key <AD11> { [ bracketleft, braceleft ] };
key <AD12> { [ bracketright, braceright ] };
key <AC01> { [ a, A ] };
key <AC02> { [ s, S ] };
key <AC03> { [ d, D ] };
key <AC04> { [ f, F ] };
key <AC05> { [ g, G ] };
key <AC06> { [ h, H ] };
key <AC07> { [ j, J ] };
key <AC08> { [ k, K ] };
key <AC09> { [ l, L ] };
key <AC10> { [ semicolon, colon ] };
key <AC11> { [ apostrophe, quotedbl ] };
key <BKSL> { [ backslash, bar ] };
key <AB01> { [ z, Z ] };
key <AB02> { [ x, X ] };
key <AB03> { [ c, C ] };
key <AB04> { [ v, V ] };
key <AB05> { [ b, B ] };
key <AB06> { [ n, N ] };
key <AB07> { [ m, M ] };
key <AB08> { [ comma, less ] };
key <AB09> { [ period, greater ] };
key <AB10> { [ slash, question ] };
};
// **************************************************************
// * *
// * The VT105 layouts *
// * *
// * NOTES: The typewriter (TW) and dataprocessing (DP) keys *
// * for the VT108 layout are identical for the US. *
// * *
// **************************************************************
xkb_symbols "vt105-tw" {
include "digital_vndr/us(us)"
include "digital_vndr/vt(vt105)"
override key <AE03> {
symbols[Group1]= [ 3, numbersign ],
symbols[Group2]= [ sterling ]
};
key <AB00> { [ less, greater ] };
};
xkb_symbols "vt105-dp" { include "digital_vndr/us(vt105-tw)" };
xkb_symbols "vt105" { include "digital_vndr/us(vt105-tw)" };
// **************************************************************
// * *
// * The VT108 layouts - based upon the LK401-AA *
// * *
// * NOTES: The typewriter (TW) and dataprocessing (DP) keys *
// * for the VT108 layout are identical for the US. *
// * *
// **************************************************************
xkb_symbols "vt108-tw" {
include "digital_vndr/us(us)"
include "digital_vndr/vt(vt108)"
replace key <LCMP> { [ Multi_key ] };
override key <AE03> {
symbols[Group1]= [ 3, numbersign ],
symbols[Group2]= [ sterling ]
};
key <AB00> { [ less, greater ] };
};
xkb_symbols "vt108-dp" { include "digital_vndr/us(vt108-tw)" };
xkb_symbols "vt108" { include "digital_vndr/us(vt108-tw)" };
// **************************************************************
// * *
// * The "unix" layouts - based upon the LK421-AA *
// * *
// * NOTES: The "unix" keyboard emits the same keycodes as the *
// * LK401, but is a shorter keyboard that uses an *
// * "extend" key. To make life easier, we map <AE00> *
// * to Escape so users do not have to press Extend+F11 *
// * to get Escape. *
// * *
// **************************************************************
xkb_symbols "unix" {
include "digital_vndr/us(vt108)"
override key <AE00> { [ Escape ] };
override key <AB00> { [ grave, asciitilde ] };
};
// **************************************************************
// * *
// * The "pcxal" layouts *
// * *
// * NOTES: The pcxal layouts are pretty much standardized for *
// * the US and use a 101-key keyboard. *
// * *
// **************************************************************
xkb_symbols "pcxalga" {
include "digital_vndr/pc(pc)"
include "digital_vndr/us(us)"
replace key <RALT> { [ Alt_R, Meta_R ] };
};
xkb_symbols "pcxal" { include "digital_vndr/us(pcxalga)" };
xkb_symbols "pcxalaa" { include "digital_vndr/us(pcxalga)" };
xkb_symbols "pcxalfa" { include "digital_vndr/us(pcxalga)" };
xkb_symbols "pcxalka" { include "digital_vndr/us(pcxalga)" };
xkb_symbols "lk44x" { include "digital_vndr/us(pcxalga)" };
// **************************************************************
// * *
// * The "pc104" layouts. *
// * *
// **************************************************************
xkb_symbols "pc104" {
include "digital_vndr/pc(pc104)"
include "digital_vndr/us(us)"
replace key <RALT> { [ Alt_R ] };
};

View File

@@ -0,0 +1,158 @@
//
//Copyright (c) 1996 Digital Equipment Corporation
//
//Permission is hereby granted, free of charge, to any person obtaining
//a copy of this software and associated documentation files (the
//"Software"), to deal in the Software without restriction, including
//without limitation the rights to use, copy, modify, merge, publish,
//distribute, sublicense, and sell copies of the Software, and to
//permit persons to whom the Software is furnished to do so, subject to
//the following conditions:
//
//The above copyright notice and this permission notice shall be included
//in all copies or substantial portions of the Software.
//
//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
//OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
//IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM,
//DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
//THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//Except as contained in this notice, the name of the Digital Equipment
//Corporation shall not be used in advertising or otherwise to promote
//the sale, use or other dealings in this Software without prior written
//authorization from Digital Equipment Corporation.
//
// HISTORY
// Log
// Revision 1.2 1996/06/18 09:10:19 erik
// use flags correctly, assorted cleanups and consortium fixes
//
// Revision 1.1.6.2 1995/12/19 19:56:39 William_Walker
// Update to XKB 0.65
// [1995/12/17 02:37:47 William_Walker]
//
// Revision 1.1.2.5 1995/07/11 21:20:50 William_Walker
// Make RALT act as RALT
// [1995/07/11 21:18:28 William_Walker]
//
// Revision 1.1.2.4 1995/06/27 12:18:41 William_Walker
// Add LK201 and LK450 support as well as TW and DP variants.
// [1995/06/26 20:30:37 William_Walker]
//
// Revision 1.1.2.3 1995/06/09 20:55:21 William_Walker
// Add VT105 layout support and ISO group support
// [1995/06/09 20:43:09 William_Walker]
//
// Revision 1.1.2.2 1995/06/05 19:25:04 William_Walker
// New file. I love keymaps.
// [1995/06/05 18:17:58 William_Walker]
//
// EndLog
//
// @(#)RCSfile: vt Revision: /main/3 (DEC) Date: 1996/01/24 12:15:08
//
xkb_symbols "vt105" {
// Modifier mappings
//
modifier_map Shift { Shift_L, Shift_R };
modifier_map Lock { Caps_Lock };
modifier_map Control { Control_L, Control_R };
modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
modifier_map Mod3 { Mode_switch };
// Common keys
//
key <BKSP> { [ Delete ] };
key <TAB> { [ Tab ] };
key <RTRN> { [ Return ] };
key <LCTL> { [ Control_L ] };
key <CAPS> { [ Caps_Lock ] };
key <LFSH> { [ Shift_L ] };
key <RTSH> { [ Shift_R ] };
key <LCMP> { [ Alt_L, Meta_L ] };
key <SPCE> { [ space ] };
// "Function" keys
//
key <FK01> { [ F1 ] };
key <FK02> { [ F2 ] };
key <FK03> { [ F3 ] };
key <FK04> { [ F4 ] };
key <FK05> { [ F5 ] };
key <FK06> { [ F6 ] };
key <FK07> { [ F7 ] };
key <FK08> { [ F8 ] };
key <FK09> { [ F9 ] };
key <FK10> { [ F10 ] };
key <FK11> { [ Escape, F11 ] };
key <FK12> { [ F12 ] };
key <FK13> { [ F13 ] };
key <FK14> { [ F14 ] };
key <FK17> { [ F17 ] };
key <FK18> { [ F18 ] };
key <FK19> { [ F19 ] };
key <FK20> { [ F20 ] };
// "Editing" keys
//
key <HELP> { [ Help ] };
key <DO> { [ Menu ] };
key <FIND> { [ Find ] };
key <INS> { [ Insert ] };
key <DELE> { [ apLineDel ] };
key <SELE> { [ Select ] };
key <PGUP> { [ Prior ] };
key <PGDN> { [ Next ] };
key <UP> { [ Up ] };
key <LEFT> { [ Left ] };
key <DOWN> { [ Down ] };
key <RGHT> { [ Right ] };
// "Keypad" keys
//
key <KPF1> {
type= "SHIFT+ALT",
symbols[Group1]= [ KP_F1,Pointer_EnableKeys ]
};
key <KPF2> { [ KP_F2 ] };
key <KPF3> { [ KP_F3 ] };
key <KPF4> { [ KP_F4 ] };
key <KP7> { [ KP_7 ] };
key <KP8> { [ KP_8 ] };
key <KP9> { [ KP_9 ] };
key <KPSU> { [ KP_Subtract ] };
key <KP4> { [ KP_4 ] };
key <KP5> { [ KP_5 ] };
key <KP6> { [ KP_6 ] };
key <KPCO> { [ KP_Separator ] };
key <KP1> { [ KP_1 ] };
key <KP2> { [ KP_2 ] };
key <KP3> { [ KP_3 ] };
key <KPEN> { [ KP_Enter ] };
key <KP0> { [ KP_0 ] };
key <KPDL> { [ KP_Decimal ] };
// Key to support Lock-Down Modifier descriptions for R5
//
key <LDM> { [ NoSymbol ] };
};
xkb_symbols "vt108" {
include "digital_vndr/vt(vt105)"
replace key <LCMP> { [ Mode_switch ] };
key <LALT> { [ Alt_L, Meta_L ] };
key <RALT> { [ Alt_R, Meta_R ] };
key <RCMP> { [ Multi_key ] };
};

96
nixos/xkb/symbols/dk Normal file
View File

@@ -0,0 +1,96 @@
// Keyboard layouts for Denmark.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type2)"
name[Group1]="Danish";
key <TLDE> {[ onehalf, section, threequarters, paragraph ]};
key <AE11> {[ plus, question, plusminus, questiondown ]};
key <AE12> {[dead_acute, dead_grave, bar, brokenbar ]};
key <AC10> {[ ae, AE, dead_acute, dead_doubleacute]};
key <AC11> {[ oslash, Oslash, dead_circumflex, dead_caron ]};
key <BKSL> {[apostrophe, asterisk, dead_doubleacute, multiply ]};
key <LSGT> {[ less, greater, backslash, notsign ]};
include "kpdl(comma)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "dk(basic)"
name[Group1]="Danish (no dead keys)";
key <AE12> {[ acute, grave, bar, ogonek ]};
key <AD11> {[ aring, Aring, diaeresis, degree ]};
key <AD12> {[ diaeresis, asciicircum, asciitilde, macron ]};
key <AC07> {[ j, J, ezh, EZH ]};
key <AC10> {[ ae, AE, acute, doubleacute ]};
key <AC11> {[ oslash, Oslash, asciicircum, caron ]};
key <BKSL> {[apostrophe, asterisk, doubleacute, multiply ]};
key <AB08> {[ comma, semicolon, cedilla, ogonek ]};
key <AB09> {[ period, colon, periodcentered, abovedot ]};
key <AB10> {[ minus, underscore, endash, emdash ]};
};
partial alphanumeric_keys
xkb_symbols "winkeys" {
include "dk(basic)"
name[Group1] = "Danish (Windows)";
include "eurosign(5)"
};
partial alphanumeric_keys
xkb_symbols "mac" {
include "dk(basic)"
name[Group1]= "Danish (Macintosh)";
key <AB10> {[ minus, underscore, hyphen, macron ]};
key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
include "kpdl(dot)"
};
partial alphanumeric_keys
xkb_symbols "mac_nodeadkeys" {
include "dk(mac)"
name[Group1]= "Danish (Macintosh, no dead keys)";
key <AE12> {[ acute, grave, bar, ogonek ]};
key <AD12> {[diaeresis, asciicircum, asciitilde, dead_macron ]};
};
partial alphanumeric_keys
xkb_symbols "dvorak" {
include "no(dvorak)"
name[Group1]= "Danish (Dvorak)";
key <AD12> {[ asciitilde, asciicircum, dead_diaeresis, dead_tilde ]};
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/dk(sun_type6)"
};

183
nixos/xkb/symbols/dz Normal file
View File

@@ -0,0 +1,183 @@
// Keyboard layouts for Algeria.
// Tamazight in Latin characters.
// Original author: Noureddine LOUAHEDJ <louahedj@noureddine.me>
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 │ 6 │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃
// │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ A Æ │ Z Â │ E ¢ │ R Ṛ │ T Ṭ │ Y Ÿ │ U Û │ I Î │ O Ɛ │ P Ô │ ¨ ˚ │ £ Ø ┃Entrée ┃
// ┃Tab ↹ ┃ a æ │ z â │ e € │ r ṛ │ t ṭ │ y ÿ │ u û │ i î │ o ɛ │ p ô │ ^ ~ │ $ ø ┃ ⏎ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ Q Ä │ S Ṣ │ D Ḍ │ F │ G Ǧ │ H Ḥ │ J Ü │ K Ï │ L Ŀ │ M Ö │ % Ù │ µ ̄ ┃ ┃
// ┃Maj ⇬ ┃ q ä │ s ṣ │ d ḍ │ f │ g ǧ │ h ḥ │ j ü │ k ï │ l ŀ │ m ö │ ù ' │ * ` ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ > ≥ │ W “ │ X ” │ C Č │ V Ɣ │ B ↑ │ N → │ ? … │ . . │ / │ § ┃ ┃
// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c č │ v ɣ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃
// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
default partial alphanumeric_keys
xkb_symbols "azerty-oss" {
include "fr(oss)"
name[Group1]="Berber (Algeria, Latin)";
key <AD02> {[ z, Z, U1E93, U1E92 ]}; // z Z ẓ Ẓ
key <AD04> {[ r, R, U1E5B, U1E5A ]}; // r R ṛ Ṛ
key <AD05> {[ t, T, U1E6D, U1E6C ]}; // t T ṭ Ṭ
key <AD09> {[ o, O, U025B, U0190 ]}; // o O ɛ Ɛ
key <AC02> {[ s, S, U1E63, U1E62 ]}; // s s ṣ Ṣ
key <AC03> {[ d, D, U1E0D, U1E0C ]}; // d D ḍ Ḍ
key <AC05> {[ g, G, U01E7, U01E6 ]}; // g G ǧ Ǧ
key <AC06> {[ h, H, U1E25, U1E24 ]}; // h H ḥ Ḥ
key <AB03> {[ c, C, U010D, U010C ]}; // c C č Č
key <AB04> {[ v, V, U0263, U0194 ]}; // v V ɣ Ɣ
include "level3(ralt_switch)"
};
// Kabyle keyboard with dead keys.
// 2020 by Louis Gostiaux <louis.gostiaux@free.fr>
partial alphanumeric_keys
xkb_symbols "azerty-deadkeys" {
include "fr"
name[Group1]= "Kabyle (AZERTY, with dead keys)";
key <AD01> {[ a, A, U025B, U0190 ]}; // a A ɛ Ɛ
key <AD02> {[ z, Z, U2D63 ]}; // ⵣ
key <AC01> {[ q, Q, U0263, U0194 ]}; // q Q ɣ Ɣ
key <AB01> {[ w, W, U02B7 ]}; // ʷ
// With dead belowdot for ḍ, ṭ, ẓ, ḥ, and dead caron for č and ǧ.
key <AB08> {[ semicolon, period, dead_belowdot, dead_caron]};
include "level3(ralt_switch)"
};
// Kabyle keyboard, US international with dead keys.
// 2020 by Louis Gostiaux <louis.gostiaux@free.fr>
partial alphanumeric_keys
xkb_symbols "qwerty-gb-deadkeys" {
include "gb(intl)"
name[Group1]= "Kabyle (QWERTY, UK, with dead keys)";
key <AD01> {[ q, Q, U0263, U0194 ]}; // q Q ɣ Ɣ
key <AD02> {[ w, W, U02B7 ]}; // ʷ
key <AC01> {[ a, A, U025B, U0190 ]}; // a A ɛ Ɛ
key <AB01> {[ z, Z, U2D63 ]}; // ⵣ
key <AB09> {[ period, greater, dead_belowdot, dead_caron]};
include "level3(ralt_switch)"
};
// Kabyle keyboard, US international with dead keys.
// 2020 by Louis Gostiaux <louis.gostiaux@free.fr>
partial alphanumeric_keys
xkb_symbols "qwerty-us-deadkeys" {
include "us(intl)"
name[Group1]= "Kabyle (QWERTY, US, with dead keys)";
key <AD01> {[ q, Q, U0263, U0194 ]}; // q Q ɣ Ɣ
key <AD02> {[ w, W, U02B7 ]}; // ʷ
key <AC01> {[ a, A, U025B, U0190 ]}; // a A ɛ Ɛ
key <AB01> {[ z, Z, U2D63 ]}; // ⵣ
key <AB09> {[ period, greater, dead_belowdot, dead_caron]};
include "level3(ralt_switch)"
};
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ̆ │ 4 — │ 5 │ 6 │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃
// │ ² ¹ │ & ̌ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ │ ⵥ │ ⵦ │ │ ⵟ │ │ │ │ ⵧ │ │ │ £ Ø ┃Entrée ┃
// ┃Tab ↹ ┃ ⴰ │ ⵣ ⵤ │ ⴻ │ │ ⵜ │ ⵢ │ ⵓ │ ⵉ │ ⵄ │ ⵃ │ ⵯ │ $ ø ┃ ⏎ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ ⵈ │ ⵚ │ ⴺ │ │ ⴵ ⴶ │ ⵁ │ ⵋ │ ⴿ │ │ │ % Ù │ µ ¯ ┃ ┃
// ┃Maj ⇬ ┃ ⵇ │ ⵙ │ ⴷ │ ⴼ │ ⴳ ⴴ │ ⵀ ⵂ │ ⵊ ⵌ │ ⴽ ⴾ │ ⵍ │ ⵎ │ ù ´ │ * ` ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ > ≥ │ │ ⵆ │ ⵞ │ ⵗ ⵠ │ ⴲ │ ⵐ │ ? … │ . ⋅ │ / │ § ┃ ┃
// ┃Shift ⇧┃ < ≤ │ ⵡ │ ⵅ │ ⵛ │ ⵖ ⵘ │ ⴱ ⵒ │ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ␣ ┃ ┃ ┃ ┃
// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace ┃AltGr ⇮┃Menu ┃Ctrl ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
partial alphanumeric_keys
xkb_symbols "ber" {
name[Group1]="Berber (Algeria, Tifinagh)";
key <TLDE> {[ twosuperior, threesuperior, onesuperior, dead_cedilla ]}; // ² ³ ¹ ¸
key <AE01> {[ ampersand, 1, dead_caron, dead_ogonek ]}; // & 1 ˇ ̨
key <AE02> {[ eacute, 2, asciitilde, Eacute ]}; // é 2 ~ É
key <AE03> {[ quotedbl, 3, numbersign, dead_breve ]}; // " 3 # ˘
key <AE04> {[ apostrophe, 4, braceleft, U2014 ]}; // ' 4 { — (tiret cadratin)
key <AE05> {[ parenleft, 5, bracketleft, U2013 ]}; // ( 5 [ (tiret demi-cadratin)
key <AE06> {[ minus, 6, bar, U2011 ]}; // - 6 | (tiret insécable)
key <AE07> {[ egrave, 7, grave, Egrave ]}; // è 7 ` È
key <AE08> {[ underscore, 8, backslash, trademark ]}; // _ 8 \ ™
key <AE09> {[ ccedilla, 9, asciicircum, Ccedilla ]}; // ç 9 ^ Ç
key <AE10> {[ agrave, 0, at, Agrave ]}; // à 0 @ À
key <AE11> {[ parenright, degree, bracketright,notequal]}; // ) ° ] ≠
key <AE12> {[ equal, plus, braceright, plusminus]}; // = + } ±
key <AD01> {[ U2D30 ]}; // ⴰ
key <AD02> {[ U2D63, U2D65, U2D64 ]}; // ⵣ ⵥ ⵤ
key <AD03> {[ U2D3B, U2D66 ]}; // ⴻ ⵦ
key <AD04> {[ U2D54, U2D55 ]}; //
key <AD05> {[ U2D5C, U2D5F, U2D5D ]}; // ⵜ ⵟ
key <AD06> {[ U2D62 ]}; // ⵢ
key <AD07> {[ U2D53 ]}; // ⵓ
key <AD08> {[ U2D49 ]}; // ⵉ
key <AD09> {[ U2D44, U2D67 ]}; // ⵄ ⵧ
key <AD10> {[ U2D43 ]}; // ⵃ
key <AD11> {[ U2D6F ]}; // ⵯ
key <AD12> {[ dollar, sterling, oslash, Oslash]}; // $ £ ø Ø
key <AC01> {[ U2D47, U2D48 ]}; // ⵇ ⵈ
key <AC02> {[ U2D59, U2D5A ]}; // ⵙ ⵚ
key <AC03> {[ U2D37, U2D39, U2D38, U2D3A ]}; // ⴷ
key <AC04> {[ U2D3C ]}; // ⴼ
key <AC05> {[ U2D33, U2D35, U2D34, U2D36 ]}; // ⴳ ⴵ ⴴ ⴶ
key <AC06> {[ U2D40, U2D41, U2D42 ]}; // ⵀ ⵁ ⵂ
key <AC07> {[ U2D4A, U2D4B, U2D4C ]}; // ⵊ ⵋ ⵌ
key <AC08> {[ U2D3D, U2D3F, U2D3E ]}; // ⴽ ⴿ ⴾ
key <AC09> {[ U2D4D ]}; // ⵍ
key <AC10> {[ U2D4E ]}; // ⵎ
key <AC11> {[ ugrave, percent, dead_acute, Ugrave ]}; // ù % ' Ù
key <BKSL> {[ asterisk, mu, dead_grave, dead_macron ]}; // * µ ` ̄
key <LSGT> {[ less, greater, lessthanequal, greaterthanequal ]}; // < > ≤ ≥
key <AB01> {[ U2D61 ]}; // ⵡ
key <AB02> {[ U2D45, U2D46 ]}; // ⵅ ⵆ
key <AB03> {[ U2D5B, U2D5E ]}; // ⵛ ⵞ
key <AB04> {[ U2D56, U2D57, U2D58, U2D60 ]}; // ⵖ ⵗ ⵘ ⵠ
key <AB05> {[ U2D31, U2D32, U2D52 ]}; // ⴱ ⴲ ⵒ
key <AB06> {[ U2D4F, U2D50, U2D51 ]}; //
key <AB07> {[ comma, question, questiondown, U2026 ]}; // , ? ¿ …
key <AB08> {[ semicolon, period, multiply, U22C5 ]}; // ; . ×
key <AB09> {[ colon, slash, division, U2215 ]}; // : / ÷
key <AB10> {[ exclam, section, exclamdown, U2212 ]}; // ! § ¡
include "level3(ralt_switch)"
};
// Arabic AZERTY with modern Latin digits
partial alphanumeric_keys
xkb_symbols "ar" {
include "ara(azerty)"
name[Group1]="Arabic (Algeria)";
};

126
nixos/xkb/symbols/ee Normal file
View File

@@ -0,0 +1,126 @@
// Keyboard layouts for Estonia.
// Estonian keyboard layout, by Ville Hallik <ville@linux.ee>.
// This layout conforms to both EVS8:1993 and EVS8:2000 standards.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type4)"
name[Group1]="Estonian";
key <TLDE> {[ dead_caron, dead_tilde, U2022,periodcentered]}; // bullet
key <AE03> {[ 3, numbersign, sterling, sterling ]};
key <AE04> {[ 4, currency, dollar, dollar ]};
key <AE05> {[ 5, percent, EuroSign, threeeighths ]};
key <AE11> {[ plus, question, backslash, questiondown ]};
key <AE12> {[ dead_acute, dead_grave, grave, dead_cedilla ]};
key <AD02> {[ w, W, ssharp, Greek_SIGMA ]};
key <AD11> {[ udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ]};
key <AD12> {[ otilde, Otilde, section, dead_macron ]};
key <AC02> {[ s, S, scaron, Scaron ]};
key <AC10> {[ odiaeresis, Odiaeresis, dead_acute, dead_doubleacute ]};
key <AC11> {[ adiaeresis, Adiaeresis, asciicircum, dead_circumflex ]};
key <BKSL> {[ apostrophe, asterisk, onehalf, dead_breve ]};
key <AB01> {[ z, Z, zcaron, Zcaron ]};
key <AB02> {[ x, X, guillemotright, guillemotleft ]};
key <AB08> {[ comma, semicolon, less, multiply ]};
key <AB09> {[ period, colon, greater, division ]};
key <AB10> {[ minus, underscore, bar, dead_abovedot]};
include "eurosign(e)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "ee(basic)"
name[Group1] = "Estonian (no dead keys)";
key <TLDE> {[asciicircum, asciitilde ]};
key <AE12> {[ apostrophe, grave, grave, dagger ]};
key <AD11> {[ udiaeresis, Udiaeresis, diaeresis, degree ]};
key <AD12> {[ otilde, Otilde, section, macron ]};
key <AC07> {[ j, J, ezh, EZH ]};
key <AC10> {[ odiaeresis, Odiaeresis, acute, doubleacute ]};
key <AC11> {[ adiaeresis, Adiaeresis, asciicircum, caron ]};
key <BKSL> {[ apostrophe, asterisk, onehalf, breve ]};
key <AB10> {[ minus, underscore, ellipsis, abovedot ]};
};
// The US Dvorak layout with Estonian letters on the third level.
partial alphanumeric_keys
xkb_symbols "dvorak" {
include "us(dvorak)"
name[Group1] = "Estonian (Dvorak)";
key <AE03> {[ 3, numbersign, sterling ]};
key <AE04> {[ 4, dollar, section, currency ]};
key <AE08> {[ 8, asterisk, onehalf ]};
key <AC01> {[ a, A, adiaeresis, Adiaeresis ]};
key <AC02> {[ o, O, otilde, Otilde ]};
key <AC03> {[ e, E, odiaeresis, Odiaeresis ]};
key <AC04> {[ u, U, udiaeresis, Udiaeresis ]};
key <AC10> {[ s, S, scaron, Scaron ]};
key <AB10> {[ z, Z, zcaron, Zcaron ]};
include "kpdl(comma)"
include "eurosign(5)"
include "level3(ralt_switch)"
};
// The basic US layout with Estonian letters on the third level,
// originally by Elan Ruusamäe <glen@delfi.ee>.
partial alphanumeric_keys
xkb_symbols "us" {
include "us(basic)"
name[Group1] = "Estonian (US)";
key <AE03> {[ 3, numbersign, sterling, sterling ]};
key <AD01> {[ q, Q, otilde, Otilde ]};
key <AD07> {[ u, U, udiaeresis, Udiaeresis ]};
key <AD09> {[ o, O, odiaeresis, Odiaeresis ]};
key <AD10> {[ p, P, otilde, Otilde ]};
key <AD11> {[ bracketleft, braceleft, udiaeresis, Udiaeresis ]};
key <AD12> {[ bracketright, braceright, otilde, Otilde ]};
key <AC01> {[ a, A, adiaeresis, Adiaeresis ]};
key <AC02> {[ s, S, scaron, Scaron ]};
key <AC03> {[ d, D, odiaeresis, Odiaeresis ]};
key <AC04> {[ f, F, udiaeresis, Udiaeresis ]};
key <AC10> {[ semicolon, colon, odiaeresis, Odiaeresis ]};
key <AC11> {[ apostrophe, quotedbl, adiaeresis, Adiaeresis ]};
key <AB01> {[ z, Z, zcaron, Zcaron ]};
key <AB02> {[ x, X, otilde, Otilde ]};
key <AB03> {[ c, C, cent, cent ]};
include "eurosign(5)"
include "eurosign(e)"
include "level3(ralt_switch)"
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/ee(sun_type6)"
};

70
nixos/xkb/symbols/eg Normal file
View File

@@ -0,0 +1,70 @@
// Keyboard layouts for Egypt.
default
xkb_symbols "basic" {
include "ara(basic)"
name[Group1]= "Arabic (Egypt)";
};
// EXTRAS:
// Coptic-language layout, based on https://coptic-dictionary.org,
// with added diacritics.
xkb_symbols "cop" {
name[Group1]= "Coptic";
key <TLDE> { [ U0307, U0300 ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, dollar ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, asciicircum ] };
key <AE07> { [ 7, ampersand ] };
key <AE08> { [ 8, asterisk ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ U0305, minus, underscore ] };
key <AE12> { [ U0308, U2E17, equal, plus ] };
key <AD01> { [ U2C91, U2C90 ] };
key <AD02> { [ U2CB1, U2CB0 ] };
key <AD03> { [ U2C89, U2C88 ] };
key <AD04> { [ U2CA3, U2CA2 ] };
key <AD05> { [ U2CA7, U2CA6 ] };
key <AD06> { [ U2CAF, U2CAE ] };
key <AD07> { [ U2CA9, U2CA8 ] };
key <AD08> { [ U2C93, U2C92 ] };
key <AD09> { [ U2C9F, U2C9E ] };
key <AD10> { [ U2CA1, U2CA0 ] };
key <AD11> { [ U03E3, U03E2 ] };
key <AD12> { [ bracketleft, bracketright ] };
key <AC01> { [ U2C81, U2C80 ] };
key <AC02> { [ U2CA5, U2CA4 ] };
key <AC03> { [ U2C87, U2C86 ] };
key <AC04> { [ U03E5, U03E4 ] };
key <AC05> { [ U2C85, U2C84 ] };
key <AC06> { [ U03E9, U03E8 ] };
key <AC07> { [ U03EB, U03EA ] };
key <AC08> { [ U2C95, U2C94 ] };
key <AC09> { [ U2C97, U2C96 ] };
key <AC10> { [ U03E7, U03E6 ] };
key <AC11> { [ U2CC9, U2CC8 ] };
key <BKSL> { [ U0304, U0323 ] };
key <AB01> { [ U2C8D, U2C8C ] };
key <AB02> { [ U2C9D, U2C9C ] };
key <AB03> { [ U2CAD, U2CAC ] };
key <AB04> { [ U2CAB, U2CAA ] };
key <AB05> { [ U2C83, U2C82 ] };
key <AB06> { [ U2C9B, U2C9A ] };
key <AB07> { [ U2C99, U2C98 ] };
key <AB08> { [ U03ED, U03EC ] };
key <AB09> { [ U03EF, U03EE ] };
key <AB10> { [ U2C8F, U2C8E ] };
};

5
nixos/xkb/symbols/empty Normal file
View File

@@ -0,0 +1,5 @@
default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
// #UNREGISTERED
name[Group1]= "Empty";
};

146
nixos/xkb/symbols/epo Normal file
View File

@@ -0,0 +1,146 @@
// Esperanto keyboard maps -- "Ekverto"
// Ekverto B ("basic") (2006-12-02)
// Benno Schulenberg (Beno Sĥilenberĥ) <bensberg@justemail.net>
// Chusslove Illich (Ĉaslavo Iliĉo) <caslav.ilic@gmx.net>
default partial alphanumeric_keys
xkb_symbols "basic" {
include "us(basic)"
name[Group1]= "Esperanto";
key <AE05> { [ 5, percent, EuroSign, EuroSign ] };
key <AD01> { [ scircumflex, Scircumflex, q, Q ] };
key <AD02> { [ gcircumflex, Gcircumflex, w, W ] };
key <AD06> { [ ubreve, Ubreve, y, Y ] };
key <AD09> { [ o, O, braceleft, braceleft ] };
key <AD10> { [ p, P, braceright, braceright ] };
key <AD11> { [ jcircumflex, Jcircumflex, bracketleft, braceleft ] };
key <AD12> { [ hcircumflex, Hcircumflex, bracketright, braceright ] };
key <AC01> { [ a, A, leftsinglequotemark, NoSymbol ] };
key <AC02> { [ s, S, rightsinglequotemark, NoSymbol ] };
key <AC03> { [ d, D, leftdoublequotemark, NoSymbol ] };
key <AC04> { [ f, F, rightdoublequotemark, NoSymbol ] };
key <AB02> { [ ccircumflex, Ccircumflex, x, X ] };
key <AB06> { [ n, N, endash, endash ] };
key <AB07> { [ m, M, emdash, emdash ] };
key <AB08> { [ comma, less, guillemotleft, U2039 ] }; // «
key <AB09> { [ period, greater, guillemotright, U203A ] }; // »
include "level3(ralt_switch)"
};
// Ekverto A ("legacy") (2004-01-10)
// Chusslove Illich (Ĉaslavo Iliĉo) <caslav.ilic@gmx.net>
partial alphanumeric_keys
xkb_symbols "legacy" {
name[Group1]= "Esperanto (legacy)";
key.type[Group1] = "FOUR_LEVEL";
key <TLDE> { [ grave, asciitilde, NoSymbol, NoSymbol ] };
key <AE01> { [ 1, exclam, NoSymbol, NoSymbol ] };
key <AE02> { [ 2, quotedbl, NoSymbol, NoSymbol ] };
key <AE03> { [ 3, numbersign, NoSymbol, NoSymbol ] };
key <AE04> { [ 4, dollar, NoSymbol, NoSymbol ] };
key <AE05> { [ 5, percent, NoSymbol, NoSymbol ] };
key <AE06> { [ 6, apostrophe, NoSymbol, NoSymbol ] };
key <AE07> { [ 7, ampersand, NoSymbol, NoSymbol ] };
key <AE08> { [ 8, asterisk, NoSymbol, NoSymbol ] };
key <AE09> { [ 9, parenleft, NoSymbol, NoSymbol ] };
key <AE10> { [ 0, parenright, NoSymbol, NoSymbol ] };
key <AE11> { [ minus, underscore, NoSymbol, NoSymbol ] };
key <AE12> { [ equal, plus, NoSymbol, NoSymbol ] };
key <AB08> { [ comma, semicolon, NoSymbol, NoSymbol ] };
key <AB09> { [ period, colon, NoSymbol, NoSymbol ] };
key <AB10> { [ slash, question, NoSymbol, NoSymbol ] };
key <AD11> { [ bracketleft, braceleft, NoSymbol, NoSymbol ] };
key <AD12> { [ bracketright, braceright, NoSymbol, NoSymbol ] };
key <BKSL> { [ backslash, bar, NoSymbol, NoSymbol ] };
key <LSGT> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
key <AD01> { [ scircumflex, Scircumflex, at, NoSymbol ] };
key <AD02> { [ jcircumflex, Jcircumflex, asciicircum, NoSymbol ] };
key <AD03> { [ e, E, EuroSign, NoSymbol ] };
key <AD04> { [ r, R, emdash, NoSymbol ] };
key <AD05> { [ t, T, endash, NoSymbol ] };
key <AD06> { [ gcircumflex, Gcircumflex, NoSymbol, NoSymbol ] };
key <AD07> { [ u, U, NoSymbol, NoSymbol ] };
key <AD08> { [ i, I, NoSymbol, NoSymbol ] };
key <AD09> { [ o, O, NoSymbol, NoSymbol ] };
key <AD10> { [ p, P, NoSymbol, NoSymbol ] };
key <AC01> { [ a, A, less, NoSymbol ] };
key <AC02> { [ s, S, greater, NoSymbol ] };
key <AC03> { [ d, D, leftdoublequotemark, NoSymbol ] };
key <AC04> { [ f, F, rightdoublequotemark, NoSymbol ] };
key <AC05> { [ g, G, NoSymbol, NoSymbol ] };
key <AC06> { [ h, H, NoSymbol, NoSymbol ] };
key <AC07> { [ j, J, NoSymbol, NoSymbol ] };
key <AC08> { [ k, K, NoSymbol, NoSymbol ] };
key <AC09> { [ l, L, NoSymbol, NoSymbol ] };
key <AC10> { [ ubreve, Ubreve, NoSymbol, NoSymbol ] };
key <AC11> { [ hcircumflex, Hcircumflex, NoSymbol, NoSymbol ] };
key <AB01> { [ z, Z, leftsinglequotemark, NoSymbol ] };
key <AB02> { [ ccircumflex, Ccircumflex, rightsinglequotemark, NoSymbol ] };
key <AB03> { [ c, C, NoSymbol, NoSymbol ] };
key <AB04> { [ v, V, NoSymbol, NoSymbol ] };
key <AB05> { [ b, B, NoSymbol, NoSymbol ] };
key <AB06> { [ n, N, NoSymbol, NoSymbol ] };
key <AB07> { [ m, M, NoSymbol, NoSymbol ] };
include "level3(ralt_switch)"
};
// Add the Esperanto supersigned letters to their related keys on a Qwerty keyboard.
// This is a generic "component" that is not used by the other layouts in this file,
// but is meant to be applied to any Qwerty or Azerty or Qwertz layout. If you have
// any questions, ask J. Pablo Fernández <pupeno@pupeno.com>.
partial
xkb_symbols "qwerty" {
key <AB03> { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] };
key <AC05> { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] };
key <AC06> { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] };
key <AC07> { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] };
key <AC02> { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] };
key <AD07> { [ NoSymbol, NoSymbol, ubreve, Ubreve ] };
};
// Add the Esperanto supersigned letters to their related keys in a
// Dvorak layout. Similar comment as above applies.
partial
xkb_symbols "dvorak" {
key <AD08> { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] };
key <AD07> { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] };
key <AC07> { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] };
key <AB03> { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] };
key <AC10> { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] };
key <AC04> { [ NoSymbol, NoSymbol, ubreve, Ubreve ] };
};
// Add the Esperanto supersigned letters to their related keys in a
// Colemak layout. Similar comment as above applies.
partial
xkb_symbols "colemak" {
key <AB03> { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] };
key <AD05> { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] };
key <AC06> { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] };
key <AD06> { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] };
key <AC03> { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] };
key <AD08> { [ NoSymbol, NoSymbol, ubreve, Ubreve ] };
};

250
nixos/xkb/symbols/es Normal file
View File

@@ -0,0 +1,250 @@
// Keyboard layouts for Spain.
// Modified for a real Spanish keyboard by Jon Tombs.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type4)"
name[Group1]="Spanish";
key <TLDE> { [ masculine, ordfeminine, backslash, backslash ] };
key <AE01> { [ 1, exclam, bar, exclamdown ] };
key <AE03> { [ 3, periodcentered, numbersign, sterling ] };
key <AE04> { [ 4, dollar, asciitilde, dollar ] };
key <AE11> { [apostrophe, question, backslash, questiondown ] };
key <AE12> { [exclamdown, questiondown, dead_cedilla, dead_ogonek] };
key <AD11> { [dead_grave, dead_circumflex, bracketleft, dead_abovering ] };
key <AD12> { [ plus, asterisk, bracketright, dead_macron ] };
key <AC10> { [ ntilde, Ntilde, dead_tilde, dead_doubleacute ] };
key <AC11> { [dead_acute, dead_diaeresis, braceleft, dead_caron ] };
key <BKSL> { [ ccedilla, Ccedilla, braceright, dead_breve ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "winkeys" {
include "es(basic)"
name[Group1]="Spanish (Windows)";
include "eurosign(5)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "es(basic)"
name[Group1]="Spanish (no dead keys)";
key <AE12> { [exclamdown, questiondown, cedilla, ogonek ] };
key <AD11> { [ grave, asciicircum, bracketleft, degree ] };
key <AD12> { [ plus, asterisk, bracketright, macron ] };
key <AC07> { [ j, J, ezh, EZH ] };
key <AC10> { [ ntilde, Ntilde, asciitilde, doubleacute ] };
key <AC11> { [ acute, diaeresis, braceleft, caron ] };
key <BKSL> { [ ccedilla, Ccedilla, braceright, breve ] };
key <AB10> { [ minus, underscore, ellipsis, abovedot ] };
};
// Spanish Dvorak mapping (note R-H exchange)
partial alphanumeric_keys
xkb_symbols "dvorak" {
name[Group1]="Spanish (Dvorak)";
key <TLDE> {[ masculine, ordfeminine, backslash, degree ]};
key <AE01> {[ 1, exclam, bar, onesuperior ]};
key <AE02> {[ 2, quotedbl, at, twosuperior ]};
key <AE03> {[ 3, periodcentered, numbersign, threesuperior ]};
key <AE04> {[ 4, dollar, asciitilde, onequarter ]};
key <AE05> {[ 5, percent, brokenbar, fiveeighths ]};
key <AE06> {[ 6, ampersand, notsign, threequarters ]};
key <AE07> {[ 7, slash, onehalf, seveneighths ]};
key <AE08> {[ 8, parenleft, oneeighth, threeeighths ]};
key <AE09> {[ 9, parenright, asciicircum ]};
key <AE10> {[ 0, equal, grave, dead_doubleacute ]};
key <AE11> {[ apostrophe, question, dead_macron, dead_ogonek ]};
key <AE12> {[ exclamdown, questiondown, dead_breve, dead_abovedot ]};
key <AD01> {[ period, colon, less, guillemotleft ]};
key <AD02> {[ comma, semicolon, greater, guillemotright ]};
key <AD03> {[ ntilde, Ntilde, lstroke, Lstroke ]};
key <AD04> {[ p, P, paragraph ]};
key <AD05> {[ y, Y, yen ]};
key <AD06> {[ f, F, tslash, Tslash ]};
key <AD07> {[ g, G, dstroke, Dstroke ]};
key <AD08> {[ c, C, cent, copyright ]};
key <AD09> {[ h, H, hstroke, Hstroke ]};
key <AD10> {[ l, L, sterling ]};
key <AD11> {[ dead_grave, dead_circumflex, bracketleft, dead_caron ]};
key <AD12> {[ plus, asterisk, bracketright, plusminus ]};
key <AC01> {[ a, A, ae, AE ]};
key <AC02> {[ o, O, oslash, Oslash ]};
key <AC03> {[ e, E, EuroSign ]};
key <AC04> {[ u, U, aring, Aring ]};
key <AC05> {[ i, I, oe, OE ]};
key <AC06> {[ d, D, eth, ETH ]};
key <AC07> {[ r, R, registered, trademark ]};
key <AC08> {[ t, T, thorn, THORN ]};
key <AC09> {[ n, N, eng, ENG ]};
key <AC10> {[ s, S, ssharp, section ]};
key <AC11> {[ dead_acute, dead_diaeresis, braceleft, dead_tilde ]};
key <BKSL> {[ ccedilla, Ccedilla, braceright, dead_cedilla ]};
key <LSGT> {[ less, greater, guillemotleft, guillemotright ]};
key <AB01> {[ minus, underscore, hyphen, macron ]};
key <AB02> {[ q, Q, currency ]};
key <AB03> {[ j, J ]};
key <AB04> {[ k, K, kra ]};
key <AB05> {[ x, X, multiply, division ]};
key <AB06> {[ b, B ]};
key <AB07> {[ m, M, mu ]};
key <AB08> {[ w, W ]};
key <AB09> {[ v, V ]};
key <AB10> {[ z, Z ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "cat" {
include "es(basic)"
name[Group1]="Catalan (Spain, with middle-dot L)";
key <AC09> { [ l, L, 0x1000140, 0x100013F ] };
};
partial alphanumeric_keys
xkb_symbols "ast" {
include "es(basic)"
name[Group1]="Asturian (Spain, with bottom-dot H and L)";
key <AC06> { [ h, H, 0x1001E25, 0x1001E24 ] };
key <AC09> { [ l, L, 0x1001E37, 0x1001E36 ] };
};
partial alphanumeric_keys
xkb_symbols "olpc" {
// #HW-SPECIFIC
// http://wiki.laptop.org/go/OLPC_Spanish_Keyboard
include "us(basic)"
name[Group1]="Spanish";
key <AE00> { [ masculine, ordfeminine ] };
key <AE01> { [ 1, exclam, bar ] };
key <AE02> { [ 2, quotedbl, at ] };
key <AE03> { [ 3, dead_grave, numbersign, grave ] };
key <AE05> { [ 5, percent, asciicircum, dead_circumflex ] };
key <AE06> { [ 6, ampersand, notsign ] };
key <AE07> { [ 7, slash, backslash ] };
key <AE08> { [ 8, parenleft ] };
key <AE09> { [ 9, parenright ] };
key <AE10> { [ 0, equal ] };
key <AE11> { [ apostrophe, question ] };
key <AE12> { [ exclamdown, questiondown ] };
key <AD03> { [ e, E, EuroSign ] };
key <AD11> { [ dead_acute, dead_diaeresis, acute, dead_abovering ] };
key <AD12> { [ bracketleft, braceleft ] };
key <AC10> { [ ntilde, Ntilde ] };
key <AC11> { [ plus, asterisk, dead_tilde ] };
key <AC12> { [ bracketright, braceright, section ] };
key <AB08> { [ comma, semicolon ] };
key <AB09> { [ period, colon ] };
key <AB10> { [ minus, underscore ] };
key <I219> { [ less, greater, ISO_Next_Group ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "olpcm" {
// #HW-SPECIFIC
// Mechanical (non-membrane) OLPC Spanish keyboard layout.
// See: http://wiki.laptop.org/go/OLPC_Spanish_Non-membrane_Keyboard
include "us(basic)"
name[Group1]="Spanish";
key <AE00> { [ questiondown, exclamdown, backslash ] };
key <AE01> { [ 1, exclam, bar ] };
key <AE02> { [ 2, quotedbl, at ] };
key <AE03> { [ 3, dead_grave, numbersign, grave ] };
key <AE04> { [ 4, dollar, asciitilde, dead_tilde ] };
key <AE05> { [ 5, percent, asciicircum, dead_circumflex ] };
key <AE06> { [ 6, ampersand, notsign ] };
key <AE07> { [ 7, slash, backslash ] }; // no '\' label on olpcm, leave for compatibility
key <AE08> { [ 8, parenleft, masculine ] };
key <AE09> { [ 9, parenright, ordfeminine ] };
key <AE10> { [ 0, equal ] };
key <AE11> { [ apostrophe, question ] };
key <AD03> { [ e, E, EuroSign ] };
key <AD11> { [ dead_acute, dead_diaeresis, dead_abovering, acute ] };
key <AD12> { [ plus, asterisk ] };
key <AC10> { [ ntilde, Ntilde ] };
// no AC11 or AC12 on olpcm
key <AB08> { [ comma, semicolon ] };
key <AB09> { [ period, colon ] };
key <AB10> { [ minus, underscore ] };
key <AA02> { [ less, greater ] };
key <AA06> { [ bracketleft, braceleft, ccedilla, Ccedilla ] };
key <AA07> { [ bracketright, braceright ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "deadtilde" {
include "es(basic)"
name[Group1]="Spanish (dead tilde)";
key <AE04> { [ 4, dollar, dead_tilde, dollar ] };
key <AC10> { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] };
};
partial alphanumeric_keys
xkb_symbols "olpc2" {
// #HW-SPECIFIC
// Modified variant of US International layout, specifically for Peru
// Contact: Sayamindu Dasgupta <sayamindu@laptop.org>
include "us(olpc)"
name[Group1]="Spanish";
key <AE03> { [ 3, numbersign, dead_grave, dead_grave] }; // combining grave
key <I236> { [ XF86Start ] };
include "level3(ralt_switch)"
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/es(sun_type6)"
};

73
nixos/xkb/symbols/et Normal file
View File

@@ -0,0 +1,73 @@
// Keyboard layouts for Ethiopia.
// Designed as a part of OLPC project.
//
// 2007 Sergey Udaltsov <svu@gnome.org>
default partial alphanumeric_keys
xkb_symbols "basic" {
include "et(olpc)"
name[Group1]="Amharic";
};
partial alphanumeric_keys
xkb_symbols "olpc" {
// #HW-SPECIFIC
name[Group1]="Amharic";
key <AE01> {[ U1369, U1372 ]}; // 1
key <AE02> {[ U136a, U1373 ]}; // 2
key <AE03> {[ U136b, U1374 ]}; // 3
key <AE04> {[ U136c, U1375 ]}; // 4
key <AE05> {[ U136d, U1376 ]}; // 5
key <AE06> {[ U136e, U1377 ]}; // 6
key <AE07> {[ U136f, U1378 ]}; // 7
key <AE08> {[ U1370, U1379 ]}; // 8
key <AE09> {[ U1371, U137a ]}; // 9
key <AE10> {[ U137b, U137c ]}; // 0
key <AE11> {[ minus, underscore ]}; // -_
key <AE12> {[ equal, plus ]}; // =+
key <AD01> {[ U1240, U1250 ]}; // q
key <AD02> {[ U12C8, none ]}; // w
key <AD03> {[ dead_e, dead_E ]};
key <AD04> {[ U1228, none ]}; // r
key <AD05> {[ U1270, U1320 ]}; // t
key <AD06> {[ U12E8, none ]}; // y
key <AD07> {[ dead_u, dead_U ]};
key <AD08> {[ dead_i, dead_I ]};
key <AD09> {[ dead_o, dead_O ]};
key <AD10> {[ U1350, U1330 ]}; // p
key <AD11> {[ U1340, U1338 ]}; // [
key <AD12> {[ U1328, U1280 ]}; // ]
key <AC01> {[ dead_a, dead_A ]};
key <AC02> {[ U1230, U1220 ]}; // s
key <AC03> {[ U12F0, U12F8 ]}; // d
key <AC04> {[ U1348, none ]}; // f
key <AC05> {[ U1308, U1318 ]}; // g
key <AC06> {[ U1200, U1210 ]}; // h
key <AC07> {[ U1300, none ]}; // j
key <AC08> {[ U12A8, U12B8 ]}; // k
key <AC09> {[ U1208, none ]}; // l
key <AC10> {[ U1362, U1361 ]}; // :
key <AC11> {[ U1366, U1365 ]}; // '
key <BKSL> {[ none, U2010 ]}; // \
key <AB01> {[ U12D8, U12E0 ]}; // z
key <AB02> {[ U12A0, U12D0 ]}; // x
key <AB03> {[ U1278, dead_capital_schwa ]};
key <AB04> {[ U1238, U1268 ]}; // v
key <AB05> {[ U1260, none ]}; // b
key <AB06> {[ U1290, U1298 ]}; // n
key <AB07> {[ U1218, none ]}; // m
key <AB08> {[ U1363, none ]}; // <
key <AB09> {[ U1364, none ]}; // >
key <AB10> {[ U1367, question ]}; // ?
include "group(olpc)"
};

64
nixos/xkb/symbols/eu Normal file
View File

@@ -0,0 +1,64 @@
// Keyboard layout for Western Europe.
// Letters and symbols from Western European languages on levels three and four
// of a basic American layout. Based on <https://eurkey.steffen.bruentjen.eu>.
// Copyright 2012 Steffen Bruentjen (eurkey (at) steffen dot bruentjen dot de)
default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
name[Group1] = "EurKEY (US)";
key <TLDE> {[ grave, asciitilde, dead_grave, dead_tilde ]};
key <AE01> {[ 1, exclam, exclamdown, onesuperior ]};
key <AE02> {[ 2, at, ordfeminine, twosuperior ]};
key <AE03> {[ 3, numbersign, masculine, threesuperior ]};
key <AE04> {[ 4, dollar, sterling, yen ]};
key <AE05> {[ 5, percent, EuroSign, cent ]};
key <AE06> {[ 6, asciicircum, dead_circumflex, dead_caron ]};
key <AE07> {[ 7, ampersand, dead_abovering, dead_macron ]};
key <AE08> {[ 8, asterisk, doublelowquotemark, singlelowquotemark ]};
key <AE09> {[ 9, parenleft, leftdoublequotemark, leftsinglequotemark ]};
key <AE10> {[ 0, parenright, rightdoublequotemark, rightsinglequotemark ]};
key <AE11> {[ minus, underscore, endash, emdash ]};
key <AE12> {[ equal, plus, multiply, division ]};
key <AD01> {[ q, Q, ae, AE ]};
key <AD02> {[ w, W, aring, Aring ]};
key <AD03> {[ e, E, ediaeresis, Ediaeresis ]};
key <AD04> {[ r, R, yacute, Yacute ]};
key <AD05> {[ t, T, thorn, THORN ]};
key <AD06> {[ y, Y, ydiaeresis, Ydiaeresis ]};
key <AD07> {[ u, U, udiaeresis, Udiaeresis ]};
key <AD08> {[ i, I, idiaeresis, Idiaeresis ]};
key <AD09> {[ o, O, odiaeresis, Odiaeresis ]};
key <AD10> {[ p, P, oe, OE ]};
key <AD11> {[ bracketleft, braceleft, guillemotleft, U2039 ]}; //
key <AD12> {[ bracketright, braceright, guillemotright, U203A ]}; //
key <BKSL> {[ backslash, bar, notsign, brokenbar ]};
key <AC01> {[ a, A, adiaeresis, Adiaeresis ]};
key <AC02> {[ s, S, ssharp, section ]};
key <AC03> {[ d, D, eth, ETH ]};
key <AC04> {[ f, F, egrave, Egrave ]};
key <AC05> {[ g, G, eacute, Eacute ]};
key <AC06> {[ h, H, ugrave, Ugrave ]};
key <AC07> {[ j, J, uacute, Uacute ]};
key <AC08> {[ k, K, U0133, U0132 ]}; // ij, IJ
key <AC09> {[ l, L, oslash, Oslash ]};
key <AC10> {[ semicolon, colon, degree, periodcentered ]};
key <AC11> {[ apostrophe, quotedbl, dead_acute, dead_diaeresis ]};
key <AB01> {[ z, Z, agrave, Agrave ]};
key <AB02> {[ x, X, aacute, Aacute ]};
key <AB03> {[ c, C, ccedilla, Ccedilla ]};
key <AB04> {[ v, V, igrave, Igrave ]};
key <AB05> {[ b, B, iacute, Iacute ]};
key <AB06> {[ n, N, ntilde, Ntilde ]};
key <AB07> {[ m, M, dead_greek, Multi_key ]};
key <AB08> {[ comma, less, ograve, Ograve ]};
key <AB09> {[ period, greater, oacute, Oacute ]};
key <AB10> {[ slash, question, questiondown, U2026 ]}; // …
include "level3(ralt_switch)"
};

View File

@@ -0,0 +1,31 @@
// Most keyboards have the EuroSign engraved on the E key
// EuroSign on E, level 3
partial
xkb_symbols "e" {
key <AD03> { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] };
};
// EuroSign on E, level 4
// Alternative to eurosing(e) to keep 3rd level symbol.
partial
xkb_symbols "E" {
key <AD03> { [ NoSymbol, NoSymbol, NoSymbol, EuroSign ] };
};
// Many Apple keyboards have the EuroSign engraved on the 2 key
partial
xkb_symbols "2" {
key <AE02> { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] };
};
// Some keyboards have the EuroSign engraved on the 4 key
partial
xkb_symbols "4" {
key <AE04> { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] };
};
// Many keyboards have the EuroSign engraved on the 5 key
partial
xkb_symbols "5" {
key <AE05> { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] };
};

359
nixos/xkb/symbols/fi Normal file
View File

@@ -0,0 +1,359 @@
// Keyboard layouts for Finland.
// SFS 5966 / Kotoistus keymap created by Troy Korjuslommi
// Classic keymap based on traditional by Marko Myllynen
// Eliminate deadkeys alternative sent by Linus Torvalds
default partial alphanumeric_keys
xkb_symbols "kotoistus" {
// Official keymap for Finland based on SFS 5966:2019 standard
//
// This keymap implements all the functionality of Annex 1
// of the standard and additionally defines the following to
// allow entering these characters with keyboards without LSGT.
//
// AE08+4 : U+003C LESS-THAN SIGN (less)
// AE09+4 : U+003E GREATER-THAN SIGN (greater)
// AD08+4 : U+007C VERTICAL LINE (bar)
//
// Annex 3 of the standard is implemented in fi_FI.UTF-8/Compose.
//
// This keymap implements regular space in position "A-3" of the
// standard and implements NARROW NO-BREAK SPACE (U+202F) in A-4.
//
// The following definitions are also included to allow entering
// Greek letters and currency symbols with the libX11 sequences.
//
// AC08+4 : dead_greek
// AC09+4 : dead_currency
name[Group1]="Finnish";
key <TLDE> { [ section, onehalf, dead_stroke, NoSymbol ] };
key <AE01> { [ 1, exclam, NoSymbol, exclamdown ] };
key <AE02> { [ 2, quotedbl, at, rightdoublequotemark ] };
key <AE03> { [ 3, numbersign, sterling, guillemotright ] };
key <AE04> { [ 4, currency, dollar, guillemotleft ] };
key <AE05> { [ 5, percent, permille, leftdoublequotemark ] };
key <AE06> { [ 6, ampersand, singlelowquotemark, doublelowquotemark ] };
key <AE07> { [ 7, slash, braceleft, NoSymbol ] };
key <AE08> { [ 8, parenleft, bracketleft, less ] };
key <AE09> { [ 9, parenright, bracketright, greater ] };
key <AE10> { [ 0, equal, braceright, degree ] };
key <AE11> { [ plus, question, backslash, questiondown ] };
key <AE12> { [ dead_acute, dead_grave, dead_cedilla, dead_ogonek ] };
key <AD01> { [ q, Q, q, Q ] };
key <AD02> { [ w, W, w, W ] };
key <AD03> { [ e, E, EuroSign, NoSymbol ] };
key <AD04> { [ r, R, r, R ] };
key <AD05> { [ t, T, thorn, THORN ] };
key <AD06> { [ y, Y, y, Y ] };
key <AD07> { [ u, U, u, U ] };
key <AD08> { [ i, I, idotless, bar ] };
key <AD09> { [ o, O, oe, OE ] };
key <AD10> { [ p, P, dead_horn, dead_hook ] };
key <AD11> { [ aring, Aring, dead_doubleacute, dead_abovering ] };
key <AD12> { [ dead_diaeresis, dead_circumflex, dead_tilde, dead_macron ] };
key <AC01> { [ a, A, schwa, SCHWA ] };
key <AC02> { [ s, S, ssharp, U1E9E ] };
key <AC03> { [ d, D, eth, ETH ] };
key <AC04> { [ f, F, f, F ] };
key <AC05> { [ g, G, g, G ] };
key <AC06> { [ h, H, h, H ] };
key <AC07> { [ j, J, j, J ] };
key <AC08> { [ k, K, kra, dead_greek ] };
key <AC09> { [ l, L, dead_stroke, dead_currency ] };
key <AC10> { [ odiaeresis, Odiaeresis, oslash, Oslash ] };
key <AC11> { [ adiaeresis, Adiaeresis, ae, AE ] };
key <BKSL> { [ apostrophe, asterisk, dead_caron, dead_breve ] };
key <LSGT> { [ less, greater, bar, NoSymbol ] };
key <AB01> { [ z, Z, ezh, EZH ] };
key <AB02> { [ x, X, multiply, periodcentered ] };
key <AB03> { [ c, C, c, C ] };
key <AB04> { [ v, V, v, V ] };
key <AB05> { [ b, B, b, B ] };
key <AB06> { [ n, N, eng, ENG ] };
key <AB07> { [ m, M, mu, emdash ] };
key <AB08> { [ comma, semicolon, rightsinglequotemark, leftsinglequotemark ] };
key <AB09> { [ period, colon, dead_belowdot, dead_abovedot ] };
key <AB10> { [ minus, underscore, endash, dead_belowcomma ] };
key <SPCE> { [ space, space, space, U202F ] };
include "kpdl(comma)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "winkeys" {
include "fi(kotoistus)"
name[Group1]="Finnish (Windows)";
include "eurosign(5)"
};
hidden partial alphanumeric_keys
xkb_symbols "fi" {
// Classic Finnish keyboard layout with dead keys
key <TLDE> { [ section, onehalf, onequarter, threequarters ] };
key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
key <AE02> { [ 2, quotedbl, at, twosuperior ] };
key <AE03> { [ 3, numbersign, sterling, threesuperior ] };
key <AE04> { [ 4, currency, dollar, cent ] };
key <AE05> { [ 5, percent, EuroSign, masculine ] };
key <AE06> { [ 6, ampersand, yen, ordfeminine ] };
key <AE07> { [ 7, slash, braceleft, plusminus ] };
key <AE08> { [ 8, parenleft, bracketleft, less ] };
key <AE09> { [ 9, parenright, bracketright, greater ] };
key <AE10> { [ 0, equal, braceright, degree ] };
key <AE11> { [ plus, question, backslash, questiondown ] };
key <AE12> { [ dead_acute, dead_grave, dead_cedilla, dead_ogonek ] };
key <AD01> { [ q, Q, q, Q ] };
key <AD02> { [ w, W, w, W ] };
key <AD03> { [ e, E, EuroSign, cent ] };
key <AD04> { [ r, R, registered, NoSymbol ] };
key <AD05> { [ t, T, thorn, THORN ] };
key <AD06> { [ y, Y, y, Y ] };
key <AD07> { [ u, U, u, U ] };
key <AD08> { [ i, I, idotless, bar ] };
key <AD09> { [ o, O, o, O ] };
key <AD10> { [ p, P, paragraph, NoSymbol ] };
key <AD11> { [ aring, Aring, oe, OE ] };
key <AD12> { [ dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ] };
key <AC01> { [ a, A, schwa, SCHWA ] };
key <AC02> { [ s, S, scaron, Scaron ] };
key <AC03> { [ d, D, eth, ETH ] };
key <AC04> { [ f, F, f, F ] };
key <AC05> { [ g, G, eng, ENG ] };
key <AC06> { [ h, H, h, H ] };
key <AC07> { [ j, J, j, J ] };
key <AC08> { [ k, K, kra, dead_greek ] };
key <AC09> { [ l, L, dead_stroke, dead_currency ] };
key <AC10> { [ odiaeresis, Odiaeresis, oslash, Oslash ] };
key <AC11> { [ adiaeresis, Adiaeresis, ae, AE ] };
key <BKSL> { [ apostrophe, asterisk, dead_caron, dead_breve ] };
key <LSGT> { [ less, greater, bar, brokenbar ] };
key <AB01> { [ z, Z, zcaron, Zcaron ] };
key <AB02> { [ x, X, multiply, division ] };
key <AB03> { [ c, C, copyright, cent ] };
key <AB04> { [ v, V, v, V ] };
key <AB05> { [ b, B, ssharp, U1E9E ] };
key <AB06> { [ n, N, ntilde, Ntilde ] };
key <AB07> { [ m, M, mu, NoSymbol ] };
key <AB08> { [ comma, semicolon, dead_cedilla, dead_ogonek ] };
key <AB09> { [ period, colon, periodcentered, notsign ] };
key <AB10> { [ minus, underscore, hyphen, dead_macron ] };
key <SPCE> { [ space, space, space, U202F ] };
include "kpdl(comma)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "classic" {
include "fi(fi)"
name[Group1]="Finnish (classic)";
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
// Classic Finnish keyboard layout without dead keys
include "fi(fi)"
name[Group1]="Finnish (classic, no dead keys)";
key <AE12> { [ acute, grave, cedilla, ogonek ] };
key <AD12> { [ diaeresis, asciicircum, asciitilde, caron ] };
key <AC09> { [ l, L, l, L ] };
key <BKSL> { [ apostrophe, asterisk, caron, breve ] };
key <AB08> { [ comma, semicolon, cedilla, ogonek ] };
key <AB10> { [ minus, underscore, hyphen, macron ] };
};
partial alphanumeric_keys
xkb_symbols "smi" {
// Describes the differences between a Norwegian Northern Sami
// (keyboard with dead key support) and a Swedish/Finnish Sami
// keyboard according to the specs at:
// http://www.hum.uit.no/a/trond/se-lat9-sefi-keys.html
include "no(smi)"
name[Group1]="Northern Saami (Finland)";
key <AC10> { [ odiaeresis, Odiaeresis, oslash, Oslash ] };
key <AC11> { [ adiaeresis, Adiaeresis, ae, AE ] };
};
partial alphanumeric_keys
xkb_symbols "mac" {
include "se(mac)"
name[Group1]="Finnish (Macintosh)";
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
// #HW-SPECIFIC
include "sun_vndr/fi(sun_type6)"
name[Group1]="Finnish";
};
partial
xkb_symbols "das" {
// DAS layout for typing Finnish designed by Cristian Seres (cseres at iki.fi).
// More information about DAS is available at http://c.seres.fi/DAS_en.html.
// This xkeyboard layout was created by Joel Lehtonen (joel.lehtonen at iki.fi),
// and he released it to public domain.
name[Group1]="Finnish (DAS)";
key <TLDE> { [ backslash, dead_tilde ] };
key <AE01> { [ 1, exclam, section ] };
key <AE02> { [ 2, quotedbl, twosuperior ] };
key <AE03> { [ 3, at, sterling ] };
key <AE04> { [ 4, EuroSign, dollar ] };
key <AE05> { [ 5, percent, onehalf ] };
key <AE06> { [ 6, ampersand ] };
key <AE07> { [ 7, braceleft ] };
key <AE08> { [ 8, parenleft, bracketleft ] };
key <AE09> { [ 9, parenright, bracketright ] };
key <AE10> { [ 0, braceright, degree ] };
key <AE11> { [ plus, question, currency ] };
key <AE12> { [ equal, numbersign ] };
key <AD01> { [ p, P, Greek_pi ] };
key <AD02> { [ h, H ] };
key <AD03> { [ r, R, dead_circumflex ] };
key <AD04> { [ k, K, dead_caron ] };
key <AD05> { [ less, greater ] };
key <AD06> { [ apostrophe, bar ] };
key <AD07> { [ w, W ] };
key <AD08> { [ u, U ] };
key <AD09> { [ y, Y ] };
key <AD10> { [ b, B ] };
key <AD11> { [ q, Q ] };
key <AD12> { [ z, Z, zcaron, Zcaron ] };
key <AC01> { [ s, S, scaron, Scaron ] };
key <AC02> { [ l, L, dead_acute ] };
key <AC03> { [ n, N, dead_grave ] };
key <AC04> { [ t, T, dead_diaeresis ] };
key <AC05> { [ v, V ] };
key <AC06> { [ g, G ] };
key <AC07> { [ a, A ] };
key <AC08> { [ i, I ] };
key <AC09> { [ o, O ] };
key <AC10> { [ e, E ] };
key <AC11> { [ c, C ] };
key <BKSL> { [ asterisk, slash ] };
key <LSGT> { [ f, F ] };
key <AB01> { [ x, X ] };
key <AB02> { [ d, D ] };
key <AB03> { [ m, M, mu ] };
key <AB04> { [ j, J ] };
key <AB05> { [ aring, Aring ] };
key <AB06> { [ odiaeresis, Odiaeresis, oe, OE ] };
key <AB07> { [ adiaeresis, Adiaeresis, ae, AE ] };
key <AB08> { [ comma, semicolon ] };
key <AB09> { [ period, colon ] };
key <AB10> { [ minus, underscore, U2013, dead_macron ] };
key <SPCE> { [ space, space, space, nobreakspace ] };
include "kpdl(comma)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "fidvorak" {
// Dvorak keyboard layout for use with Finnish by Pekka Oinas.
//
// Dedicated keys for Ä and Ö by utilizing the extra LSGT key found on Finnish keyboards
// and by moving colon and semicolon behind shift-modifiers on comma and period.
// Less and greater than symbols moved behind 3rd level modifiers on comma and period.
// Includes an assortment of dead keys but was not created with them in mind.
name[Group1]="Finnish (Dvorak)";
key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
key <AE01> { [ 1, exclam, NoSymbol, exclamdown ] };
key <AE02> { [ 2, at, cent, rightdoublequotemark ] };
key <AE03> { [ 3, numbersign, sterling ] };
key <AE04> { [ 4, dollar, currency ] };
key <AE05> { [ 5, percent, permille, leftdoublequotemark ] };
key <AE06> { [ 6, asciicircum, dead_circumflex, doublelowquotemark ] };
key <AE07> { [ 7, ampersand, section, singlelowquotemark ] };
key <AE08> { [ 8, asterisk ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright, degree, dead_abovering ] };
key <AE11> { [ bracketleft, braceleft ] };
key <AE12> { [ bracketright, braceright ] };
key <AD01> { [ apostrophe, quotedbl, dead_acute, dead_doubleacute ] };
key <AD02> { [ comma, semicolon, less, leftsinglequotemark ] };
key <AD03> { [ period, colon, greater ] };
key <AD04> { [ p, P ] };
key <AD05> { [ y, Y, yen ] };
key <AD06> { [ f, F ] };
key <AD07> { [ g, G ] };
key <AD08> { [ c, C ] };
key <AD09> { [ r, R ] };
key <AD10> { [ l, L, notsign ] };
key <AD11> { [ slash, question, NoSymbol, questiondown ] };
key <AD12> { [ equal, plus ] };
key <AC01> { [ a, A, schwa, SCHWA ] };
key <AC02> { [ o, O, aring, Aring ] };
key <AC03> { [ e, E, EuroSign ] };
key <AC04> { [ u, U, udiaeresis, Udiaeresis ] };
key <AC05> { [ i, I, idotless, Iabovedot ] };
key <AC06> { [ d, D, eth, ETH ] };
key <AC07> { [ h, H ] };
key <AC08> { [ t, T, thorn, THORN ] };
key <AC09> { [ n, N, eng, ENG ] };
key <AC10> { [ s, S, ssharp, U1E9E ] };
key <AC11> { [ minus, underscore, endash, emdash ] };
key <BKSL> { [ backslash, bar, dead_caron, dead_breve ] };
key <LSGT> { [ adiaeresis, Adiaeresis, ae, AE ] };
key <AB01> { [ odiaeresis, Odiaeresis, dead_diaeresis, dead_macron ] };
key <AB02> { [ q, Q, oslash, Oslash ] };
key <AB03> { [ j, J ] };
key <AB04> { [ k, K, kra ] };
key <AB05> { [ x, X, multiply, periodcentered ] };
key <AB06> { [ b, B, hyphen ] };
key <AB07> { [ m, M, mu, emdash ] };
key <AB08> { [ w, W ] };
key <AB09> { [ v, V ] };
key <AB10> { [ z, Z, ezh, EZH ] };
include "level3(ralt_switch)"
};

45
nixos/xkb/symbols/fo Normal file
View File

@@ -0,0 +1,45 @@
// Keyboard layouts for the Faroe Islands.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type2)"
name[Group1]= "Faroese";
key <TLDE> {[ onehalf, section, threequarters, paragraph ]};
key <AE11> {[ plus, question, plusminus, questiondown ]};
key <AE12> {[ dead_acute, dead_grave, bar, brokenbar ]};
key <AD11> {[ aring, Aring, dead_diaeresis, dead_circumflex ]};
key <AD12> {[ eth, ETH, dead_tilde, dead_caron ]};
key <AC10> {[ ae, AE ]};
key <AC11> {[ oslash, Oslash ]};
key <BKSL> {[ apostrophe, asterisk, dead_doubleacute, multiply ]};
key <LSGT> {[ less, greater, backslash, notsign ]};
key <AB10> {[ minus, underscore, hyphen, macron ]};
key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "fo(basic)"
name[Group1]= "Faroese (no dead keys)";
key <AE12> {[ acute, grave, bar, ogonek ]};
key <AD11> {[ aring, Aring, diaeresis, degree ]};
key <AD12> {[ diaeresis, asciicircum, asciitilde, macron ]};
key <AC07> {[ j, J, ezh, EZH ]};
key <AC10> {[ ae, AE, acute, doubleacute ]};
key <AC11> {[ oslash, Oslash, asciicircum, caron ]};
key <BKSL> {[ apostrophe, asterisk, doubleacute, multiply ]};
key <AB08> {[ comma, semicolon, cedilla, ogonek ]};
key <AB09> {[ period, colon, periodcentered, abovedot ]};
};

1404
nixos/xkb/symbols/fr Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,87 @@
//
//Copyright 1996, 1998 The Open Group
//
//Permission to use, copy, modify, distribute, and sell this software and its
//documentation for any purpose is hereby granted without fee, provided that
//the above copyright notice appear in all copies and that both that
//copyright notice and this permission notice appear in supporting
//documentation.
//
//The above copyright notice and this permission notice shall be
//included in all copies or substantial portions of the Software.
//
//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
//OTHER DEALINGS IN THE SOFTWARE.
//
//Except as contained in this notice, the name of The Open Group shall
//not be used in advertising or otherwise to promote the sale, use or
//other dealings in this Software without prior written authorization
//from The Open Group.
//
// Japanese for a Fujitsu 140 key keyboard
xkb_symbols "basic" {
override "fujitsu_vndr/us"
augment key <AE01> { [], [ kana_NU ] };
key <AE02> { [ 2, quotedbl ], [ kana_FU ] };
key <AE03> { [ 3, numbersign ], [ kana_A, kana_a ] };
key <AE04> { [ 4, dollar ], [ kana_U, kana_u ] };
augment key <AE05> { [], [ kana_E, kana_e ] };
key <AE06> { [ 6, ampersand ], [ kana_O, kana_o ] };
key <AE07> { [ 7, apostrophe ], [ kana_YA, kana_ya ] };
key <AE08> { [ 8, parenleft ], [ kana_YU, kana_yu ] };
key <AE09> { [ 9, parenright ], [ kana_YO, kana_yo ] };
replace key <AE10> { [ 0 ], [ kana_WA, kana_WO ] };
key <AE11> { [ minus, equal ], [ kana_HO ] };
key <AE12> { [ asciicircum, asciitilde ], [ kana_HE ] };
key <BKSL> { [ backslash, bar ], [ prolongedsound] };
augment key <AD01> { [], [ kana_TA ] };
augment key <AD02> { [], [ kana_TE ] };
augment key <AD03> { [], [ kana_I, kana_i ] };
augment key <AD04> { [], [ kana_SU ] };
augment key <AD05> { [], [ kana_KA ] };
augment key <AD06> { [], [ kana_N ] };
augment key <AD07> { [], [ kana_NA ] };
augment key <AD08> { [], [ kana_NI ] };
augment key <AD09> { [], [ kana_RA ] };
augment key <AD10> { [], [ kana_SE ] };
key <AD11> { [ at, grave ], [ voicedsound ] };
key <AD12> { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] };
augment key <AC01> { [], [ kana_CHI ] };
augment key <AC02> { [], [ kana_TO ] };
augment key <AC03> { [], [ kana_SHI ] };
augment key <AC04> { [], [ kana_HA ] };
augment key <AC05> { [], [ kana_KI ] };
augment key <AC06> { [], [ kana_KU ] };
augment key <AC07> { [], [ kana_MA ] };
augment key <AC08> { [], [ kana_NO ] };
augment key <AC09> { [], [ kana_RI ] };
key <AC10> { [ semicolon, plus ], [ kana_RE ] };
key <AC11> { [ colon, asterisk ], [ kana_KE ] };
key <TLDE> { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ] };
augment key <AB01> { [], [ kana_TSU, kana_tsu ] };
augment key <AB02> { [], [ kana_SA ] };
augment key <AB03> { [], [ kana_SO ] };
augment key <AB04> { [], [ kana_HI ] };
augment key <AB05> { [], [ kana_KO ] };
augment key <AB06> { [], [ kana_MI ] };
augment key <AB07> { [], [ kana_MO ] };
augment key <AB08> { [], [ kana_NE, kana_comma ] };
augment key <AB09> { [], [ kana_RU, kana_fullstop ] };
augment key <AB10> { [], [ kana_ME, kana_conjunctive ] };
key <AB11> { [ underscore ], [ kana_RO ] };
key <UNK0> { [ Select ] };
key <UNK1> { [ Massyo ] };
key <UNK2> { [ Touroku ] };
key <UNK3> { [ Zenkaku_Hankaku ] };
key <UNK4> { [ Eisu_Shift ] };
key <UNK5> { [ Mode_switch ] };
key <UNK6> { [ Cancel ] };
key <UNK7> { [ Muhenkan ] };
key <UNK8> { [ Henkan ] };
};

View File

@@ -0,0 +1,142 @@
//
//Copyright 1996, 1998 The Open Group
//
//Permission to use, copy, modify, distribute, and sell this software and its
//documentation for any purpose is hereby granted without fee, provided that
//the above copyright notice appear in all copies and that both that
//copyright notice and this permission notice appear in supporting
//documentation.
//
//The above copyright notice and this permission notice shall be
//included in all copies or substantial portions of the Software.
//
//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
//OTHER DEALINGS IN THE SOFTWARE.
//
//Except as contained in this notice, the name of The Open Group shall
//not be used in advertising or otherwise to promote the sale, use or
//other dealings in this Software without prior written authorization
//from The Open Group.
//
// US/ASCII layout for a Fujitsu 138 key keyboard
xkb_symbols "basic" {
include "us(basic)"
// A few alphanumeric keys are different
key <TLDE> { [ grave, asciitilde ] };
key <BKSP> { [ BackSpace ] };
key <BKSL> { [ backslash, bar ] };
key <AB11> { [ ] };
key <RTSH> { [ Shift_R ] };
key <LALT> { [ Alt_L ] };
key <RALT> { [ Alt_R ] };
key <LMTA> { [ Meta_L ] };
key <RMTA> { [ Meta_R ] };
key <LNFD> { [ Linefeed ] };
key <COMP> { [ Multi_key ] };
// End alphanumeric section
// Begin "Function" section
key <BREA> { [ Break ] };
key <PRSC> { [ Print ] };
key <KNJI> { [ Kanji ] };
key <PAUS> { [ Pause ] };
key <FK01> { [ F1 ] };
key <FK02> { [ F2 ] };
key <FK03> { [ F3 ] };
key <FK04> { [ F4 ] };
key <FK05> { [ F5 ] };
key <FK06> { [ F6 ] };
key <FK07> { [ F7 ] };
key <FK08> { [ F8 ] };
key <FK09> { [ F9 ] };
key <FK10> { [ F10 ] };
key <FK11> { [ F11 ] };
key <FK12> { [ F12 ] };
key <FK13> { [ F13 ] };
key <FK14> { [ F14 ] };
key <FK15> { [ F15 ] };
key <FK16> { [ F16 ] };
key <FK17> { [ F17 ] };
key <FK18> { [ F18 ] };
key <FK19> { [ F19 ] };
key <FK20> { [ F20 ] };
key <FK21> { [ F21 ] };
key <FK22> { [ F22 ] };
key <FK23> { [ F23 ] };
key <FK24> { [ F24 ] };
key <FK25> { [ F25 ] };
key <FK26> { [ F26 ] };
key <FK27> { [ F27 ] };
key <FK28> { [ F28 ] };
key <FK29> { [ F29 ] };
key <FK30> { [ F30 ] };
key <FK31> { [ F31 ] };
key <FK32> { [ F32 ] };
// End "Function" section
// Begin "Editing" section
key <UNDO> { [ Undo ] };
key <COPY> { [ F33 ] };
key <PAST> { [ F34 ] };
key <CUT> { [ F35 ] };
key <HELP> { [ Help ] };
// End "Editing" section
// Begin "Cursor" section
key <UNK0> { [ ] };
key <UNK1> { [ ] };
key <UNK2> { [ ] };
key <PGUP> { [ Prior ] };
key <HOME> { [ Home ] };
key <PGDN> { [ Next ] };
key <UNK3> { [ ] };
key <DEL> { [ Delete ] };
key <INS> { [ Insert ] };
key <LEFT> { [ Left ] };
key <RGHT> { [ Right ] };
key <UP> { [ Up ] };
key <DOWN> { [ Down ] };
key <EXEC> { [ Execute ] };
// End "Cursor" section
// Begin "Keypad" section
key <KPMU> { [ KP_Multiply ] };
key <KPDV> { [ KP_Divide ] };
key <KPAD> { [ KP_Add ] };
key <KPSU> { [ KP_Subtract ] };
key <KP7> { [ KP_7 ] };
key <KP8> { [ KP_8 ] };
key <KP9> { [ KP_9 ] };
key <KPEQ> { [ KP_Equal ] };
key <KP4> { [ KP_4 ] };
key <KP5> { [ KP_5 ] };
key <KP6> { [ KP_6 ] };
key <KPDC> { [ KP_Decimal ] };
key <KP1> { [ KP_1 ] };
key <KP2> { [ KP_2 ] };
key <KP3> { [ KP_3 ] };
key <KPEN> { [ KP_Enter ] };
key <KP0> { [ KP_0 ] };
key <KP00> { [ KP_0 ] };
// End "Keypad" section
modifier_map Shift { Shift_R };
modifier_map Mod1 { Meta_L, Meta_R };
modifier_map Mod2 { Mode_switch };
modifier_map Mod3 { Alt_L };
modifier_map Mod4 { Num_Lock };
modifier_map Mod5 { F13, F18, F20 };
};

249
nixos/xkb/symbols/gb Normal file
View File

@@ -0,0 +1,249 @@
// Keyboard layouts for Great Britain.
default partial alphanumeric_keys
xkb_symbols "basic" {
// The basic UK layout, also known as the IBM 166 layout,
// but with the useless brokenbar pushed two levels up.
include "latin"
name[Group1]="English (UK)";
key <TLDE> { [ grave, notsign, bar, bar ] };
key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
key <AE03> { [ 3, sterling, threesuperior, sterling ] };
key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
key <LSGT> { [ backslash, bar, bar, brokenbar ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "intl" {
// A UK layout but with five accents made into dead keys:
// grave, diaeresis, circumflex, acute, and tilde.
// By Phil Jones <philjones1 at blueyonder.co.uk>.
include "latin"
name[Group1]="English (UK, intl., with dead keys)";
key <TLDE> { [ dead_grave, notsign, bar, bar ] };
key <AE02> { [ 2, dead_diaeresis, twosuperior, onehalf ] };
key <AE03> { [ 3, sterling, threesuperior, onethird ] };
key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
key <AE06> { [ 6, dead_circumflex, threequarters, onesixth ] };
key <AC11> { [ dead_acute, at, apostrophe, bar ] };
key <BKSL> { [ numbersign, dead_tilde, bar, bar ] };
key <LSGT> { [ backslash, bar, bar, bar ] };
key <AB08> { [ comma, less, ccedilla, Ccedilla ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "extd" {
// Clone of the Microsoft "United Kingdom Extended" layout, which
// includes dead keys for: grave; diaeresis; circumflex; tilde; and
// accute. It also enables direct access to accute characters using
// the Multi_key (Alt Gr).
//
// Taken from...
// "Windows Keyboard Layouts"
// https://docs.microsoft.com/en-gb/globalization/windows-keyboard-layouts#U
//
// -- Jonathan Miles <jon@cybah.co.uk>
include "latin"
name[Group1]="English (UK, extended, Windows)";
key <TLDE> { [ dead_grave, notsign, brokenbar, NoSymbol ] };
key <AE02> { [ 2, quotedbl, dead_diaeresis, onehalf ] };
key <AE03> { [ 3, sterling, threesuperior, onethird ] };
key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
key <AE06> { [ 6, asciicircum, dead_circumflex, NoSymbol ] };
key <AD02> { [ w, W, wacute, Wacute ] };
key <AD03> { [ e, E, eacute, Eacute ] };
key <AD06> { [ y, Y, yacute, Yacute ] };
key <AD07> { [ u, U, uacute, Uacute ] };
key <AD08> { [ i, I, iacute, Iacute ] };
key <AD09> { [ o, O, oacute, Oacute ] };
key <AD12> { [ bracketright, braceright, NoSymbol, bar ] };
key <AC01> { [ a, A, aacute, Aacute ] };
key <AC11> { [ apostrophe, at, dead_acute, grave ] };
key <BKSL> { [ numbersign, asciitilde, dead_tilde, backslash ] };
key <LSGT> { [ backslash, bar, NoSymbol, NoSymbol ] };
key <AB03> { [ c, C, ccedilla, Ccedilla ] };
include "level3(ralt_switch)"
};
// Describe the differences between the US Colemak layout
// and a UK variant. By Andy Buckley (andy@insectnation.org)
partial alphanumeric_keys
xkb_symbols "colemak" {
include "us(colemak)"
name[Group1]="English (UK, Colemak)";
key <TLDE> { [ grave, notsign, bar, asciitilde ] };
key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
key <AE03> { [ 3, sterling, threesuperior, sterling ] };
key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
key <LSGT> { [ backslash, bar, asciitilde, brokenbar ] };
};
// Colemak-DH (ISO) layout, UK Variant, https://colemakmods.github.io/mod-dh/
partial alphanumeric_keys
xkb_symbols "colemak_dh" {
include "us(colemak_dh)"
name[Group1]="English (UK, Colemak-DH)";
key <TLDE> { [ grave, notsign, bar, asciitilde ] };
key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
key <AE03> { [ 3, sterling, threesuperior, sterling ] };
key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
key <AB05> { [ backslash, bar, asciitilde, brokenbar ] };
};
// Dvorak (UK) keymap (by odaen) allowing the usage of
// the £ and ? key and swapping the @ and " keys.
partial alphanumeric_keys
xkb_symbols "dvorak" {
include "us(dvorak-alt-intl)"
name[Group1]="English (UK, Dvorak)";
key <TLDE> { [ grave, notsign, bar, bar ] };
key <AE02> { [ 2, quotedbl, twosuperior, NoSymbol ] };
key <AE03> { [ 3, sterling, threesuperior, NoSymbol ] };
key <AD01> { [ apostrophe, at ] };
key <BKSL> { [ numbersign, asciitilde ] };
key <LSGT> { [ backslash, bar ] };
};
// Dvorak letter positions, but punctuation all in the normal UK positions.
partial alphanumeric_keys
xkb_symbols "dvorakukp" {
include "gb(dvorak)"
name[Group1]="English (UK, Dvorak, with UK punctuation)";
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <AD11> { [ bracketleft, braceleft ] };
key <AD12> { [ bracketright, braceright ] };
key <AD01> { [ slash, question ] };
key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
};
partial alphanumeric_keys
xkb_symbols "mac" {
include "latin"
name[Group1]= "English (UK, Macintosh)";
key <TLDE> { [ section, plusminus ] };
key <AE02> { [ 2, at, EuroSign ] };
key <AE03> { [ 3, sterling, numbersign ] };
key <LSGT> { [ grave, asciitilde ] };
include "level3(ralt_switch)"
include "level3(enter_switch)"
};
partial alphanumeric_keys
xkb_symbols "mac_intl" {
include "latin"
name[Group1]="English (UK, Macintosh, intl.)";
key <TLDE> { [ section, plusminus, notsign, notsign ] }; //dead_grave
key <AE02> { [ 2, at, EuroSign, onehalf ] };
key <AE03> { [ 3, sterling, twosuperior, onethird ] };
key <AE04> { [ 4, dollar, threesuperior, onequarter ] };
key <AE06> { [ 6, dead_circumflex, NoSymbol, onesixth ] };
key <AD09> { [ o, O, oe, OE ] };
key <AC11> { [ dead_acute, dead_diaeresis, dead_diaeresis, bar ] }; //dead_doubleacute
key <BKSL> { [ backslash, bar, numbersign, bar ] };
key <LSGT> { [ dead_grave, dead_tilde, brokenbar, bar ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "pl" {
// Polish accented letters on upper levels of corresponding base letters.
// Idea from Wawrzyniec Niewodniczański, adapted by Aleksander Kowalski.
include "gb(basic)"
name[Group1]="Polish (British keyboard)";
key <AD03> { [ e, E, eogonek, Eogonek ] };
key <AD09> { [ o, O, oacute, Oacute ] };
key <AC01> { [ a, A, aogonek, Aogonek ] };
key <AC02> { [ s, S, sacute, Sacute ] };
key <AB01> { [ z, Z, zabovedot, Zabovedot ] };
key <AB02> { [ x, X, zacute, Zacute ] };
key <AB03> { [ c, C, cacute, Cacute ] };
key <AB06> { [ n, N, nacute, Nacute ] };
};
partial alphanumeric_keys
xkb_symbols "gla" {
// Grave-accented letters on the upper levels of the relevant vowels.
include "gb(basic)"
name[Group1]="Scottish Gaelic";
key <AD03> { [ e, E, egrave, Egrave ] };
key <AD07> { [ u, U, ugrave, Ugrave ] };
key <AD08> { [ i, I, igrave, Igrave ] };
key <AD09> { [ o, O, ograve, Ograve ] };
key <AC01> { [ a, A, agrave, Agrave ] };
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/gb(sun_type6)"
};

261
nixos/xkb/symbols/ge Normal file
View File

@@ -0,0 +1,261 @@
// Keyboard layouts for Georgia.
// Original author: Aiet Kolkhi <aietkolkhi@gmail.com>
//
// This includes the following keyboard layouts: Georgian QWERTY;
// Georgian Ergonomic; Georgian MESS; and Georgian Russian.
//
// Layouts include the Georgian Mkhedruli alphabet; most layouts also include
// some special and ancient characters (like Fi, Yn, Elifi, Turned Gan and Ain).
// The Georgian Asomtavruli or Georgian Khutsuri alphabets are not included.
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Georgian";
key <TLDE> { [ 0x0100201e, 0x0100201c, 0x0100201e, asciitilde ] };
key <AE01> { [ 1, exclam, apostrophe ] };
key <AE02> { [ 2, at, 0x0100201e ] };
key <AE03> { [ 3, numbersign, 0x0100201c ] };
key <AE04> { [ 4, dollar, 0x01002116 ] };
key <AE05> { [ 5, percent, EuroSign ] };
key <AE06> { [ 6, asciicircum ] };
key <AE07> { [ 7, ampersand, section ] };
key <AE08> { [ 8, asterisk, degree ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ minus, underscore, 0x01002014 ] };
key <AE12> { [ equal, plus, 0x01002013 ] };
key <AD01> { [ Georgian_khar, Q ] };
key <AD02> { [ Georgian_cil, Georgian_char ] };
key <AD03> { [ Georgian_en, E, Georgian_he ] };
key <AD04> { [ Georgian_rae, Georgian_ghan, registered ] };
key <AD05> { [ Georgian_tar, Georgian_tan ] };
key <AD06> { [ Georgian_qar, Y, 0x010010f8 ] };
key <AD07> { [ Georgian_un, U ] };
key <AD08> { [ Georgian_in, I, Georgian_hie ] };
key <AD09> { [ Georgian_on, O ] };
key <AD10> { [ Georgian_par, P ] };
key <AD11> { [ bracketleft, braceleft ] };
key <AD12> { [ bracketright, braceright ] };
key <AC01> { [ Georgian_an, A, 0x010010fa ] };
key <AC02> { [ Georgian_san, Georgian_shin ] };
key <AC03> { [ Georgian_don, D ] };
key <AC04> { [ Georgian_phar, F, Georgian_fi ] };
key <AC05> { [ Georgian_gan, G, 0x010010f9 ] };
key <AC06> { [ Georgian_hae, H, Georgian_hoe ] };
key <AC07> { [ Georgian_jhan, Georgian_zhar, 0x010010f7 ] };
key <AC08> { [ Georgian_kan, K ] };
key <AC09> { [ Georgian_las, L ] };
key <AC10> { [ semicolon, colon ] };
key <AC11> { [ apostrophe, quotedbl ] };
key <BKSL> { [ backslash, bar, asciitilde, asciitilde ] };
key <LSGT> { [ guillemotleft, guillemotright ] };
key <AB01> { [ Georgian_zen, Georgian_jil ] };
key <AB02> { [ Georgian_xan, X, Georgian_har ] };
key <AB03> { [ Georgian_can, Georgian_chin, copyright ] };
key <AB04> { [ Georgian_vin, V, Georgian_we ] };
key <AB05> { [ Georgian_ban, B ] };
key <AB06> { [ Georgian_nar, N, 0x010010fc ] };
key <AB07> { [ Georgian_man, M ] };
key <AB08> { [ comma, less, guillemotleft ] };
key <AB09> { [ period, greater, guillemotright ] };
key <AB10> { [ slash, question, 0x010010fb ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "qwerty" {
include "ge(basic)"
};
partial alphanumeric_keys
xkb_symbols "ergonomic" {
include "ge(basic)"
name[Group1]= "Georgian (ergonomic)";
key <TLDE> { [ 0x0100201e, apostrophe, 0x0100201e, asciitilde ] };
key <AE01> { [ exclam, 1, exclam ] };
key <AE02> { [ 0x01002116, 2, at ] };
key <AE03> { [ comma, 3, numbersign, section ] };
key <AE04> { [ semicolon, 4, dollar ] };
key <AE05> { [ percent, 5, EuroSign ] };
key <AE06> { [ colon, 6, asciicircum ] };
key <AE07> { [ question, 7, ampersand ] };
key <AE08> { [ period, 8, asterisk, degree ] };
key <AE09> { [ parenleft, 9, parenleft, guillemotleft ] };
key <AE10> { [ parenright, 0, parenright, guillemotright ] };
key <AE11> { [ minus, plus, 0x01002014, underscore ] };
key <AE12> { [ 0x0100201c, equal, equal ] };
key <AD01> { [ Georgian_chin, noSymbol ] };
key <AD02> { [ Georgian_par, noSymbol ] };
key <AD03> { [ Georgian_un, noSymbol ] };
key <AD04> { [ Georgian_jil, noSymbol, noSymbol, registered ] };
key <AD05> { [ Georgian_char, noSymbol, noSymbol, Georgian_tan ] };
key <AD06> { [ Georgian_tar, noSymbol, noSymbol, 0x010010f8 ] };
key <AD07> { [ Georgian_tan, noSymbol ] };
key <AD08> { [ Georgian_nar, noSymbol, 0x010010fc, I ] };
key <AD09> { [ Georgian_vin, noSymbol, Georgian_we ] };
key <AD10> { [ Georgian_shin, noSymbol ] };
key <AD11> { [ Georgian_kan, noSymbol, bracketleft, braceleft ] };
key <AD12> { [ Georgian_khar, noSymbol, bracketright,braceright ] };
key <AC01> { [ Georgian_xan, noSymbol, Georgian_har ] };
key <AC02> { [ Georgian_in, noSymbol, Georgian_hie ] };
key <AC03> { [ Georgian_an, noSymbol, 0x010010fa, D ] };
key <AC04> { [ Georgian_en, noSymbol, Georgian_he ] };
key <AC05> { [ Georgian_on, noSymbol ] };
key <AC06> { [ Georgian_don, noSymbol ] };
key <AC07> { [ Georgian_man, noSymbol ] };
key <AC08> { [ Georgian_san, noSymbol ] };
key <AC09> { [ Georgian_rae, noSymbol, L ] };
key <AC10> { [ Georgian_ban, noSymbol, colon ] };
key <AC11> { [ Georgian_gan, noSymbol, 0x010010f9, quotedbl ] };
key <BKSL> { [ slash, section, backslash, bar ] };
key <LSGT> { [ guillemotleft,guillemotright ] };
key <AB01> { [ Georgian_jhan, noSymbol ] };
key <AB02> { [ Georgian_hae, noSymbol, Georgian_hoe, X ] };
key <AB03> { [ Georgian_qar, noSymbol, 0x010010f8, C ] };
key <AB04> { [ Georgian_ghan, noSymbol, 0x010010f7, V ] };
key <AB05> { [ Georgian_zhar, noSymbol ] };
key <AB06> { [ Georgian_zen, noSymbol ] };
key <AB07> { [ Georgian_can, noSymbol, noSymbol, M ] };
key <AB08> { [ Georgian_las, noSymbol, guillemotleft, less ] };
key <AB09> { [ Georgian_phar, noSymbol, Georgian_fi, guillemotright ] };
key <AB10> { [ Georgian_cil, noSymbol, 0x010010fb ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "mess" {
include "ge(basic)"
name[Group1]= "Georgian (MESS)";
key <TLDE> { [ Georgian_char, backslash, grave ] };
key <AE01> { [ 1, exclam, apostrophe ] };
key <AE02> { [ 2, at, asciitilde ] };
key <AE03> { [ 3, 0x01002116, numbersign ] };
key <AE04> { [ 4, dollar, EuroSign ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, asciicircum ] };
key <AE07> { [ 7, ampersand, section ] };
key <AE08> { [ 8, asterisk, degree ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright, 0x01002014 ] };
key <AE11> { [ minus, underscore, 0x01002013 ] };
key <AE12> { [ Georgian_zhar, plus, bar ] };
key <AD01> { [ Georgian_khar, Q ] };
key <AD02> { [ Georgian_cil, W ] };
key <AD03> { [ Georgian_en, E ] };
key <AD04> { [ Georgian_rae, R ] };
key <AD05> { [ Georgian_tar, T ] };
key <AD06> { [ Georgian_qar, Y ] };
key <AD07> { [ Georgian_un, U ] };
key <AD08> { [ Georgian_in, I, Georgian_hie ] };
key <AD09> { [ Georgian_on, O ] };
key <AD10> { [ Georgian_par, P ] };
key <AD11> { [ Georgian_shin, bracketleft, guillemotleft ] };
key <AD12> { [ Georgian_ghan, bracketright, guillemotright ] };
key <AC01> { [ Georgian_an, A, 0x010010fa ] };
key <AC02> { [ Georgian_san, S ] };
key <AC03> { [ Georgian_don, D ] };
key <AC04> { [ Georgian_phar, F, Georgian_fi ] };
key <AC05> { [ Georgian_gan, G, 0x010010f9 ] };
key <AC06> { [ Georgian_hae, H, Georgian_he ] };
key <AC07> { [ Georgian_jhan, J, 0x010010f7 ] };
key <AC08> { [ Georgian_kan, K ] };
key <AC09> { [ Georgian_las, L ] };
key <AC10> { [ Georgian_tan, 0x0100201e ] };
key <AC11> { [ Georgian_chin,0x0100201c ] };
key <BKSL> { [ equal, slash, bar ] };
key <LSGT> { [ guillemotleft, guillemotright ] };
key <AB01> { [ Georgian_zen, Z, Georgian_hoe ] };
key <AB02> { [ Georgian_xan, X, Georgian_har ] };
key <AB03> { [ Georgian_can, C ] };
key <AB04> { [ Georgian_vin, V, Georgian_we ] };
key <AB05> { [ Georgian_ban, B ] };
key <AB06> { [ Georgian_nar, N, 0x010010fc ] };
key <AB07> { [ Georgian_man, M ] };
key <AB08> { [ comma, semicolon, less ] };
key <AB09> { [ period, colon, greater ] };
key <AB10> { [ Georgian_jil, question, 0x010010fb ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "ru" {
name[Group1]= "Russian (Georgia)";
key <TLDE> { [ asciicircum, asciitilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, semicolon ] };
key <AE05> { [ 5, colon ] };
key <AE06> { [ 6, comma ] };
key <AE07> { [ 7, period ] };
key <AE08> { [ 8, asterisk ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ numbersign, bar ] };
key <AD01> { [ Georgian_ghan, q ] };
key <AD02> { [ Georgian_can, w ] };
key <AD03> { [ Georgian_un, e ] };
key <AD04> { [ Georgian_kan, r ] };
key <AD05> { [ Georgian_en, t ] };
key <AD06> { [ Georgian_nar, y ] };
key <AD07> { [ Georgian_gan, u ] };
key <AD08> { [ Georgian_shin, i ] };
key <AD09> { [ Georgian_cil, o ] };
key <AD10> { [ Georgian_zen, p ] };
key <AD11> { [ Georgian_xan, bracketleft ] };
key <AD12> { [ Georgian_jhan, bracketright ] };
key <AC01> { [ Georgian_phar, a ] };
key <AC02> { [ Georgian_tan, s ] };
key <AC03> { [ Georgian_vin, d ] };
key <AC04> { [ Georgian_an, f ] };
key <AC05> { [ Georgian_par, g ] };
key <AC06> { [ Georgian_rae, h ] };
key <AC07> { [ Georgian_on, j ] };
key <AC08> { [ Georgian_las, k ] };
key <AC09> { [ Georgian_don, l ] };
key <AC10> { [ Georgian_zhar, semicolon ] };
key <AC11> { [ Georgian_jil, percent ] };
key <BKSL> { [ backslash, bar ] };
key <LSGT> { [ guillemotleft, guillemotright ] };
key <AB01> { [ Georgian_char, z ] };
key <AB02> { [ Georgian_chin, x ] };
key <AB03> { [ Georgian_san, c ] };
key <AB04> { [ Georgian_man, v ] };
key <AB05> { [ Georgian_in, b ] };
key <AB06> { [ Georgian_tar, n ] };
key <AB07> { [ Georgian_khar, m ] };
key <AB08> { [ Georgian_ban, less ] };
key <AB09> { [ Georgian_qar, greater ] };
key <AB10> { [ Georgian_hae, question ] };
};
partial alphanumeric_keys
xkb_symbols "os" {
include "ru(os_legacy)"
name[Group1]= "Ossetian (Georgia)";
};

165
nixos/xkb/symbols/gh Normal file
View File

@@ -0,0 +1,165 @@
// Keyboard layouts for Ghana.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "us"
name[Group1]= "English (Ghana)";
key <AE04> {[ 4, U20B5, dollar, cent ]}; // ₵ (cedi sign)
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "akan" {
include "gh(basic)"
name[Group1]= "Akan";
key <AD01> {[ U025B, U0190, q, Q ]}; // ɛ Ɛ
key <AB02> {[ U0254, U0186, x, X ]}; // ɔ Ɔ
};
partial alphanumeric_keys
xkb_symbols "ga" {
include "gh(basic)"
name[Group1]= "Ga";
key <AD01> {[ U025B, U0190, q, Q ]}; // ɛ Ɛ
key <AB02> {[ U0254, U0186, x, X ]}; // ɔ Ɔ
key <AB03> {[ U014B, U014A, c, C ]}; // ŋ Ŋ
};
partial alphanumeric_keys
xkb_symbols "ewe" {
include "gh(basic)"
name[Group1]= "Ewe";
key <AD01> {[ U025B, U0190, q, Q ]}; // ɛ Ɛ
key <AD11> {[ U0254, U0186, braceleft, braceleft ]}; // ɔ Ɔ
key <AD12> {[ U028B, U01B2, braceright, braceright ]}; // ʋ Ʋ
key <BKSL> {[ U0256, U0189, backslash, backslash ]}; // ɖ Ɖ
key <AC05> {[ g, G, U0263, U0194 ]}; // ɣ Ɣ
key <AC07> {[ U0192, U0191, j, J ]}; // ƒ Ƒ
key <AB03> {[ U014B, U014A, c, C ]}; // ŋ Ŋ
};
partial alphanumeric_keys
xkb_symbols "fula" {
include "gh(basic)"
name[Group1]= "Fula";
key <AD01> {[ q, Q, q, Q ]};
key <AD02> {[ udiaeresis, Udiaeresis, w, W ]};
key <AD03> {[ e, E, EuroSign, cent ]};
key <AD11> {[ U01B4, U01B3,bracketleft, braceleft ]}; // ƴ Ƴ
key <AD12> {[ gcaron, Gcaron,bracketright, braceright]};
key <AC03> {[ U0257, U018A, d, D ]}; // ɗ Ɗ
key <AC10> {[ U0131, U0130, semicolon, colon ]}; // ı İ
key <AC11> {[ U01DD, U018E, apostrophe, quotedbl ]}; // ǝ Ǝ
key <AB01> {[ U0272, U019D, z, Z ]}; // ɲ Ɲ
key <AB07> {[ ntilde, Ntilde, m, M ]};
key <AB09> {[ ccedilla, Ccedilla, period, greater ]};
key <AB10> {[ scedilla, Scedilla, slash, question ]};
};
partial alphanumeric_keys
xkb_symbols "hausa" {
include "gh(fula)"
name[Group1]= "Hausa (Ghana)";
};
partial alphanumeric_keys
xkb_symbols "generic" {
include "gh(basic)"
name[Group1]= "English (Ghana, multilingual)";
key <AE04> {[ 4, dollar, U20B5, cent ]}; // ₵ (cedi sign)
key <AD03> {[ e, E, U025b, U0190 ]}; // ɛ Ɛ
key <AC03> {[ d, D, U0256, U0189 ]}; // ɖ Ɖ
key <AC04> {[ f, F, U0192, U0191 ]}; // ƒ Ƒ
key <AC05> {[ g, G, U0263, U0194 ]}; // ɣ Ɣ
key <AB01> {[ z, Z, U01B6, U01B5 ]}; // ƶ Ƶ
key <AB03> {[ c, C, U0254, U0186 ]}; // ɔ Ɔ
key <AB04> {[ v, V, U028B, U01B2 ]}; // ʋ Ʋ
key <AB06> {[ n, N, U014b, U014a ]}; // ŋ Ŋ
};
partial alphanumeric_keys
xkb_symbols "avn" {
include "gh(basic)"
name[Group1]= "Avatime";
key <TLDE> {[ grave, asciitilde, U0300, U0303 ]}; // combining grave; combining tilde
key <AE04> {[ 4, dollar, cent, U20B5 ]}; // ¢, ₵
key <AE11> {[ minus, underscore, U0304, U0304 ]}; // combining macron
key <AD01> {[ U028B, U01B2 ]}; // ʋ, Ʋ
key <AD07> {[ u, U, U028A, U01B1 ]}; // ʊ, Ʊ
key <AD08> {[ i, I, U0269, U0196 ]}; // ɩ, Ɩ
key <AD11> {[ U025B, U0190,bracketleft, braceleft ]}; // ɛ, Ɛ
key <AC03> {[ d, D, U0256, U0189 ]}; // ɖ, Ɖ
key <AC04> {[ f, F, U0192, U0191 ]}; // ƒ, Ƒ
key <AC07> {[ U014B, U014A ]}; // ŋ, Ŋ
key <AC11> {[ apostrophe, quotedbl, U0301, U0301 ]}; // combining acute
key <AB03> {[ U0254, U0186 ]}; // ɔ, Ɔ
};
// This layout imitates the 'Ghana Unicode' layout as used in GILLBT on Windows with Keyman.
// However, this layout uses a 3rd level key (the right Alt key: AltGr) rather than dead keys.
// It also has three additional symbols:
// 1) combining macron above: <Shift> + <AltGr> + <->
// 2) cent: <AltGr> + <4>
// 3) ʊ/Ʊ: <AltGr> + <u>/<U>
partial alphanumeric_keys
xkb_symbols "gillbt" {
include "gh(basic)"
name[Group1]= "English (Ghana, GILLBT)";
key <TLDE> {[ grave, asciitilde, U0300, U0303 ]}; // combining grave; combining tilde
key <AE04> {[ 4, dollar, cent, U20B5 ]}; // ¢, ₵
key <AE06> {[ 6, asciicircum, U0302, U0302 ]}; // combining circumflex accent
key <AE11> {[ minus, underscore, U0331, U0304 ]}; // combining macron below; combining macron above
key <AE12> {[ U014B, U014A, equal, plus ]}; // ŋ, Ŋ
key <AD01> {[ U028B, U01B2, q, Q ]}; // ʋ, Ʋ
key <AD03> {[ e, E, U01DD, U018E ]}; // ǝ, Ǝ
key <AD07> {[ u, U, U028A, U01B1 ]}; // ʊ, Ʊ
key <AD11> {[ U025B, U0190, bracketleft, braceleft ]}; // ɛ, Ɛ
key <AD12> {[ U0254, U0186, bracketright, braceright ]}; // ɔ, Ɔ
key <AC03> {[ d, D, U0256, U0189 ]}; // ɖ, Ɖ
key <AC04> {[ f, F, U0192, U0191 ]}; // ƒ, Ƒ
key <AC05> {[ g, G, U0263, U0194 ]}; // ɣ, Ɣ
key <AC11> {[ apostrophe, quotedbl, U0301, U0301 ]}; // combining acute
key <AB01> {[ z, Z, ezh, EZH ]}; // ʒ, Ʒ
key <AB02> {[ U0269, U0196, x, X ]}; // ɩ, Ɩ
key <AB03> {[ c, C, ccedilla, Ccedilla ]}; // ç, Ç
};

61
nixos/xkb/symbols/gn Normal file
View File

@@ -0,0 +1,61 @@
// Keyboard layout for Guinea.
// Layout for N'Ko, by Denis Jacquerye.
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]="N'Ko (AZERTY)";
key <AE01> {[ U07F1, U07C1 ]};
key <AE02> {[ U07EB, U07C2 ]};
key <AE03> {[ U07F5, U07C3, numbersign, sterling ]};
key <AE04> {[ U07F4, U07C4, U2E1C, dollar ]};
key <AE05> {[ parenleft, U07C5, U2E1D ]};
key <AE06> {[ minus, U07C6, bar ]};
key <AE07> {[ U07EC, U07C7, grave ]};
key <AE08> {[ U07FA, U07C8, backslash ]};
key <AE09> {[ U07ED, U07C9, asciicircum, plusminus ]};
key <AE10> {[ U07EE, U07C0, at, degree ]};
key <AE11> {[ parenright ]};
key <AE12> {[ equal, plus, braceright ]};
key <AD01> {[ U07CA ]};
key <AD02> {[ U07E0, less ]};
key <AD03> {[ U07CD, U07CB ]};
key <AD04> {[ U07D9, U07DA ]};
key <AD05> {[ U07D5 ]};
key <AD06> {[ U07E6, U07E7 ]};
key <AD07> {[ U07CE, U07F6 ]};
key <AD08> {[ U07CC ]};
key <AD09> {[ U07D0, U07CF ]};
key <AD10> {[ U07D4 ]};
key <AD11> {[ U07F3 ]};
key <AD12> {[dollar, sterling, currency ]};
key <AC01> {[ U07EB ]};
key <AC02> {[ U07DB ]};
key <AC03> {[ U07D8 ]};
key <AC04> {[ U07DD ]};
key <AC05> {[ U07DC, U07F7 ]};
key <AC06> {[ U07E4 ]};
key <AC07> {[ U07D6, U07E8 ]};
key <AC08> {[ U07DE ]};
key <AC09> {[ U07DF, U07EA ]};
key <AC10> {[ U07E1 ]};
key <AC11> {[ U07EF, U07F8, percent ]};
key <TLDE> {[ U07EC, asciitilde, notsign ]};
key <BKSL> {[ U07D1, asterisk ]};
key <AB01> {[ U07E5 ]};
key <AB02> {[ U060C ]};
key <AB03> {[ U07D7, U07E9 ]};
key <AB04> {[ U07E2 ]};
key <AB05> {[ U07D3 ]};
key <AB06> {[ U07E3, U07D2 ]};
key <AB07> {[ U07F8, U061F ]};
key <AB08> {[ U061B ]};
key <AB09> {[ U060C, slash ]};
key <AB10> {[ U07F9 ]};
include "level3(ralt_switch)"
};

216
nixos/xkb/symbols/gr Normal file
View File

@@ -0,0 +1,216 @@
// Keyboard layouts for Greece.
// Original version: Kostas Gewrgiou <gewrgiou@imbc.gr>
// Heavily modified by: Vasilis Vasaitis <vvas@hal.csd.auth.gr>
// Converted to single-group form by: Ivan Pascal <pascal@info.tsu.ru>
// More modifications by: Web Dolphins® <foo@foofootus.eu>
default partial alphanumeric_keys
xkb_symbols "basic" {
include "gr(simple)"
name[Group1] = "Greek";
key <TLDE> {[ any, any, U2015 ]}; // ―
key <AE01> {[ any, any, U2022, onesuperior ]}; // •
key <AE02> {[ any, any, onehalf, twosuperior ]};
key <AE03> {[ any, any, sterling, threesuperior ]};
key <AE04> {[ any, any, onequarter, threequarters ]};
key <AE05> {[ any, any, EuroSign, permille ]};
key <AE06> {[ any, any, U03F0, paragraph ]}; // ϰ ¶
key <AE07> {[ any, any, U03D7, U03CF ]}; // ϗ Ϗ
key <AE08> {[ any, any, U20AF, currency ]}; // ₯ ¤
key <AE09> {[ any, any, brokenbar, leftsinglequotemark ]};
key <AE10> {[ any, any, degree, rightsinglequotemark ]};
key <AE11> {[ any, any, plusminus ]};
key <AD01> {[ any, any, periodcentered ]};
key <AD02> {[ any, any, U03DB, U03DA ]}; // ϛ Ϛ
key <AD03> {[ any, any, EuroSign, U03F5 ]}; // € ϵ
key <AD04> {[ any, any, registered, U03F1 ]}; // ® ϱ
key <AD06> {[ any, any, U03D2, yen ]}; // ϒ ¥
key <AD07> {[ any, any, U03D1, U03F4 ]}; // ϑ ϴ
key <AD08> {[ any, any, U037B, U03FD ]}; // ͻ Ͻ
key <AD09> {[ any, any, U03D9, U03D8 ]}; // ϙ Ϙ
key <AD10> {[ any, any, U03E1, U03E0 ]}; // ϡ Ϡ
key <AD11> {[ any, any, dead_tilde, dead_macron ]};
key <AD12> {[ any, any, dead_iota, dead_breve ]};
key <AC02> {[ any, any, section ]};
key <AC03> {[ any, any, downarrow, uparrow ]};
key <AC04> {[ any, any, U03D5, Greek_PHI ]}; // ϕ Φ
key <AC05> {[ any, any, U03DD, U03DC ]}; // ϝ Ϝ
key <AC06> {[ any, any, U03F3, U037F ]}; // ϳ Ϳ
key <AC07> {[ any, any, U037C, U03FE ]}; // ͼ Ͼ
key <AC08> {[ any, any, U03DF, U03DE ]}; // ϟ Ϟ
key <AC09> {[ any, any, U03F2, U03F9 ]}; // ϲ Ϲ
key <AC10> {[ any, any, dead_acute, dead_psili ]};
key <AC11> {[ any, any, dead_grave, dead_dasia ]};
key <BKSL> {[ any, any, notsign ]};
key <AB01> {[ any, any, U037D, U03FF ]}; // ͽ Ͽ
key <AB02> {[ any, any, rightarrow, leftarrow ]};
key <AB03> {[ any, any, copyright ]};
key <AB04> {[ any, any, U03D6 ]}; // ϖ
key <AB05> {[ any, any, U03D0 ]}; // ϐ
key <AB06> {[ any, any, U0374, U0375 ]}; // ʹ ͵
key <AB07> {[ any, any, U03FB, U03FA ]}; // ϻ Ϻ
key <AB08> {[ any, any, guillemotleft, ellipsis ]};
key <AB09> {[ any, any, guillemotright, periodcentered ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "simple" {
name[Group1] = "Greek (simple)";
key <TLDE> {[ grave, asciitilde ]}; // ` ~
key <AE01> {[ 1, exclam ]}; // 1 !
key <AE02> {[ 2, at ]}; // 2 @
key <AE03> {[ 3, numbersign ]}; // 3 #
key <AE04> {[ 4, dollar ]}; // 4 $
key <AE05> {[ 5, percent ]}; // 5 %
key <AE06> {[ 6, asciicircum ]}; // 6 ^
key <AE07> {[ 7, ampersand ]}; // 7 &
key <AE08> {[ 8, asterisk ]}; // 8 *
key <AE09> {[ 9, parenleft ]}; // 9 (
key <AE10> {[ 0, parenright ]}; // 0 )
key <AE11> {[ minus, underscore ]}; // - _
key <AE12> {[ equal, plus ]}; // = +
key <AD01> {[ semicolon, colon ]}; // ; :
key <AD02> {[ Greek_finalsmallsigma, Greek_SIGMA ]}; // ς Σ
key <AD03> {[ Greek_epsilon, Greek_EPSILON ]}; // ε Ε
key <AD04> {[ Greek_rho, Greek_RHO ]}; // ρ Ρ
key <AD05> {[ Greek_tau, Greek_TAU ]}; // τ Τ
key <AD06> {[ Greek_upsilon, Greek_UPSILON ]}; // υ Υ
key <AD07> {[ Greek_theta, Greek_THETA ]}; // θ Θ
key <AD08> {[ Greek_iota, Greek_IOTA ]}; // ι Ι
key <AD09> {[ Greek_omicron, Greek_OMICRON ]}; // ο Ο
key <AD10> {[ Greek_pi, Greek_PI ]}; // π Π
key <AD11> {[ bracketleft, braceleft ]}; // [ {
key <AD12> {[ bracketright, braceright ]}; // ] }
key <AC01> {[ Greek_alpha, Greek_ALPHA ]}; // α Α
key <AC02> {[ Greek_sigma, Greek_SIGMA ]}; // σ Σ
key <AC03> {[ Greek_delta, Greek_DELTA ]}; // δ Δ
key <AC04> {[ Greek_phi, Greek_PHI ]}; // φ Φ
key <AC05> {[ Greek_gamma, Greek_GAMMA ]}; // γ Γ
key <AC06> {[ Greek_eta, Greek_ETA ]}; // η Η
key <AC07> {[ Greek_xi, Greek_XI ]}; // ξ Ξ
key <AC08> {[ Greek_kappa, Greek_KAPPA ]}; // κ Κ
key <AC09> {[ Greek_lamda, Greek_LAMDA ]}; // λ Λ
key <AC10> {[ dead_acute, dead_diaeresis ]}; // ´ ¨
key <AC11> {[ apostrophe, quotedbl ]}; // ' "
key <BKSL> {[ backslash, bar ]}; // \ |
key <LSGT> {[ guillemotleft, guillemotright ]}; // « »
key <AB01> {[ Greek_zeta, Greek_ZETA ]}; // ζ Ζ
key <AB02> {[ Greek_chi, Greek_CHI ]}; // χ Χ
key <AB03> {[ Greek_psi, Greek_PSI ]}; // ψ Ψ
key <AB04> {[ Greek_omega, Greek_OMEGA ]}; // ω Ω
key <AB05> {[ Greek_beta, Greek_BETA ]}; // β Β
key <AB06> {[ Greek_nu, Greek_NU ]}; // ν Ν
key <AB07> {[ Greek_mu, Greek_MU ]}; // μ Μ
key <AB08> {[ comma, less ]}; // , <
key <AB09> {[ period, greater ]}; // . >
key <AB10> {[ slash, question ]}; // / ?
include "kpdl(comma)"
};
partial alphanumeric_keys
xkb_symbols "polytonic" {
include "gr(basic)"
name[Group1] = "Greek (polytonic)";
key.type[Group1] = "FOUR_LEVEL";
key <AE05> {[ 5, percent, U2030, U2031 ]}; // ‰ ‱
key <AD02> {[Greek_finalsmallsigma,Greek_SIGMA, U03D9,U03D8 ]}; // ϙ Ϙ
key <AD10> {[ Greek_pi, Greek_PI, U03D6, U03D5 ]}; // ϖ ϕ
key.type[Group1] = "THREE_LEVEL";
key <AD11> {[ dead_tilde, dead_diaeresis, dead_macron ]}; // ~ ¨ ¯
key <AD12> {[ dead_iota, none, dead_breve ]}; // ͺ ˘
key.type[Group1] = "FOUR_LEVEL";
key <AC02> {[ Greek_sigma, Greek_SIGMA, U03DB, U03DA ]}; // ϛ Ϛ (stigmata)
key <AC04> {[ Greek_phi, Greek_PHI, U03DD, U03DC ]}; // ϝ Ϝ
key <AC07> {[ Greek_xi, Greek_XI, U03F3, U037F ]}; // ϳ Ϳ
key <AC08> {[ Greek_kappa, Greek_KAPPA, U03D7, U03CF ]}; // ϗ Ϗ (kai symbols)
key.type[Group1] = "THREE_LEVEL";
key <AC10> {[ dead_acute, dead_psili ]};
key.type[Group1] = "FOUR_LEVEL";
key <AC11> {[ dead_grave, dead_dasia, apostrophe,quotedbl ]};
key <AB05> {[ Greek_beta, Greek_BETA, U03E1, U03E0 ]}; // ϡ Ϡ
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "gr(simple)"
name[Group1] = "Greek (no dead keys)";
key <AC10> {[ semicolon, colon ]}; // ; :
};
// Greek layout rearranged as Colemak.
partial alphanumeric_keys
xkb_symbols "colemak" {
include "gr(basic)"
name[Group1] = "Greek (Colemak)";
key <AD01> {[ semicolon, colon, periodcentered ]};
key <AD02> {[ Greek_finalsmallsigma, Greek_SIGMA, U03DB, U03DA ]};
key <AD03> {[ Greek_phi, Greek_PHI, U03D5, Greek_PHI ]};
key <AD04> {[ Greek_pi, Greek_PI, U03E1, U03E0 ]};
key <AD05> {[ Greek_gamma, Greek_GAMMA, U03DD, U03DC ]};
key <AD06> {[ Greek_xi, Greek_XI, U037C, U03FE ]};
key <AD07> {[ Greek_lamda, Greek_LAMDA, U03F2, U03F9 ]};
key <AD08> {[ Greek_theta, Greek_THETA, U03D1, U03F4 ]};
key <AD09> {[ Greek_upsilon, Greek_UPSILON, U03D2, yen ]};
key <AD10> {[ dead_acute, dead_diaeresis, dead_acute, dead_psili ]};
key <AC01> {[ Greek_alpha, Greek_ALPHA ]};
key <AC02> {[ Greek_rho, Greek_RHO, registered, U03F1 ]};
key <AC03> {[ Greek_sigma, Greek_SIGMA, section ]};
key <AC04> {[ Greek_tau, Greek_TAU ]};
key <AC05> {[ Greek_delta, Greek_DELTA, downarrow, uparrow ]};
key <AC06> {[ Greek_eta, Greek_ETA, U03F3, U037F ]};
key <AC07> {[ Greek_nu, Greek_NU, U0374, U0375 ]};
key <AC08> {[ Greek_epsilon, Greek_EPSILON, EuroSign, U03F5 ]};
key <AC09> {[ Greek_iota, Greek_IOTA, U037B, U03FD ]};
key <AC10> {[ Greek_omicron, Greek_OMICRON ]};
key <AB01> {[ Greek_zeta, Greek_ZETA, U037D, U03FF ]};
key <AB02> {[ Greek_chi, Greek_CHI, rightarrow, leftarrow ]};
key <AB03> {[ Greek_psi, Greek_PSI, copyright ]};
key <AB04> {[ Greek_omega, Greek_OMEGA, U03D6 ]};
key <AB05> {[ Greek_beta, Greek_BETA, U03D0 ]};
key <AB06> {[ Greek_kappa, Greek_KAPPA, U03DF, U03DE ]};
key <AB07> {[ Greek_mu, Greek_MU, U03FB, U03FA ]};
key <CAPS> {[ BackSpace, BackSpace, BackSpace, BackSpace ]};
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/gr(sun_type6)"
};

4
nixos/xkb/symbols/grab Normal file
View File

@@ -0,0 +1,4 @@
default partial
xkb_symbols "debug" {
include "srvr_ctrl(grab_debug)"
};

328
nixos/xkb/symbols/group Normal file
View File

@@ -0,0 +1,328 @@
// The right Alt key (while pressed) chooses the next group.
partial modifier_keys
xkb_symbols "switch" {
key <RALT> {[ Mode_switch, Multi_key ]};
};
// The left Alt key (while pressed) chooses the next group.
partial modifier_keys
xkb_symbols "lswitch" {
key <LALT> {[ Mode_switch, Multi_key ]};
};
// The left Win key (while pressed) chooses the next group.
partial modifier_keys
xkb_symbols "lwin_switch" {
key <LWIN> {[ Mode_switch, Multi_key ]};
};
// The right Win key (while pressed) chooses the next group.
partial modifier_keys
xkb_symbols "rwin_switch" {
key <RWIN> {[ Mode_switch, Multi_key ]};
};
// Either Win key (while pressed) chooses the next group.
partial modifier_keys
xkb_symbols "win_switch" {
include "group(lwin_switch)"
include "group(rwin_switch)"
};
// The Menu key (while pressed) chooses the next group,
// while Shift+Menu acts as Menu.
partial modifier_keys
xkb_symbols "menu_switch" {
key <MENU> {[ Mode_switch, Menu ]};
};
// The right Ctrl key (while pressed) chooses the next group.
partial modifier_keys
xkb_symbols "rctrl_switch" {
key <RCTL> {[ Mode_switch ]};
};
// The Caps_Lock key (while pressed) chooses the next group,
// while Alt+Caps_Lock toggles CapsLock.
partial modifier_keys
xkb_symbols "caps_switch" {
key <CAPS> {[ Mode_switch, Caps_Lock ], type[group1] = "PC_ALT_LEVEL2" };
};
// Pressing the right Alt key switches to the next group.
partial modifier_keys
xkb_symbols "toggle" {
key <RALT> {[ ISO_Next_Group ]};
};
// Pressing the left Alt key switches to the next group.
partial modifier_keys
xkb_symbols "lalt_toggle" {
key <LALT> {[ ISO_Next_Group ]};
};
// Pressing both Shift keys switches to the next or previous group
// (depending on which Shift is pressed first).
partial modifier_keys
xkb_symbols "shifts_toggle" {
key <LFSH> {[ Shift_L, ISO_Prev_Group ], type[group1] = "TWO_LEVEL" };
key <RTSH> {[ Shift_R, ISO_Next_Group ], type[group1] = "TWO_LEVEL" };
};
// Pressing Caps_Lock switches to the next group,
// while Shift+Caps_Lock toggles CapsLock.
partial modifier_keys
xkb_symbols "caps_toggle" {
key <CAPS> {[ ISO_Next_Group, Caps_Lock ], type[group1] = "TWO_LEVEL" };
};
// Pressing Shift+Caps_Lock switches to the next group.
partial modifier_keys
xkb_symbols "shift_caps_toggle" {
key <CAPS> {[ any, ISO_Next_Group ], type[group1] = "TWO_LEVEL" };
};
// Pressing Alt+Space switches to the next group.
partial modifier_keys
xkb_symbols "alt_space_toggle" {
key <SPCE> {[ space, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
};
// Pressing Win+Space switches to the next group.
partial modifier_keys
xkb_symbols "win_space_toggle" {
key <SPCE> {[ space, ISO_Next_Group ], type[group1] = "PC_SUPER_LEVEL2" };
};
// Pressing Ctrl+Space switches to the next group.
partial modifier_keys
xkb_symbols "ctrl_space_toggle" {
key <SPCE> {[ space, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
};
// Pressing Caps_Lock selects the first group,
// pressing Shift+Caps_Lock selects the second group.
partial modifier_keys
xkb_symbols "caps_select" {
key <CAPS> {[ ISO_First_Group, ISO_Last_Group ], type[group1] = "TWO_LEVEL" };
};
// Pressing the left Win key selects the first group,
// pressing the right Win key or the Menu key selects the second group.
partial modifier_keys
xkb_symbols "win_menu_select" {
key <LWIN> {[ ISO_First_Group ]};
key <RWIN> {[ ISO_Last_Group ]};
key <MENU> {[ ISO_Last_Group ]};
};
// Pressing the left Ctrl key selects the first group,
// pressing the right Ctrl key selects the second group.
partial modifier_keys
xkb_symbols "ctrl_select" {
key <LCTL> {[ ISO_First_Group ]};
key <RCTL> {[ ISO_Last_Group ]};
};
//
// CTRL-SHIFT toggle section
//
partial modifier_keys
xkb_symbols "lctrl_lshift_toggle" {
key <LFSH> {[ Shift_L, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
key <LCTL> {[ Control_L, ISO_Next_Group ]};
};
partial modifier_keys
xkb_symbols "lctrl_lshift_toggle_rev" {
key <LFSH> {[ Shift_L, ISO_Prev_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
key <LCTL> {[ Control_L, ISO_Prev_Group ]};
};
partial modifier_keys
xkb_symbols "rctrl_rshift_toggle" {
key <RTSH> {[ Shift_R, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
key <RCTL> {[ Control_R, ISO_Next_Group ]};
};
partial modifier_keys
xkb_symbols "ctrl_shift_toggle" {
include "group(lctrl_lshift_toggle)"
include "group(rctrl_rshift_toggle)"
};
partial modifier_keys
xkb_symbols "ctrl_shift_toggle_bidir" {
include "group(lctrl_lshift_toggle_rev)"
include "group(rctrl_rshift_toggle)"
};
//
// CTRL-ALT toggle section
//
partial modifier_keys
xkb_symbols "lctrl_lalt_toggle" {
key <LALT> {[ NoSymbol, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
key <LCTL> {[ Control_L, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
};
partial modifier_keys
xkb_symbols "lctrl_lalt_toggle_rev" {
key <LALT> {[ NoSymbol, ISO_Prev_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
key <LCTL> {[ Control_L, ISO_Prev_Group ], type[group1] = "PC_ALT_LEVEL2" };
};
partial modifier_keys
xkb_symbols "rctrl_ralt_toggle" {
key <RALT> {[ NoSymbol, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
key <RCTL> {[ Control_R, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
};
partial modifier_keys
xkb_symbols "ctrl_alt_toggle" {
include "group(lctrl_lalt_toggle)"
include "group(rctrl_ralt_toggle)"
};
partial modifier_keys
xkb_symbols "ctrl_alt_toggle_bidir" {
include "group(lctrl_lalt_toggle_rev)"
include "group(rctrl_ralt_toggle)"
};
//
// ALT-SHIFT toggle section
//
partial modifier_keys
xkb_symbols "lalt_lshift_toggle" {
key <LALT> {[ NoSymbol, ISO_Next_Group ], type[group1] = "TWO_LEVEL" };
key <LFSH> {[ Shift_L, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
};
partial modifier_keys
xkb_symbols "lalt_lshift_toggle_rev" {
key <LALT> {[ NoSymbol, ISO_Prev_Group ], type[group1] = "TWO_LEVEL" };
key <LFSH> {[ Shift_L, ISO_Prev_Group ], type[group1] = "PC_ALT_LEVEL2" };
};
partial modifier_keys
xkb_symbols "ralt_rshift_toggle" {
key <RALT> {[ NoSymbol, ISO_Next_Group ], type[group1] = "TWO_LEVEL" };
key <RTSH> {[ Shift_R, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
};
partial modifier_keys
xkb_symbols "alt_shift_toggle" {
include "group(lalt_lshift_toggle)"
include "group(ralt_rshift_toggle)"
};
partial modifier_keys
xkb_symbols "alt_shift_toggle_bidir" {
include "group(lalt_lshift_toggle_rev)"
include "group(ralt_rshift_toggle)"
};
// Pressing the Menu key switches to the next group,
// while Shift+Menu acts as Menu.
partial modifier_keys
xkb_symbols "menu_toggle" {
key <MENU> {[ ISO_Next_Group, Menu ]};
};
// Pressing the left Win key switches to the next group.
partial modifier_keys
xkb_symbols "lwin_toggle" {
key <LWIN> {[ ISO_Next_Group ]};
};
// Pressing the right Win key switches to the next group.
partial modifier_keys
xkb_symbols "rwin_toggle" {
key <RWIN> {[ ISO_Next_Group ]};
};
// Pressing both Ctrl keys switches to the next or previous group
// (depending on which Ctrl is pressed first).
partial modifier_keys
xkb_symbols "ctrls_toggle" {
key <LCTL> {[ NoSymbol, ISO_Prev_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
key <RCTL> {[ NoSymbol, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
};
// Pressing both Alt keys switches to the next or previous group
// (depending on which Alt is pressed first).
partial modifier_keys
xkb_symbols "alts_toggle" {
key <LALT> {[ Alt_L, ISO_Prev_Group ], type[group1] = "PC_ALT_LEVEL2" };
key <RALT> {[ Alt_R, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
};
// Pressing Alt plus AltGr switches to the next or previous group
// (depending on which one is pressed first).
partial modifier_keys
xkb_symbols "alt_altgr_toggle" {
key <LALT> {[ Alt_L, Alt_L, ISO_Prev_Group, ISO_Prev_Group ],
type[group1] = "FOUR_LEVEL" };
key <RALT> {[ ISO_Level3_Shift, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
};
// Pressing the left Shift key switches to the next group.
partial modifier_keys
xkb_symbols "lshift_toggle" {
key <LFSH> {[ ISO_Next_Group ]};
};
// Pressing the right Shift key switches to the next group.
partial modifier_keys
xkb_symbols "rshift_toggle" {
key <RTSH> {[ ISO_Next_Group ]};
};
// Pressing the left Ctrl key switches to the next group.
partial modifier_keys
xkb_symbols "lctrl_toggle" {
key <LCTL> {[ ISO_Next_Group ]};
};
// Pressing the right Ctrl key switches to the next group.
partial modifier_keys
xkb_symbols "rctrl_toggle" {
key <RCTL> {[ ISO_Next_Group ]};
};
// Pressing Alt+Caps_Lock switches to the next group.
partial modifier_keys
xkb_symbols "alt_caps_toggle" {
key <CAPS> {[ any, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
};
hidden partial modifier_keys
xkb_symbols "olpc" {
key <I219> {[ ISO_Next_Group, ISO_Prev_Group ]};
};
// Pressing the Scroll Lock key switches to the next group.
partial modifier_keys
xkb_symbols "sclk_toggle" {
key <SCLK> {[ ISO_Next_Group ]};
};
// Pressing Ctrl + the left Win key selects the first group,
// pressing Ctrl + the Menu key selects the second group.
partial modifier_keys
xkb_symbols "lctrl_lwin_rctrl_menu" {
key <LWIN> {[ Super_L, ISO_First_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
key <MENU> {[ Menu, ISO_Last_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
};
// Pressing Ctrl + the left Win key switches to the next group.
partial modifier_keys
xkb_symbols "lctrl_lwin_toggle" {
key <LWIN> {[ Super_L, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
};

60
nixos/xkb/symbols/hhkbse Normal file
View File

@@ -0,0 +1,60 @@
// HHKB Keyboard layout for Swedish, by cnst.
default partial alphanumeric_keys
xkb_symbols "hhkbse" {
include "latin(type2)"
include "se(se)"
name[Group1]="Sweden - HHKBse";
key <AE01> {[ 1, exclam, paragraph, onehalf ]};
key <AE02> {[ 2, quotedbl, at ]};
key <AE03> {[ 3, numbersign, sterling ]};
key <AE04> {[ 4, dollar, currency ]};
key <AE05> {[ 5, percent, EuroSign ]};
key <AE06> {[ 6, ampersand, yen, radical ]};
key <AE07> {[ 7, slash, braceleft ]};
key <AE08> {[ 8, parenleft, bracketleft ]};
key <AE09> {[ 9, parenright, bracketright ]};
key <AE10> {[ 0, equal, braceright ]};
key <AE11> {[ plus, question, backslash, questiondown ]};
key <AE12> {[ Next, braceleft, Home ]};
key <BKSL> {[ Prior, braceright, End ]};
key <TLDE> {[ Delete, asterisk, asciicircum ]};
key <AD01> {[ q, Q ]};
key <AD02> {[ w, W ]};
key <AD03> {[ e, E, EuroSign ]};
key <AD04> {[ r, R, registered, trademark ]};
key <AD05> {[ t, T ]};
key <AD06> {[ y, Y ]};
key <AD07> {[ u, U ]};
key <AD08> {[ i, I ]};
key <AD09> {[ o, O ]};
key <AD10> {[ p, P, Up, Greek_pi ]};
key <AD11> {[ aring, Aring ]};
key <AD12> {[apostrophe, bar, asciitilde, brokenbar ]};
key <AC01> {[ a, A ]};
key <AC02> {[ s, S ]};
key <AC03> {[ d, D ]};
key <AC04> {[ f, F ]};
key <AC05> {[ g, G ]};
key <AC06> {[ h, H ]};
key <AC07> {[ j, J ]};
key <AC08> {[ k, K ]};
key <AC09> {[ l, L, Left ]};
key <AC10> {[ odiaeresis, Odiaeresis, Down ]};
key <AC11> {[ adiaeresis, Adiaeresis, Right ]};
key <AB01> {[ z, Z, less ]};
key <AB02> {[ x, X, greater ]};
key <AB03> {[ c, C, copyright ]};
key <AB04> {[ v, V ]};
key <AB05> {[ b, B ]};
key <AB06> {[ n, N ]};
key <AB07> {[ m, M, mu ]};
key <AB08> {[ comma, semicolon ]};
key <AB09> {[ period, colon ]};
key <AB10> {[ minus, underscore, endash ]};
};

View File

@@ -0,0 +1,103 @@
//
//Copyright 1996, 1998 The Open Group
//
//Permission to use, copy, modify, distribute, and sell this software and its
//documentation for any purpose is hereby granted without fee, provided that
//the above copyright notice appear in all copies and that both that
//copyright notice and this permission notice appear in supporting
//documentation.
//
//The above copyright notice and this permission notice shall be
//included in all copies or substantial portions of the Software.
//
//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
//OTHER DEALINGS IN THE SOFTWARE.
//
//Except as contained in this notice, the name of The Open Group shall
//not be used in advertising or otherwise to promote the sale, use or
//other dealings in this Software without prior written authorization
//from The Open Group.
//
// US/ASCII layout for a HP non-PC keyboard
xkb_symbols "hil" {
include "us(basic)"
// A few alphanumeric keys are different
key <TLDE> { [ grave, asciitilde ]};
key <RTSH> { [ Shift_R ]};
key <LALT> { [ Meta_L ]};
key <RALT> { [ Meta_R ]};
// End alphanumeric section
// Begin "Function" section
key <BRK> { [ Break ]};
key <STOP> { [ Cancel ]};
key <FK01> { [ F1 ] };
key <FK02> { [ F2 ] };
key <FK03> { [ F3 ] };
key <FK04> { [ F4 ] };
key <MENU> { [ Menu ] };
key <SYST> { [ hpSystem ]};
key <FK05> { [ F5 ] };
key <FK06> { [ F6 ] };
key <FK07> { [ F7 ] };
key <FK08> { [ F8 ] };
key <CLRL> { [ hpClearLine ]};
key <CLR> { [ Clear ]};
key <FK09> { [ F9 ] };
key <FK10> { [ F10 ] };
key <FK11> { [ F11 ] };
key <FK12> { [ F12 ] };
// End "Function" section
// Begin "Editing" section
key <PRSC> { [ Execute, Print ]};
key <INSL> { [ hpInsertLine ]};
key <DELL> { [ hpDeleteLine ]};
key <INSC> { [ hpInsertChar ]};
key <DELC> { [ hpDeleteChar ]};
key <HOME> { [ Home ] };
key <PGUP> { [ Prior ] };
key <PGDN> { [ Next ] };
key <SELE> { [ Select ] };
key <LEFT> { [ Left ] };
key <DOWN> { [ Down ] };
key <UP> { [ Up ] };
key <RGHT> { [ Right ]};
// End "Editing" section
// Begin "Keypad" section
key <KPMU> { [ KP_Multiply ]};
key <KPDV> { [ KP_Divide ]};
key <KPAD> { [ KP_Add ]};
key <KPSU> { [ KP_Subtract ]};
key <KP7> { [ KP_7 ] };
key <KP8> { [ KP_8 ] };
key <KP9> { [ KP_9 ] };
key <KPEN> { [ KP_Enter ]};
key <KP4> { [ KP_4 ] };
key <KP5> { [ KP_5 ] };
key <KP6> { [ KP_6 ] };
key <KPSP> { [ KP_Separator ]};
key <KP1> { [ KP_1 ] };
key <KP2> { [ KP_2 ] };
key <KP3> { [ KP_3 ] };
key <KPTB> { [ KP_Tab ]};
key <KP0> { [ KP_0 ] };
key <KPDL> { [ KP_Decimal ] };
// End "Keypad" section
modifier_map Shift { Shift_R };
modifier_map Mod1 { Meta_L, Meta_R };
modifier_map Mod2 { Alt_L };
modifier_map Mod3 { Mode_switch };
};

75
nixos/xkb/symbols/hr Normal file
View File

@@ -0,0 +1,75 @@
// Keyboard layouts for Croatia.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "rs(latin)"
name[Group1]="Croatian";
// Swap the third and fourth level for four dead keys, for easier access
// to the non-dead symbols, and to match the XFree86 Croatian layout.
key <AE01> { [ 1, exclam, asciitilde, dead_tilde ] };
key <AE03> { [ 3, numbersign, asciicircum, dead_circumflex ] };
key <AE05> { [ 5, percent, degree, dead_abovering ] };
key <AE07> { [ 7, slash, grave, dead_grave ] };
// Provide the correct closing double quote mark.
key <AC03> { [ any, any, rightdoublequotemark, guillemotleft ] };
key <AB10> { [ minus, underscore, dead_belowdot, dead_abovedot ] };
};
partial alphanumeric_keys
xkb_symbols "us" {
include "us"
name[Group1]= "Croatian (US)";
key <AD01> { [ any, any, backslash ] };
key <AD02> { [ any, any, bar ] };
key <AD03> { [ any, any, EuroSign ] };
key <AD06> { [ any, any, z, Z ] };
key <AD11> { [ any, any, scaron, Scaron ] };
key <AD12> { [ any, any, dstroke, Dstroke ] };
key <AC04> { [ any, any, bracketleft ] };
key <AC05> { [ any, any, bracketright ] };
key <AC08> { [ any, any, lstroke ] };
key <AC09> { [ any, any, Lstroke ] };
key <AC10> { [ any, any, ccaron, Ccaron ] };
key <AC11> { [ any, any, cacute, Cacute ] };
key <BKSL> { [ any, any, zcaron, Zcaron ] };
key <LSGT> { [ any, any, bar ] };
key <AB01> { [ any, any, y, Y ] };
key <AB04> { [ any, any, at ] };
key <AB05> { [ any, any, braceleft ] };
key <AB06> { [ any, any, braceright ] };
key <AB07> { [ any, any, section ] };
key <AB08> { [ any, any, semicolon ] };
key <AB09> { [ any, any, colon ] };
key <AB10> { [ any, any, minus, underscore ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "alternatequotes" {
include "rs(latinalternatequotes)"
name[Group1]= "Croatian (with guillemets)";
};
partial alphanumeric_keys
xkb_symbols "unicode" {
include "rs(latinunicode)"
name[Group1]= "Croatian (with Croatian digraphs)";
};
partial alphanumeric_keys
xkb_symbols "unicodeus" {
include "rs(latinunicodeyz)"
name[Group1]= "Croatian (US, with Croatian digraphs)";
};

817
nixos/xkb/symbols/hu Normal file
View File

@@ -0,0 +1,817 @@
// Keyboard layouts for Hungary.
// Some widely used Hungarian keyboard layouts.
//
// (C) 2002-2004 Soós Péter <sp@osb.hu>
// (C) 2010 Andras Timar <timar@fsf.hu>
//
// Permission is granted to anyone to use, distribute and modify
// this file in any way, provided that the above copyright notice
// is left intact and the author of the modification summarizes
// the changes in this header.
//
// This file is distributed without any expressed or implied warranty.
//
// Changes:
// 2004-04-17 - Moved to new style (only Unicode based layouts)
// - Added consistent dead key support
// - Fixed abovedot
// - Added adiaeresis
// - Added EuroSign and cent symbol
// 2010-04-23 - Added doublelowquotemark
// - Added rightdoublequotemark
// - Added endash
// 2010-05-13 - Added ellipsis
// Default layout
default partial
xkb_symbols "basic" {
include "hu(102_qwertz_comma_dead)"
name[Group1] = "Hungarian";
};
// Standard layout
partial
xkb_symbols "standard" {
include "hu(102_qwertz_comma_dead)"
name[Group1] = "Hungarian (standard)";
};
// Standard layout without dead key support
partial
xkb_symbols "nodeadkeys" {
include "hu(102_qwertz_comma_nodead)"
name[Group1] = "Hungarian (no dead keys)";
};
// Qwerty layout
partial
xkb_symbols "qwerty" {
include "hu(101_qwerty_comma_dead)"
name[Group1] = "Hungarian (QWERTY)";
};
// Main layouts
// 101_qwertz_comma_dead
// 101 key qwertz layout
// with decimal comma on keypad
// and with dead key support
partial
xkb_symbols "101_qwertz_comma_dead" {
name[Group1] = "Hungarian (QWERTZ, 101-key, comma, dead keys)";
include "latin"
include "hu(def_101)"
include "hu(def_qwertz)"
include "kpdl(comma)"
include "hu(def_dead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 101_qwertz_comma_nodead
// 101 key qwertz layout
// with decimal comma on keypad
// and without dead key support
partial
xkb_symbols "101_qwertz_comma_nodead" {
name[Group1] = "Hungarian (QWERTZ, 101-key, comma, no dead keys)";
include "latin"
include "hu(def_101)"
include "hu(def_qwertz)"
include "kpdl(comma)"
include "hu(def_nodead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 101_qwertz_dot_dead
// 101 key qwertz layout
// with decimal dot on keypad
// and with dead key support
partial
xkb_symbols "101_qwertz_dot_dead" {
name[Group1] = "Hungarian (QWERTZ, 101-key, dot, dead keys)";
include "latin"
include "hu(def_101)"
include "hu(def_qwertz)"
include "hu(def_dot)"
include "hu(def_dead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 101_qwertz_dot_nodead
// 101 key qwertz layout
// with decimal dot on keypad
// and without dead key support
partial
xkb_symbols "101_qwertz_dot_nodead" {
name[Group1] = "Hungarian (QWERTZ, 101-key, dot, no dead keys)";
include "latin"
include "hu(def_101)"
include "hu(def_qwertz)"
include "hu(def_dot)"
include "hu(def_nodead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 101_qwerty_comma_dead
// 101 key qwerty layout
// with decimal comma on keypad
// and with dead key support
partial
xkb_symbols "101_qwerty_comma_dead" {
name[Group1] = "Hungarian (QWERTY, 101-key, comma, dead keys)";
include "latin"
include "hu(def_101)"
include "hu(def_qwerty)"
include "kpdl(comma)"
include "hu(def_dead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 101_qwerty_comma_nodead
// 101 key qwerty layout
// with decimal comma on keypad
// and without dead key support
partial
xkb_symbols "101_qwerty_comma_nodead" {
name[Group1] = "Hungarian (QWERTY, 101-key, comma, no dead keys)";
include "latin"
include "hu(def_101)"
include "hu(def_qwerty)"
include "kpdl(comma)"
include "hu(def_nodead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 101_qwerty_dot_dead
// 101 key qwerty layout
// with decimal dot on keypad
// and with dead key support
partial
xkb_symbols "101_qwerty_dot_dead" {
name[Group1] = "Hungarian (QWERTY, 101-key, dot, dead keys)";
include "latin"
include "hu(def_101)"
include "hu(def_qwerty)"
include "hu(def_dot)"
include "hu(def_dead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 101_qwerty_dot_nodead
// 101 key qwerty layout
// with decimal dot on keypad
// and without dead key support
partial
xkb_symbols "101_qwerty_dot_nodead" {
name[Group1] = "Hungarian (QWERTY, 101-key, dot, no dead keys)";
include "latin"
include "hu(def_101)"
include "hu(def_qwerty)"
include "hu(def_dot)"
include "hu(def_nodead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 102_qwertz_comma_dead
// 102 key qwertz layout
// with decimal comma on keypad
// and with dead key support
partial
xkb_symbols "102_qwertz_comma_dead" {
name[Group1] = "Hungarian (QWERTZ, 102-key, comma, dead keys)";
include "latin"
include "hu(def_102)"
include "hu(def_qwertz)"
include "kpdl(comma)"
include "hu(def_dead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 102_qwertz_comma_nodead
// 102 key qwertz layout
// with decimal comma on keypad
// and without dead key support
partial
xkb_symbols "102_qwertz_comma_nodead" {
name[Group1] = "Hungarian (QWERTZ, 102-key, comma, no dead keys)";
include "latin"
include "hu(def_102)"
include "hu(def_qwertz)"
include "kpdl(comma)"
include "hu(def_nodead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 102_qwertz_dot_dead
// 102 key qwertz layout
// with decimal dot on keypad
// and with dead key support
partial
xkb_symbols "102_qwertz_dot_dead" {
name[Group1] = "Hungarian (QWERTZ, 102-key, dot, dead keys)";
include "latin"
include "hu(def_102)"
include "hu(def_qwertz)"
include "hu(def_dot)"
include "hu(def_dead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 102_qwertz_dot_nodead
// 102 key qwertz layout
// with decimal dot on keypad
// and without dead key support
partial
xkb_symbols "102_qwertz_dot_nodead" {
name[Group1] = "Hungarian (QWERTZ, 102-key, dot, no dead keys)";
include "latin"
include "hu(def_102)"
include "hu(def_qwertz)"
include "hu(def_dot)"
include "hu(def_nodead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 102_qwerty_comma_dead
// 102 key qwerty layout
// with decimal comma on keypad
// and with dead key support
partial
xkb_symbols "102_qwerty_comma_dead" {
name[Group1] = "Hungarian (QWERTY, 102-key, comma, dead keys)";
include "latin"
include "hu(def_102)"
include "hu(def_qwerty)"
include "kpdl(comma)"
include "hu(def_dead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 102_qwerty_comma_nodead
// 102 key qwerty layout
// with decimal comma on keypad
// and without dead key support
partial
xkb_symbols "102_qwerty_comma_nodead" {
name[Group1] = "Hungarian (QWERTY, 102-key, comma, no dead keys)";
include "latin"
include "hu(def_102)"
include "hu(def_qwerty)"
include "kpdl(comma)"
include "hu(def_nodead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 102_qwerty_dot_dead
// 102 key qwerty layout
// with decimal dot on keypad
// and with dead key support
partial
xkb_symbols "102_qwerty_dot_dead" {
name[Group1] = "Hungarian (QWERTY, 102-key, dot, dead keys)";
include "latin"
include "hu(def_102)"
include "hu(def_qwerty)"
include "hu(def_dot)"
include "hu(def_dead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// 102_qwerty_dot_nodead
// 102 key qwerty layout
// with decimal dot on keypad
// and without dead key support
partial
xkb_symbols "102_qwerty_dot_nodead" {
name[Group1] = "Hungarian (QWERTY, 102-key, dot, no dead keys)";
include "latin"
include "hu(def_102)"
include "hu(def_qwerty)"
include "hu(def_dot)"
include "hu(def_nodead)"
include "hu(def_common)"
include "level3(ralt_switch)"
};
// Partial layouts
// def_102:
// The standard Hungarian 102 key layout
hidden partial alphanumeric_keys
xkb_symbols "def_102" {
key <TLDE> { [ 0, section, notsign ] };
key <LSGT> { [ iacute, Iacute, less, greater ] };
};
// def_101:
// An alternative layout for 101 key keyboards
hidden partial alphanumeric_keys
xkb_symbols "def_101" {
key <TLDE> { [ iacute, Iacute, 0, section ] };
key <LSGT> { [ less, greater ] };
};
// def_qwertz:
// The standard Hungaryan qwertz layout
hidden partial alphanumeric_keys
xkb_symbols "def_qwertz" {
key <AD06> { [ z, Z, endash ] };
key <AB01> { [ y, Y, greater ] };
};
// def_qwerty:
// The qwerty layout for people who familiar with the standard US layout
hidden partial alphanumeric_keys
xkb_symbols "def_qwerty" {
key <AD06> { [ y, Y, endash ] };
key <AB01> { [ z, Z, greater ] };
};
// def_dot:
// The Hungarian standard is the comma on the keypad not decimal dot,
// but programmers hate it
hidden partial keypad_keys
xkb_symbols "def_dot" {
key <KPDL> { [ KP_Delete, KP_Decimal ] };
};
// def_dead:
// Dead keys support part
hidden partial alphanumeric_keys
xkb_symbols "def_dead" {
key <AE01> { [ 1, apostrophe, asciitilde, dead_tilde ] };
key <AE02> { [ 2, quotedbl, dead_caron, caron ] };
key <AE03> { [ 3, plus, asciicircum, dead_circumflex ] };
key <AE04> { [ 4, exclam, dead_breve, breve ] };
key <AE05> { [ 5, percent, dead_abovering, degree ] };
key <AE06> { [ 6, slash, dead_ogonek, ogonek ] };
key <AE07> { [ 7, equal, grave, dead_grave ] };
key <AE08> { [ 8, parenleft, dead_abovedot, abovedot ] };
key <AE09> { [ 9, parenright, dead_acute, acute ] };
key <AE10> { [ odiaeresis, Odiaeresis, dead_doubleacute, doubleacute ] };
key <AE11> { [ udiaeresis, Udiaeresis, dead_diaeresis, diaeresis ] };
key <AE12> { [ oacute, Oacute, dead_cedilla, cedilla ] };
};
// def_nodead:
// Without dead keys support
hidden partial alphanumeric_keys
xkb_symbols "def_nodead" {
key <AE01> { [ 1, apostrophe, asciitilde ] };
key <AE02> { [ 2, quotedbl, caron ] };
key <AE03> { [ 3, plus, asciicircum ] };
key <AE04> { [ 4, exclam, breve ] };
key <AE05> { [ 5, percent, degree ] };
key <AE06> { [ 6, slash, ogonek ] };
key <AE07> { [ 7, equal, grave ] };
key <AE08> { [ 8, parenleft, abovedot ] };
key <AE09> { [ 9, parenright, acute ] };
key <AE10> { [ odiaeresis, Odiaeresis, doubleacute ] };
key <AE11> { [ udiaeresis, Udiaeresis, diaeresis ] };
key <AE12> { [ oacute, Oacute, cedilla ] };
};
// def_common:
// The common part of all Hungarian layout above
hidden partial alphanumeric_keys
xkb_symbols "def_common" {
key <AD01> { [ q, Q, backslash ] };
key <AD02> { [ w, W, bar ] };
key <AD03> { [ e, E, Adiaeresis ] };
key <AD07> { [ u, U, EuroSign ] };
key <AD08> { [ i, I, Iacute, iacute ] };
key <AD09> { [ o, O, doublelowquotemark ] };
key <AD10> { [ p, P, rightdoublequotemark ] };
key <AD11> { [ odoubleacute, Odoubleacute, division ] };
key <AD12> { [ uacute, Uacute, multiply ] };
key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
key <AC02> { [ s, S, dstroke ] };
key <AC03> { [ d, D, Dstroke ] };
key <AC04> { [ f, F, bracketleft ] };
key <AC05> { [ g, G, bracketright ] };
key <AC07> { [ j, J, iacute, Iacute ] };
key <AC08> { [ k, K, lstroke ] };
key <AC09> { [ l, L, Lstroke ] };
key <AC10> { [ eacute, Eacute, dollar, cent ] };
key <AC11> { [ aacute, Aacute, ssharp, U1E9E ] };
key <BKSL> { [ udoubleacute, Udoubleacute, currency ] };
key <AB02> { [ x, X, numbersign ] };
key <AB03> { [ c, C, ampersand ] };
key <AB04> { [ v, V, at ] };
key <AB05> { [ b, B, braceleft ] };
key <AB06> { [ n, N, braceright ] };
key <AB07> { [ m, M, less ] };
key <AB08> { [ comma, question, semicolon ] };
key <AB09> { [ period, colon, greater ] };
key <AB10> { [ minus, underscore, asterisk ] };
};
// EXTRAS:
// Old Hungarian keyboard layouts.
//
// (C) 2013 Andras Tisza
// (C) 2017,2018,2020 Viktor Kovacs <kov.h.vik@gmail.com>
//
// Permission is granted to anyone to use, distribute and modify
// this file in any way, provided that the above copyright notice
// is left intact and the author of the modification summarizes
// the changes in this header.
//
// This file is distributed without any expressed or implied warranty.
//
// Changes:
// 2013 - Planned Old Hungarian layout
// 2017 - Added Old Hungarian layout
// 2018 - Resolved several easy-of-use issues, added extra punctuation and quotation marks.
// 2020 - Added ligature-capable layout (with zero-width-joiner), added copyright, copyleft symbols.
// 2020 - Added ZWNJ key to “Old Hungarian (for ligatures)”, changed its ohu_lig id to oldhunlig.
// - Added “oldhun_magic_numpad” for both "Old Hungarian" layouts, as a specialised numpad.
// 2023 - Added decimal comma
// 2023 - Removed basic “Old Hungarian” layout (oldhun) in favor of its variant with ligatures (oldhunlig).
// 2024 - Added “oldhun_sk*” Old Hungarian layouts for Carpathian Highlands' users
// Old Hungarian layout for ligatures
partial alphanumeric_keys
xkb_symbols "oldhunlig" {
name[Group1]="Old Hungarian (for ligatures)";
include "hu(oldhun_base)"
include "hu(oldhun_lig)"
include "hu(oldhun_magic_numpad)"
include "level3(ralt_switch)"
};
// The base Old Hungarian keys
// In the remarks you can read characters displayed only Unicode point
hidden partial alphanumeric_keys
xkb_symbols "oldhun_base" {
key.type[Group1]="FOUR_LEVEL_ALPHABETIC";
key <AD01> {[ U10CCE, U10C8E, backslash ]};
//Old-Hungarian gy, Gy
key <AD02> {[ U10CF0, U10CB0 ]};
//Old Hungarian zs, Zs
key <AD03> {[ U10CC9, U10C89, U10CCA, U10C8A ]};
//Old Hungarian e, E, close e, close E
key <AD04> {[ U10CE2, U10CA2, U10CE3, U10CA3 ]};
//Old Hungarian r, R, short r, short R
key <AD05> {[ U10CE6, U10CA6, U10CF1, U10CB1 ]};
//Old Hungarian t, T, ent-sharped sign,Ent-sharped sign
key <AD06> {[ U10CEF, U10CAF ]};
//Old Hungarian z, Z
key <AD07> {[ U10CEA, U10CAA, U10CF2, U10CB2 ]};
//Old Hungarian u, U, Old Hungarian us, Us
key <AD08> {[ U10CD0, U10C90, U10CD1, U10C91 ]};
//Old Hungarian i, I, ii, II
key <AD09> {[ U10CDB, U10C9B ]};
//Old Hungarian o, O
key <AD10> {[ U10CE0, U10CA0 ]};
//Old Hungarian p, P
key <AD11> {[ U10CDF, U10C9F ]};
//Old Hungarian oee, Oee
key <AD12> {[ U10CEB, U10CAB, U10CD5, U10C95 ]};
//Old Hungarian uu,Uu,unk,Unk
key <AC01> {[ U10CC0, U10C80, U10CC3, U10C83 ]};
//Old Hungarian a,A,amb,Amb
key <AC02> {[ U10CE4, U10CA4, U10CE1, U10CA1 ]};
//Old Hungarian s,S,emp,Emp
key <AC03> {[ U10CC7, U10C87, U10CE7, U10CA7 ]};
//Old Hungarian d,D, ent/ant/int, Ent/Ant/Int
key <AC04> {[ U10CCC, U10C8C, bracketleft ]};
//Old Hungarian f,F
key <AC05> {[ U10CCD, U10C8D, bracketright ]};
//Old Hungarian g, G
key <AC06> {[ U10CCF, U10C8F, U10CE9, U10CA9 ]};
//Old Hungarian h, H,ech, Ech
key <AC07> {[ U10CD2, U10C92, backslash ]};
//Old Hungarian j, J
key <AC08> {[ U10CD3, U10C93, U10CD4, U10C94 ]};
//Old Hungarian open k, open K, close k, close K
key <AC09> {[ U10CD6, U10C96 ]};
//Old Hungarian l, L
key <AC10> {[ U10CCB, U10C8B ]};
//Old Hungarian ee, EE
key <AC11> {[ U10CC1, U10C81, U10CC8, U10C88 ]};
//Old Hungarian aa, AA, and And
key <BKSL> {[ U10CEC, U10CAC ]};
//Old Hungarian ue, Ue
key <AB01> {[ U10CD7, U10C97, greater ]};
//Old Hungarian ly, Ly
key <AB02> {[ U10CE5, U10CA5, numbersign ]};
//Old Hungarian sz, Sz
key <AB03> {[ U10CC4, U10C84, U10CC5, U10C85 ]};
//Old Hungarian c,C, enc, Enc
key <AB04> {[ U10CEE, U10CAE, at ]};
//Old Hungarian v,V
key <AB05> {[ U10CC2, U10C82, braceleft ]};
//Old Hungarian b, B
key <AB06> {[ U10CD9, U10C99, braceright ]};
//Old Hungarian n, N
key <AB07> {[ U10CD8, U10C98, less ]};
//Old Hungarian m, M
key <AB08> {[ U2E41, U2E2E, U204F, comma ]};
//reversed question mark,reversed semicolon, reversed comma
key <AB09> {[ period, colon, greater ]};
key <AB10> {[ minus, underscore, asterisk ]};
key <LSGT> {[ U10CD1, U10C91, less ]};
//Old Hungarian ii,II
};
//Old Hungarian layout specialised keys
// In the remarks you can read characters displayed only Unicode point
hidden partial alphanumeric_keys
xkb_symbols "oldhun_origin" {
key.type[Group1]="FOUR_LEVEL_ALPHABETIC";
key <TLDE> {[ section, U200F, U200E, 0 ]};
//Right to left mark, left to right mark
key <AE01> {[ U10CFA, apostrophe, U2E42, 1 ]};
//Old Hungarian one, reversed 9 double low quotemark
key <AE02> {[ U10CFB, quotedbl, U201F, 2 ]};
//Old Hungarian five, reversed 9 double upper quotemark
key <AE03> {[ U10CFC, plus, minus, 3 ]};
//Old Hungarian ten
key <AE04> {[ U10CFD, exclam, U203C, 4 ]};
//Old Hungarian fifty,double exclam
key <AE05> {[ U10CFE, percent, U2026, 5 ]};
//Old Hungarian hundred, triple dot
key <AE06> {[ U10CFF, slash, backslash, 6 ]};
//Old Hungarian thousand
key <AE07> {[ U10CC6, U10C86, equal, 7 ]};
//Old Hungarian cs, Cs
key <AE08> {[ U10CDA, U10C9A, parenleft, 8 ]};
//Old Hungarian ny, Ny
key <AE09> {[ U10CE8, U10CA8, parenright, 9 ]};
//Old Hungarian ty, Ty
key <AE10> {[ U10CDE, U10C9E, U10CDD, U10C9D ]};
//Old Hungarian Rudimenta oe, Oe, Nikolsburg oe, Oe
key <AE11> {[ U10CED, U10CAD, section ]};
//Old Hungarian ue , Ue
key <AE12> {[ U10CDC, U10C9C, copyright, U1F12F ]};
//Old Hungarian oo, OO, copyleft
};
//Special section for "Old Hungarian (for ligatures)" layout
// In the remarks you can read characters displayed only Unicode point
hidden partial alphanumeric_keys
xkb_symbols "oldhun_lig" {
key.type[Group1]="FOUR_LEVEL_ALPHABETIC";
key <TLDE> {[ U200D, U200F, U200C, 0 ]};
//Zero-width-joiner,Right to left mark, Zero-width-non-joiner
//Zero-width-joiner and Zero-width-non-joiner are reqired for ligatures
key <AE01> {[ U10CFA, apostrophe, U2E42, 1 ]};
//Old Hungarian one, reversed 9 double low quotemark
key <AE02> {[ U10CFB, quotedbl, U201F, 2 ]};
//Old Hungarian five, reversed 9 double upper quotemark
key <AE03> {[ U10CFC, plus, minus, 3 ]};
//Old Hungarian ten
key <AE04> {[ U10CFD, exclam, U203C, 4 ]};
//Old Hungarian fifty,double exclam
key <AE05> {[ U10CFE, percent, U2026, 5 ]};
//Old Hungarian hundred, triple dot
key <AE06> {[ U10CFF, slash, backslash, 6 ]};
//Old Hungarian thousand
key <AE07> {[ U10CC6, U10C86, equal, 7 ]};
//Old Hungarian cs, Cs
key <AE08> {[ U10CDA, U10C9A, parenleft, 8 ]};
//Old Hungarian ny, Ny
key <AE09> {[ U10CE8, U10CA8, parenright, 9 ]};
//Old Hungarian ty, Ty
key <AE10> {[ U10CDE, U10C9E, U10CDD, U10C9D ]};
//Old Hungarian Rudimenta oe, Oe, Nikolsburg oe, Oe
key <AE11> {[ U10CED, U10CAD, section ]};
//Old Hungarian ue , Ue
key <AE12> {[ U10CDC, U10C9C, copyright, U1F12F ]};
//Old Hungarian oo, OO, copyleft
};
// Old Hungarian layouts for Carpathian Highlands' users
partial alphanumeric_keys
xkb_symbols "oldhun_sk_sh" {
name[Group1] = "Old Hungarian (Carpathian Highlands, S as Sh)";
key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
include "hu(ohu_sk_fullcaps_req)"
key.type[Group1] = "FOUR_LEVEL";
include "hu(ohu_sk_nocaps_req)"
key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
include "hu(ohu_sk_semicaps_req)"
include "hu(oldhun_magic_numpad)"
key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
include "hu(SK_Sh)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "oldhun_sk_sz" {
name[Group1] = "Old Hungarian (Carpathian Highlands, S as Sz)";
key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
include "hu(ohu_sk_fullcaps_req)"
key.type[Group1] = "FOUR_LEVEL";
include "hu(ohu_sk_nocaps_req)"
key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
include "hu(ohu_sk_semicaps_req)"
include "hu(oldhun_magic_numpad)"
key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
include "hu(SK_Sz)"
include "level3(ralt_switch)"
};
hidden partial alphanumeric_keys
xkb_symbols "SK_Sh"{
key <AC02> { [ U10CE4, U10CA4, U10CE1, U10CA1 ] };
// Old Hungarian small and capital S, Emp
};
hidden partial alphanumeric_keys
xkb_symbols "SK_Sz"{
key <AC02> { [ U10CE5, U10CA5, U10CE1, U10CA1 ] };
// Old Hungarian small and capital Sz, Emp
};
hidden partial alphanumeric_keys
xkb_symbols "ohu_sk_fullcaps_req"{
key <AE01> { [ plus, exclam, plus, 1 ] };
key <AE02> { [ U10CD7, U10C97, U10CFA, 2 ] };
// Old Hungarian small and capital Ly, Old Hungarian number ONE
key <AE03> { [ U10CE4, U10CA4, U10CFB, 3 ] };
// Old Hungarian small and capital S, Old Hungarian number FIVE
key <AE04> { [ U10CC6, U10C86, U10CFC, 4 ] };
// Old Hungarian small and capital Cs, Old Hungarian number TEN
key <AE05> { [ U10CE8, U10CA8, U10CFD, 5 ]};
// Old Hungarian small and capital Ty, Old Hungarian number FIFTY
key <AE06> { [ U10CF0, U10CB0, U10CFE, 6 ] };
// Old Hungarian small and capital Zs, Old Hungarian number HUNDRED
key <AE07> { [ U10CEC, U10CAC, U10CFF, 7] };
// Old Hungarian small and capital NIKOLSBURG UE, Old Hungarian nomber THOUSAND
key <AE08> { [ U10CC1, U10C81, apostrophe, 8]};
// Old Hungarian small and capital AA
key <AE09> { [ U10CD1, U10C91, braceleft, 9] };
// Old Hungarian small and capital II
key <AE10> { [ U10CCB, U10C8B, braceright, 0] };
// Old Hungarian small and capital EE
key <AD03> { [ U10CC9, U10C89, U10CCA, U10C8A ] };
//Old Hubgarian small and capital E, close E
key <AD04> { [ U10CE2, U10CA2, U10CE3, U10CA3 ] };
// Old Hungarian small and capital letter R, short R
key <AD05> { [ U10CE6, U10CA6, U10CF1, U10CB1 ] };
//Old Hungarian small and capital letter T, Ent shaped sign
key <AD07> { [ U10CEA, U10CAA, U10CF2, U10CB2 ] };
//Old Hungarian small and capital letter U, US
key <AD08> { [ U10CD0, U10C90, U10CD1, U10C91 ] };
//Old Hungarian small and capital letter I,II
key <AD11> { [ U10CEB, U10CAB, U10CD5, U10C95] };
//Old Hungarian small and capital letter UU, Unk
key <AD12> { [ U10CDE, U10C9E, U10CDD, U10C9D ] };
//Old Hungarian small and capital letter Rudimenta OE,Nikolsburg OE
key <AC01> { [ U10CC0, U10C80, U10CC3, U10C83 ] };
//Old Hungarian small and capital letter A, Amb
key <AC03> { [ U10CC7, U10C87, U10CE7, U10CA7 ] };
//Old Hungarian small and capital letter D, Ent/Ant/int
key <AC06> { [ U10CCF, U10C8F, U10CE9, U10CA9 ] };
//Old Hungarian small and capital letter H, Ch
key <AC07> { [ U10CD2, U10C92, U10CD7, U10C97] };
//Old Hungarian small and capital letter J, Ly
key <AC09> { [ U10CD6, U10C96, U10CD7, U10C97 ] };
//Old Hungarian small and capital letter L, Ly
key <AC10> { [ U10CDC, U10C9C, U10CC8, U10C88 ] };
//Old Hungarian small and capital letter OO, And
key <AB01> { [ U10CEC, U10CAC, U10CC8, U10C88]};
//Old Hungarian small and capital letter Rudimenta UE, AMB
key <AB03> { [ U10CC4, U10C84, U10CC5, U10C85 ] };
//Old Hungarian small and capital letter C, NC
key <AC08> { [ U10CD3, U10C93, U10CD4, U10C94] };
//Old Hungarian small and capital letter eK,aK
};
hidden partial alphanumeric_keys
xkb_symbols "ohu_sk_nocaps_req"{
key <TLDE> { [ U200D, U200F, U200E, NoSymbol] };
//ZWJ, RTL, LTR
key <AE11> { [ equal, percent ,exclam, U2E42 ]};
key <AE12> { [ U204F, U204F, quotedbl, U201F ] };
key <LSGT> { [ backslash, bar, slash, NoSymbol ] };
key <AB08> { [ U2E41, U2E2E, U204F, comma ] };
// reversed comma, reversed question mark, reversed semicolon
key <AB09> { [ period, colon, greater, less ] };
key <AB10> { [ minus, underscore, asterisk, comma ] };
};
hidden partial alphanumeric_keys
xkb_symbols "ohu_sk_semicaps_req"{
key <AC11> { [ U10CDF,U10C9F, apostrophe, quotedbl ] };
//Old Hungarian small and capital letter OEE
key <BKSL> { [ U10CDA, U10C9A, backslash, parenright ] };
//Old Hungarian small and capital letter Ny
key <AD01> { [ U10CCE, U10C8E, backslash, slash ] };
//Old Hungarian small and capital Gy
key <AD02> { [ U10CF0, U10CB0, bar, NoSymbol ] };
//Old Hungarian small and capital Zs
key <AD06> { [ U10CEF, U10CAF, NoSymbol, NoSymbol] };
//Old Hungarian small and capital letter Z
key <AD09> { [ U10CDB, U10C9B, bracketright, multiply ] };
//Old Hungarian small and capital letter O
key <AD10> { [ U10CE0, U10CA0, bracketleft, division ] };
//Old Hungarian small and capital letter P
key <AC04> { [ U10CCC, U10C8C, bracketleft, bracketright ] };
//Old Hungaran small and capital letter F
key <AC05> { [ U10CCD, U10C8D, bracketright, bracketleft ] };
//Old Hungarian small and capital letter G
key <AB02> { [ U10CE5, U10CA5, numbersign, ampersand ] };
//Old Hungarian small and capital letter Sz
key <AB04> { [ U10CEE, U10CAE, at, NoSymbol ] };
//Old Hungarian small and capital letter V
key <AB05> { [ U10CC2, U10C82, braceleft, braceright ] };
//Old Hungarian small and capital letter B
key <AB06> { [ U10CD9, U10C99, braceright, braceleft ] };
//Old Hungarian small and capital letter N
key <AB07> { [ U10CD8, U10C98, asciicircum, NoSymbol ] };
//Old Hungarian small and capital letter M
};
// Numpad for Old Hungarian layouts
// In the remarks you can read characters displayed only Unicode point
hidden partial keypad_keys
xkb_symbols "oldhun_magic_numpad" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD";
key <NMLK> {[ Num_Lock, Num_Lock, Num_Lock, Num_Lock ]};
key <KP0> {[ KP_Insert, KP_0, U200C, U200C ]};
//Zero-width-non-joiner
key <KP7> {[ KP_Home, KP_7, U10CFA, U10CFA ]};
//Old Hungarian number one
key <KP8> {[ KP_Up, KP_8, U10CFB, U10CFB ]};
//Old Hungarian number five
key <KP9> {[ KP_Prior, KP_9, U10CFC, U10CFC ]};
//Old Hungarian number ten
key <KP4> {[ KP_Left, KP_4, U10CFD, U10CFD ]};
//Old Hungarian number fifty
key <KP5> {[ KP_Begin, KP_5, U10CFE, U10CFE ]};
//Old Hungarian number hundred
key <KP6> {[ KP_Right, KP_6, U10CFF, U10CFF ]};
//Old Hungarian number thousand
key <KP1> {[ KP_End, KP_1, U200F, U200F ]};
//Right-to-left mark
key <KP2> {[ KP_Down, KP_2, U200D, U200D ]};
//Zero-width-joiner
key <KP3> {[ KP_Next, KP_3, U200E, U200E ]};
//Left-to-right mark
key <KPEN> {[ KP_Enter, KP_Enter, KP_Enter, KP_Enter ]};
key <KPEQ> {[ KP_Equal, KP_Equal, KP_Equal, KP_Equal ]};
key <KPDL> {[ KP_Delete, KP_Separator, KP_Delete, KP_Separator ]};
key <KPPT> {[ KP_Separator, KP_Separator, KP_Separator, KP_Separator ]};
key <KPDV> {[ KP_Divide, KP_Divide, KP_Divide, KP_Divide ]};
key <KPMU> {[ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply ]};
key <KPSU> {[ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract ]};
key <KPAD> {[ KP_Add, KP_Add, KP_Add, KP_Add ]};
};
// English (US layout with Hungarian characters)
// Hungarian characters are included on right alt layer
partial alphanumeric_keys
xkb_symbols "us" {
include "us"
name[Group1] = "Hungarian (US)";
key <AD03> {[ e, E, eacute, Eacute ]}; // e E é É
key <AD05> {[ t, T, udoubleacute, Udoubleacute ]}; // t T ű Ű
key <AD06> {[ y, Y, udiaeresis, Udiaeresis ]}; // y Y ü Ü
key <AD07> {[ u, U, uacute, Uacute ]}; // u U ú Ú
key <AD08> {[ i, I, iacute, Iacute ]}; // i I í Í
key <AD09> {[ o, O, oacute, Oacute ]}; // o O ó Ó
key <AD10> {[ p, P, odiaeresis, Odiaeresis ]}; // p P ö Ö
key <AD11> {[ bracketleft, braceleft, odoubleacute, Odoubleacute ]}; // [ { ő Ő
key <AC01> {[ a, A, aacute, Aacute ]}; // a A á Á
include "level3(ralt_switch)"
};

222
nixos/xkb/symbols/id Normal file
View File

@@ -0,0 +1,222 @@
// Keyboard layouts for Indonesia.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "us(basic)"
name[Group1]= "Indonesian (Latin)";
};
// A layout for the Javanese script, usable for
// Javanese, Sundanese, Madurese, and others.
partial alphanumeric_keys
xkb_symbols "javanese" {
name[Group1]= "Javanese";
key <TLDE> {[ UA9DE, UA9DF ]}; // pada tirta tumetes, PADA ISEN-ISEN
key <AE01> {[ UA9D1, UA9C6 ]}; // PADA WINDU
key <AE02> {[ UA9D2, UA9CF ]}; // PANGRANGKEP
key <AE03> {[ UA9D3, UA9C3 ]}; // ANDAP
key <AE04> {[ UA9D4, UA9C4 ]}; // MADYA
key <AE05> {[ UA9D5, UA9C5 ]}; // LUHUR
key <AE06> {[ UA9D6, UA9BF ]}; // CAKRA (ra)
key <AE07> {[ UA9D7, UA9BD ]}; // KERET (rae)
key <AE08> {[ UA9D8, UA9B3 ]}; // CECAK TELU (nukta)
key <AE09> {[ UA9D9, UA9C1 ]}; // Left RERENGAN
key <AE10> {[ UA9D0, UA9C2 ]}; // Right RERENGAN
key <AE11> {[ UA98E, underscore ]}; // o
key <AE12> {[ UA989, UA98B ]}; // cerek (rae), NGA LELET RASWADI (loe)
key <AD01> {[ UA990, UA9B0 ]}; // ka sasak (qa), SA MAHAPRANA (ssa)
key <AD02> {[ UA9AE, UA98D ]}; // wa, AI
key <AD03> {[ UA9BC, UA98C ]}; // pepet (ae), E
key <AD04> {[ UA9AB, UA9AC ]}; // ra, RA AGUNG
key <AD05> {[ UA9A0, UA9A1 ]}; // ta, TA MURDA (tha)
key <AD06> {[ UA9AA, UA9BE ]}; // ya, PENGKAL
key <AD07> {[ UA9B8, UA9B9 ]}; // suku (u), SUKU MENDUT (uu)
key <AD08> {[ UA9B6, UA9B7 ]}; // wulu (i), WULU MELIK (ii)
key <AD09> {[ UA9BA, UA9B4 ]}; // taling (e), TARUNG (aa)
key <AD10> {[ UA9A5, UA9A6 ]}; // pa, PA MURDA (pha)
key <AD11> {[ UA9CA, UA9CB ]}; // pada adeg, PADA ADEG ADEG
key <AD12> {[ UA9CC, UA9CD ]}; // pada piseleh, Turned PADA PISELEH
key <AC01> {[ UA9BB, UA984 ]}; // ai, A
key <AC02> {[ UA9B1, UA9AF ]}; // sa, SA MURDA (sha)
key <AC03> {[ UA9A2, UA9A3 ]}; // da, DA MAHAPRANA (dha)
key <AC04> {[ UA99D, UA99E ]}; // dda, DDA MAHAPRANA (ddha)
key <AC05> {[ UA992, UA993 ]}; // ga, GA MURDA (gha)
key <AC06> {[ UA9B2, UA983 ]}; // ha, WIGNYAN
key <AC07> {[ UA997, UA999 ]}; // ja, JA MAHAPRANA (jha)
key <AC08> {[ UA98F, UA991 ]}; // ka, KA MURDA (kha)
key <AC09> {[ UA9AD, UA98A ]}; // la, NGA LELET
key <AC10> {[ UA9C7, UA988 ]}; // pada pangkat, U
key <AC11> {[ UA9B5, quotedbl ]}; // tolong (o)
key <BKSL> {[ UA9C0, UA985 ]}; // pangkon, I KAWI
key <LSGT> {[ bar, brokenbar ]};
key <AB01> {[ UA994, UA981 ]}; // nga, CECAK (ng)
key <AB02> {[ UA99A, UA998 ]}; // nya, NYA MURDA (jnya)
key <AB03> {[ UA995, UA996 ]}; // ca, CA MURDA (cha)
key <AB04> {[ UA99B, UA99C ]}; // tta, TTA MAHAPRANA (ttha)
key <AB05> {[ UA9A7, UA9A8 ]}; // ba, BA MURDA (bha)
key <AB06> {[ UA9A4, UA99F ]}; // na, NA MURDA (nna)
key <AB07> {[ UA9A9, UA980 ]}; // ma, CANDRABINDU
key <AB08> {[ UA9C8, UA986 ]}; // lingsa, I
key <AB09> {[ UA9C9, UA987 ]}; // lungsi, II
key <AB10> {[ UA982, question ]}; // layar (r)
};
//
// Default phonetic layout for Arab Melayu script.
//
partial alphanumeric_keys
xkb_symbols "melayu-phonetic" {
name[Group1]= "Indonesian (Arab Melayu, phonetic)";
key <TLDE> {[ grave, asciitilde, VoidSymbol, VoidSymbol ]};
key <AE01> {[ Arabic_1, exclam, 1, VoidSymbol ]};
key <AE02> {[ Arabic_2, at, 2, VoidSymbol ]};
key <AE03> {[ Arabic_3, numbersign, 3, VoidSymbol ]};
key <AE04> {[ Arabic_4, VoidSymbol, 4, dollar ]};
key <AE05> {[ Arabic_5, Arabic_percent, 5, percent ]};
key <AE06> {[ Arabic_6, asciicircum, 6, VoidSymbol ]};
key <AE07> {[ Arabic_7, ampersand, 7, VoidSymbol ]};
key <AE08> {[ Arabic_8, asterisk, 8, VoidSymbol ]};
key <AE09> {[ Arabic_9, parenright, 9, VoidSymbol ]};
key <AE10> {[ Arabic_0, parenleft, 0, VoidSymbol ]};
key <AE11> {[ minus, Arabic_tatweel, VoidSymbol, underscore ]};
key <AE12> {[ equal, plus, VoidSymbol, VoidSymbol ]};
key <AD01> {[ Arabic_qaf, Arabic_maddaonalef, VoidSymbol, VoidSymbol ]};
key <AD02> {[ Arabic_waw, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AD03> {[ Arabic_alefmaksura, Arabic_ain, VoidSymbol, VoidSymbol ]};
key <AD04> {[ Arabic_ra, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AD05> {[ Arabic_teh, Arabic_tehmarbuta, Arabic_tah, VoidSymbol ]};
key <AD06> {[ Arabic_yeh, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AD07> {[ Arabic_hamzaonwaw, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AD08> {[ Arabic_hamzaonyeh, Arabic_hamzaunderalef, VoidSymbol, VoidSymbol ]};
key <AD09> {[ Arabic_hamza, U0674, VoidSymbol, VoidSymbol ]}; // high_hamza
key <AD10> {[ Arabic_veh, VoidSymbol, VoidSymbol, VoidSymbol ]}; // p
key <AD11> {[ bracketright, braceright, VoidSymbol, VoidSymbol ]};
key <AD12> {[ bracketleft, braceleft, VoidSymbol, VoidSymbol ]};
key <BKSL> {[ backslash, bar, VoidSymbol, VoidSymbol ]};
key <AC01> {[ Arabic_alef, Arabic_hamzaonalef, VoidSymbol, VoidSymbol ]};
key <AC02> {[ Arabic_seen, Arabic_sheen, Arabic_sad, Arabic_theh ]};
key <AC03> {[ Arabic_dal, VoidSymbol, Arabic_dad, VoidSymbol ]};
key <AC04> {[ Arabic_feh, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AC05> {[ U0762, U06A0, Arabic_ghain, U06AF ]}; // g, ng, gaf (Tausug)
key <AC06> {[ Arabic_ha, Arabic_hah, VoidSymbol, VoidSymbol ]};
key <AC07> {[ Arabic_jeem, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AC08> {[ Arabic_keheh, Arabic_kaf, VoidSymbol, VoidSymbol ]}; // k
key <AC09> {[ Arabic_lam, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AC10> {[ Arabic_semicolon, colon, semicolon, VoidSymbol ]};
key <AC11> {[ guillemotleft, guillemotright, apostrophe, quotedbl ]};
key <LSGT> {[ bar, brokenbar, VoidSymbol, VoidSymbol ]};
key <AB01> {[ Arabic_zain, Arabic_thal, Arabic_zah, VoidSymbol ]};
key <AB02> {[ Arabic_khah, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AB03> {[ Arabic_tcheh, VoidSymbol, VoidSymbol, VoidSymbol ]}; // c
key <AB04> {[ Arabic_theh, VoidSymbol, VoidSymbol, U06CF ]}; // waw_with_dot_above (Malay)
key <AB05> {[ Arabic_beh, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AB06> {[ Arabic_noon, U06BD, VoidSymbol, VoidSymbol ]}; // ny
key <AB07> {[ Arabic_meem, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AB08> {[ Arabic_comma, greater, comma, U066B ]}; // decimal_separator
key <AB09> {[ period, less, Arabic_fullstop, U066C ]}; // thousands_separator
key <AB10> {[ slash, Arabic_question_mark, U060D, question ]}; // date_separator
include "level3(ralt_switch)"
};
//
// Extended phonetic layout for Arab Melayu, with extra, non-standard characters.
//
partial alphanumeric_keys
xkb_symbols "melayu-phoneticx" {
include "id(melayu-phonetic)"
name[Group1]= "Indonesian (Arab Melayu, extended phonetic)";
key <AE01> {[ NoSymbol, NoSymbol, NoSymbol, Arabic_superscript_alef ]};
key <AE09> {[ NoSymbol, NoSymbol, NoSymbol, UFD3E ]}; // ornate_left
key <AE10> {[ NoSymbol, NoSymbol, NoSymbol, UFD3F ]}; // ornate_right
key <AD02> {[ NoSymbol, NoSymbol, Arabic_shadda, NoSymbol ]};
key <AD03> {[ NoSymbol, NoSymbol, U08E6, U08E4 ]}; // curly_kasra, curly_fatha
key <AD07> {[ NoSymbol, NoSymbol, Arabic_damma, Arabic_dammatan ]};
key <AD08> {[ NoSymbol, NoSymbol, Arabic_kasra, Arabic_kasratan ]};
key <AD09> {[ NoSymbol, NoSymbol, U065D, NoSymbol ]}; // reversed_damma
key <AC01> {[ NoSymbol, NoSymbol, Arabic_fatha, Arabic_fathatan ]};
key <AC07> {[ NoSymbol, NoSymbol, U08F8, NoSymbol ]}; // right_arrowhead_above
key <AB02> {[ NoSymbol, NoSymbol, U065B, U065C ]}; // inverted_small_v_above, dot_below
key <AB03> {[ NoSymbol, NoSymbol, Arabic_sukun, U06E1 ]}; // small_high_dotless_head_of_khah
};
//
// Phonetic layout for Pegon script.
//
partial alphanumeric_keys
xkb_symbols "pegon-phonetic" {
name[Group1]= "Indonesian (Arab Pegon, phonetic)";
key <TLDE> {[ grave, asciitilde, VoidSymbol, VoidSymbol ]};
key <AE01> {[ Arabic_1, exclam, 1, VoidSymbol ]};
key <AE02> {[ Arabic_2, at, 2, VoidSymbol ]};
key <AE03> {[ Arabic_3, numbersign, 3, VoidSymbol ]};
key <AE04> {[ Arabic_4, VoidSymbol, 4, dollar ]};
key <AE05> {[ Arabic_5, Arabic_percent, 5, percent ]};
key <AE06> {[ Arabic_6, asciicircum, 6, VoidSymbol ]};
key <AE07> {[ Arabic_7, ampersand, 7, VoidSymbol ]};
key <AE08> {[ Arabic_8, asterisk, 8, VoidSymbol ]};
key <AE09> {[ Arabic_9, parenright, 9, VoidSymbol ]};
key <AE10> {[ Arabic_0, parenleft, 0, VoidSymbol ]};
key <AE11> {[ minus, Arabic_tatweel, VoidSymbol, underscore ]};
key <AE12> {[ equal, plus, VoidSymbol, VoidSymbol ]};
key <AD01> {[ Arabic_qaf, Arabic_maddaonalef, VoidSymbol, VoidSymbol ]};
key <AD02> {[ Arabic_waw, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AD03> {[ Arabic_alefmaksura, Arabic_ain, VoidSymbol, VoidSymbol ]};
key <AD04> {[ Arabic_ra, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AD05> {[ Arabic_teh, U069F, Arabic_tah, Arabic_tehmarbuta ]}; // th
key <AD06> {[ Arabic_yeh, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AD07> {[ Arabic_hamzaonwaw, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AD08> {[ Arabic_hamzaonyeh, Arabic_hamzaunderalef, VoidSymbol, VoidSymbol ]};
key <AD09> {[ Arabic_hamza, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AD10> {[ Arabic_veh, VoidSymbol, VoidSymbol, VoidSymbol ]}; // p
key <AD11> {[ bracketright, braceright, VoidSymbol, VoidSymbol ]};
key <AD12> {[ bracketleft, braceleft, VoidSymbol, VoidSymbol ]};
key <BKSL> {[ backslash, bar, VoidSymbol, VoidSymbol ]};
key <AC01> {[ Arabic_alef, Arabic_hamzaonalef, VoidSymbol, VoidSymbol ]};
key <AC02> {[ Arabic_seen, Arabic_sheen, Arabic_sad, Arabic_theh ]};
key <AC03> {[ Arabic_dal, U068E, Arabic_dad, VoidSymbol ]}; // dh
key <AC04> {[ Arabic_feh, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AC05> {[ U06AE, U06A0, Arabic_ghain, VoidSymbol ]}; // g, ng
key <AC06> {[ Arabic_ha, Arabic_hah, VoidSymbol, VoidSymbol ]};
key <AC07> {[ Arabic_jeem, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AC08> {[ Arabic_kaf, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AC09> {[ Arabic_lam, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AC10> {[ Arabic_semicolon, colon, semicolon, VoidSymbol ]};
key <AC11> {[ guillemotleft, guillemotright, apostrophe, quotedbl ]};
key <LSGT> {[ bar, brokenbar, VoidSymbol, VoidSymbol ]};
key <AB01> {[ Arabic_zain, Arabic_thal, Arabic_zah, VoidSymbol ]};
key <AB02> {[ Arabic_khah, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AB03> {[ Arabic_tcheh, VoidSymbol, VoidSymbol, VoidSymbol ]}; // c
key <AB04> {[ Arabic_theh, VoidSymbol, VoidSymbol, U06CF ]}; // v
key <AB05> {[ Arabic_beh, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AB06> {[ Arabic_noon, U06D1, VoidSymbol, VoidSymbol ]}; // ny
key <AB07> {[ Arabic_meem, VoidSymbol, VoidSymbol, VoidSymbol ]};
key <AB08> {[ Arabic_comma, greater, comma, U066B ]}; // decimal_separator
key <AB09> {[ period, less, Arabic_fullstop, U066C ]}; // thousands_separator
key <AB10> {[ slash, Arabic_question_mark, U060D, question ]}; // date_separator
include "level3(ralt_switch)"
};

328
nixos/xkb/symbols/ie Normal file
View File

@@ -0,0 +1,328 @@
// Keyboard layouts for Ireland.
// Support for Irish (old and new orthography), English, and Ogham.
// Original author: Seamus O Ciardhuain <seoc@cnds.ucd.ie>, 2002.
// The general idea is to provide the characters in ISO 8859-1,
// ISO 8859-14, ISO 8859-15, CP1252 and "Extended Latin-8".
// However, not all are accessible directly because there aren't
// enough keys; some need dead keys to access them, others the
// "Multi_key" compose sequences.
// The basic layout is a modern keyboard, but dotted consonants are
// accessible using a dead key (AltGr+H or AltGr+W).
// If a proper Clo Gaelach keyboard is needed, then use the layout
// defined below as ie(CloGaelach), which gives dotted consonants
// without use of a dead key.
default partial alphanumeric_keys
xkb_symbols "basic" {
// Modern keyboard for Irish and English
// - acute-accented vowels as AltGr+vowel and AltGr+Shift+vowel
// - euro currency sign as AltGr+4
// - Comhartha Agus (Tironian Sign Et) as AltGr+Shift+7
// - non-breaking space as AltGr+Space and AltGr+Shift+Space
// - matches hardware (keys and engraved symbols) for Irish keyboards
name[Group1] = "Irish";
key <TLDE> {[ grave, notsign, brokenbar, NoSymbol ]};
key <AE01> {[ 1, exclam, exclamdown, onesuperior ]};
key <AE02> {[ 2, quotedbl, trademark, twosuperior ]};
key <AE03> {[ 3, sterling, copyright, threesuperior ]};
key <AE04> {[ 4, dollar, EuroSign, cent ]};
key <AE05> {[ 5, percent, section, dagger ]};
key <AE06> {[ 6, asciicircum, dead_circumflex, permille ]};
key <AE07> {[ 7, ampersand, paragraph, U204A ]}; // Tironian Et
key <AE08> {[ 8, asterisk, dead_diaeresis, enfilledcircbullet ]};
key <AE09> {[ 9, parenleft, ordfeminine, periodcentered ]};
key <AE10> {[ 0, parenright, masculine, degree ]};
key <AE11> {[ minus, underscore, endash, emdash ]};
key <AE12> {[ equal, plus, notequal, plusminus ]};
key <AD01> {[ q, Q, oe, OE ]};
key <AD02> {[ w, W, dead_abovedot, dead_abovedot ]};
key <AD03> {[ e, E, eacute, Eacute ]};
key <AD04> {[ r, R, registered, permille ]};
key <AD05> {[ t, T, thorn, THORN ]};
key <AD06> {[ y, Y, yen, mu ]};
key <AD07> {[ u, U, uacute, Uacute ]};
key <AD08> {[ i, I, iacute, Iacute ]};
key <AD09> {[ o, O, oacute, Oacute ]};
key <AD10> {[ p, P, singlelowquotemark, NoSymbol ]};
key <AD11> {[ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ]};
key <AD12> {[ bracketright, braceright, leftsinglequotemark, rightsinglequotemark ]};
key <AC01> {[ a, A, aacute, Aacute ]};
key <AC02> {[ s, S, ssharp, U1E9E ]}; // ß ẞ
key <AC03> {[ d, D, eth, ETH ]};
key <AC04> {[ f, F, function, NoSymbol ]};
key <AC05> {[ g, G, copyright, NoSymbol ]};
key <AC06> {[ h, H, dead_abovedot, dead_abovedot ]};
key <AC07> {[ j, J, idotless, onequarter ]};
key <AC08> {[ k, K, dead_abovering, onehalf ]};
key <AC09> {[ l, L, acute, threequarters ]};
key <AC10> {[ semicolon, colon, ellipsis, doubledagger ]};
key <AC11> {[ apostrophe, at, ae, AE ]};
key <BKSL> {[ numbersign, asciitilde, guillemotleft, guillemotright ]};
key <LSGT> {[ backslash, bar, dead_grave, dead_acute ]};
key <AB01> {[ z, Z, leftanglebracket, rightanglebracket ]};
key <AB02> {[ x, X, multiply, approximate ]};
key <AB03> {[ c, C, dead_cedilla, cedilla ]};
key <AB04> {[ v, V, dead_caron, NoSymbol ]};
key <AB05> {[ b, B, diaeresis, NoSymbol ]};
key <AB06> {[ n, N, dead_tilde, NoSymbol ]};
key <AB07> {[ m, M, macron, NoSymbol ]};
key <AB08> {[ comma, less, lessthanequal, doublelowquotemark ]};
key <AB09> {[ period, greater, greaterthanequal, singlelowquotemark ]};
key <AB10> {[ slash, question, division, questiondown ]};
key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
include "level3(ralt_switch)"
include "compose(rwin)"
};
partial alphanumeric_keys
xkb_symbols "CloGaelach" {
// Adds support for Clo Gaelach (old orthography for Irish).
// Changes from "basic":
// - dotted consonants as AltGr+consonant or AltGr+Shift+consonant (TPSDFGCBM)
// - long lowercase r as AltGr+R
// - long lowercase s as AltGr+Z
// - long lowercase s dotted as AltGr+Shift+Z
// - some symbols moved around to retain them
// - several characters unlikely to be used are lost
// The long letters are needed only where the font provides
// both the long and short forms as different glyphs.
include "ie(basic)"
name[Group1] = "CloGaelach";
key <TLDE> {[ grave, notsign, brokenbar, ssharp ]};
key <AD04> {[ r, R, U027C, registered ]}; // long r
key <AD05> {[ t, T, tabovedot, Tabovedot ]};
key <AD10> {[ p, P, pabovedot, Pabovedot ]};
key <AC02> {[ s, S, sabovedot, Sabovedot ]};
key <AC03> {[ d, D, dabovedot, Dabovedot ]};
key <AC04> {[ f, F, fabovedot, Fabovedot ]};
key <AC05> {[ g, G, gabovedot, Gabovedot ]};
key <AB01> {[ z, Z, U017F, U1E9B ]}; // long s, long s dot
key <AB03> {[ c, C, cabovedot, Cabovedot ]};
key <AB05> {[ b, B, babovedot, Babovedot ]};
key <AB07> {[ m, M, mabovedot, Mabovedot ]};
key <LSGT> {[ backslash, bar, dead_grave, dead_cedilla ]};
};
partial alphanumeric_keys
xkb_symbols "UnicodeExpert" {
// This should eventually be a "Unicode Expert" layout like the Mac one.
name[Group1] = "Irish (UnicodeExpert)";
key <TLDE> {[ grave, notsign, brokenbar, brokenbar ]};
key <AE01> {[ 1, exclam, NoSymbol, NoSymbol ]};
key <AE02> {[ 2, quotedbl, dead_doubleacute, dead_doubleacute ]};
key <AE03> {[ 3, sterling, NoSymbol, NoSymbol ]};
key <AE04> {[ 4, dollar, EuroSign, EuroSign ]};
key <AE05> {[ 5, percent, NoSymbol, NoSymbol ]};
key <AE06> {[ 6, asciicircum, dead_circumflex, dead_circumflex ]};
key <AE07> {[ 7, ampersand, U204A, U204A ]}; // Tironian Et
key <AE08> {[ 8, asterisk, dead_abovering, dead_abovering ]};
key <AE09> {[ 9, parenleft, dead_breve, dead_breve ]};
key <AE10> {[ 0, parenright, dead_ogonek, dead_ogonek ]};
key <AE11> {[ minus, underscore, dead_macron, dead_macron ]};
key <AE12> {[ equal, plus, NoSymbol, NoSymbol ]};
key <AD01> {[ q, Q, NoSymbol, NoSymbol ]};
key <AD02> {[ w, W, NoSymbol, NoSymbol ]};
key <AD03> {[ e, E, eacute, Eacute ]};
key <AD04> {[ r, R, U027C, U027C ]}; // long r
key <AD05> {[ t, T, NoSymbol, NoSymbol ]};
key <AD06> {[ y, Y, NoSymbol, NoSymbol ]};
key <AD07> {[ u, U, uacute, Uacute ]};
key <AD08> {[ i, I, iacute, Iacute ]};
key <AD09> {[ o, O, oacute, Oacute ]};
key <AD10> {[ p, P, NoSymbol, NoSymbol ]};
key <AD11> {[ bracketleft, braceleft, dead_hook, dead_hook ]};
key <AD12> {[ bracketright, braceright, dead_horn, dead_horn ]};
key <AC01> {[ a, A, aacute, Aacute ]};
key <AC02> {[ s, S, NoSymbol, NoSymbol ]};
key <AC03> {[ d, D, NoSymbol, NoSymbol ]};
key <AC04> {[ f, F, NoSymbol, NoSymbol ]};
key <AC05> {[ g, G, NoSymbol, NoSymbol ]};
key <AC06> {[ h, H, dead_abovedot, dead_abovedot ]};
key <AC07> {[ j, J, NoSymbol, NoSymbol ]};
key <AC08> {[ k, K, NoSymbol, NoSymbol ]};
key <AC09> {[ l, L, NoSymbol, NoSymbol ]};
key <AC10> {[ semicolon, colon, dead_diaeresis, dead_diaeresis ]};
key <AC11> {[ apostrophe, at, dead_acute, dead_acute ]};
key <BKSL> {[ numbersign, asciitilde, dead_tilde, dead_tilde ]};
key <LSGT> {[ backslash, bar, dead_grave, dead_grave ]};
key <AB01> {[ z, Z, U017F, U1E9B ]}; // long s, long s dot
key <AB02> {[ x, X, NoSymbol, NoSymbol ]};
key <AB03> {[ c, C, NoSymbol, NoSymbol ]};
key <AB04> {[ v, V, dead_caron, dead_caron ]};
key <AB05> {[ b, B, NoSymbol, NoSymbol ]};
key <AB06> {[ n, N, NoSymbol, NoSymbol ]};
key <AB07> {[ m, M, NoSymbol, NoSymbol ]};
key <AB08> {[ comma, less, dead_cedilla, dead_cedilla ]};
key <AB09> {[ period, greater, dead_abovedot, dead_abovedot ]};
key <AB10> {[ slash, question, dead_belowdot, dead_belowdot ]};
key <SPCE> {[ space, space, space, nobreakspace ]};
include "level3(ralt_switch)"
include "compose(rwin)"
};
partial alphanumeric_keys
xkb_symbols "ogam" {
// Ogham keyboard layout as recommended in I.S. 434:1999.
name[Group1] = "Ogham";
key.type[Group1] = "ONE_LEVEL";
key <TLDE> {[ U169C ]}; // OGHAM REVERSED FEATHER MARK
// Top row: QWERTYUIOP
key <AD01> {[ U168A ]}; // OGHAM LETTER CEIRT
key <AD02> {[ U1695 ]}; // OGHAM LETTER EABHADH
key <AD03> {[ U1693 ]}; // OGHAM LETTER EADHADH
key <AD04> {[ U168F ]}; // OGHAM LETTER RUIS
key <AD05> {[ U1688 ]}; // OGHAM LETTER TINNE
key <AD06> {[ U1698 ]}; // OGHAM LETTER IFIN
key <AD07> {[ U1692 ]}; // OGHAM LETTER UR
key <AD08> {[ U1694 ]}; // OGHAM LETTER IODHADH
key <AD09> {[ U1691 ]}; // OGHAM LETTER ONN
key <AD10> {[ U169A ]}; // OGHAM LETTER PEITH
// Middle row: ASDFGHJKL
key <AC01> {[ U1690 ]}; // OGHAM LETTER AILM
key <AC02> {[ U1684 ]}; // OGHAM LETTER SAIL
key <AC03> {[ U1687 ]}; // OGHAM LETTER DAIR
key <AC04> {[ U1683 ]}; // OGHAM LETTER FEARN
key <AC05> {[ U168C ]}; // OGHAM LETTER GORT
key <AC06> {[ U1686 ]}; // OGHAM LETTER UATH
key <AC07> {[ U1697 ]}; // OGHAM LETTER UILLEANN
key <AC08> {[ U1696 ]}; // OGHAM LETTER OR
key <AC09> {[ U1682 ]}; // OGHAM LETTER LUIS
key <BKSL> {[ U1680 ]}; // OGHAM SPACE MARK
key <LSGT> {[ U169B, U169C ], type[group1]="TWO_LEVEL" };
// OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK
// Bottom row: ZXCVBNM
key <AB01> {[ U168E ]}; // OGHAM LETTER STRAIF
key <AB02> {[ U1699 ]}; // OGHAM LETTER EAMHANCHOLL
key <AB03> {[ U1689 ]}; // OGHAM LETTER COLL
key <AB04> {[ U168D ]}; // OGHAM LETTER NGEADAL
key <AB05> {[ U1681 ]}; // OGHAM LETTER BEITH
key <AB06> {[ U1685 ]}; // OGHAM LETTER NION
key <AB07> {[ U168B ]}; // OGHAM LETTER MUIN
// As an extension because <BKSL> and <LSGT> may not be
// available or sensible. These are also a bit more
// intuitive on a standard Irish keyboard.
key <AB08> {[ U169C ]}; // OGHAM REVERSED FEATHER MARK
key <AB09> {[ U169B ]}; // OGHAM FEATHER MARK
key <AB10> {[ U1680 ]}; // OGHAM SPACE MARK
key <SPCE> {[ space ]};
include "compose(rwin)"
};
partial alphanumeric_keys
xkb_symbols "ogam_is434" {
// This has the full layout of IS434 with an Irish QWERTY keyboard,
// and the Ogham characters accessed when CAPS LOCK is on.
name[Group1] = "Ogham (IS434)";
key.type[Group1] = "THREE_LEVEL";
key <TLDE> {[ grave, notsign, U169C ]}; // OGHAM REVERSED FEATHER MARK
key <AE01> {[ 1, exclam ], type[group1]="TWO_LEVEL" };
key <AE02> {[ 2, quotedbl ], type[group1]="TWO_LEVEL" };
key <AE03> {[ 3, sterling ], type[group1]="TWO_LEVEL" };
key <AE04> {[ 4, dollar, EuroSign ]};
key <AE05> {[ 5, percent ], type[group1]="TWO_LEVEL" };
key <AE06> {[ 6, asciicircum ], type[group1]="TWO_LEVEL" };
key <AE07> {[ 7, ampersand, U204A ]}; // Tironian Et
key <AE08> {[ 8, asterisk ], type[group1]="TWO_LEVEL" };
key <AE09> {[ 9, parenleft ], type[group1]="TWO_LEVEL" };
key <AE10> {[ 0, parenright ], type[group1]="TWO_LEVEL" };
key <AE11> {[ minus, underscore ], type[group1]="TWO_LEVEL" };
key <AE12> {[ equal, plus ], type[group1]="TWO_LEVEL" };
key <AD01> {[ q, Q, U168A ]}; // OGHAM LETTER CEIRT
key <AD02> {[ w, W, U1695 ]}; // OGHAM LETTER EABHADH
key <AD03> {[ e, E, U1693 ]}; // OGHAM LETTER EADHADH
key <AD04> {[ r, R, U168F ]}; // OGHAM LETTER RUIS
key <AD05> {[ t, T, U1688 ]}; // OGHAM LETTER TINNE
key <AD06> {[ y, Y, U1698 ]}; // OGHAM LETTER IFIN
key <AD07> {[ u, U, U1692 ]}; // OGHAM LETTER UR
key <AD08> {[ i, I, U1694 ]}; // OGHAM LETTER IODHADH
key <AD09> {[ o, O, U1691 ]}; // OGHAM LETTER ONN
key <AD10> {[ p, P, U169A ]}; // OGHAM LETTER PEITH
key <AC01> {[ a, A, U1690 ]}; // OGHAM LETTER AILM
key <AC02> {[ s, S, U1684 ]}; // OGHAM LETTER SAIL
key <AC03> {[ d, D, U1687 ]}; // OGHAM LETTER DAIR
key <AC04> {[ f, F, U1683 ]}; // OGHAM LETTER FEARN
key <AC05> {[ g, G, U168C ]}; // OGHAM LETTER GORT
key <AC06> {[ h, H, U1686 ]}; // OGHAM LETTER UATH
key <AC07> {[ j, J, U1697 ]}; // OGHAM LETTER UILLEANN
key <AC08> {[ k, K, U1696 ]}; // OGHAM LETTER OR
key <AC09> {[ l, L, U1682 ]}; // OGHAM LETTER LUIS
key <BKSL> {[ numbersign, asciitilde, U1680 ]}; // OGHAM SPACE MARK
key <LSGT> {[ backslash, bar, U169B, U169C ], type[group1] = "FOUR_LEVEL_ALPHABETIC" };
// OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK
key <AB01> {[ z, Z, U168E ]}; // OGHAM LETTER STRAIF
key <AB02> {[ x, X, U1699 ]}; // OGHAM LETTER EAMHANCHOLL
key <AB03> {[ c, C, U1689 ]}; // OGHAM LETTER COLL
key <AB04> {[ v, V, U168D ]}; // OGHAM LETTER NGEADAL
key <AB05> {[ b, B, U1681 ]}; // OGHAM LETTER BEITH
key <AB06> {[ n, N, U1685 ]}; // OGHAM LETTER NION
key <AB07> {[ m, M, U168B ]}; // OGHAM LETTER MUIN
key <AB08> {[ comma, less, U169C ]}; // OGHAM REVERSED FEATHER MARK
key <AB09> {[ period, greater, U169B ]}; // OGHAM FEATHER MARK
key <AB10> {[ slash, question, U1680 ]}; // OGHAM SPACE MARK
key <SPCE> {[ space, space, space ]};
// The standard says the Ogham characters should be accessed when Caps Lock
// is down; not clear if this means it should lock but seems logical.
key <CAPS> {[ ISO_Level3_Lock ], type[group1] = "ONE_LEVEL" };
// Also allow access to Ogham characters using RALT, for convenience.
include "level3(ralt_switch)"
// Redefine Scroll Lock as locking shift, in case that's needed.
key <SCLK> {[ Shift_Lock ], type[group1] = "ONE_LEVEL" };
modifier_map Shift { Shift_Lock };
include "compose(rwin)"
};

353
nixos/xkb/symbols/il Normal file
View File

@@ -0,0 +1,353 @@
// Keyboard layouts for Israel.
// This is an implemetation of the Israeli standard SI-1452 (2013).
// It does not implement changes to the English layout, as that part of
// the standard is not normative nor really useful in the context of XKB.
// This implementation extends the standard with Yiddish digraphs
// (a common extension) and Nun Hafukha (a fun character).
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Hebrew";
key.type[Group1] = "FOUR_LEVEL";
key <TLDE> {[ semicolon, asciitilde, U05F3 ]}; // geresh
key <AE01> {[ 1, exclam ]};
key <AE02> {[ 2, at ]};
key <AE03> {[ 3, numbersign, EuroSign]};
key <AE04> {[ 4, dollar, NewSheqelSign ]};
key <AE05> {[ 5, percent, degree ]};
key <AE06> {[ 6, asciicircum, U05AB ]}; // ole
key <AE07> {[ 7, ampersand, U05BD ]}; // meteg
key <AE08> {[ 8, asterisk, multiply]};
key <AE09> {[ 9, parenright, U200E ]}; // LRM
key <AE10> {[ 0, parenleft, U200F ]}; // RLM
key <AE11> {[ minus, underscore, U05BE ]}; // maqaf
key <AE12> {[ equal, plus, endash ]};
key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
key <AD01> {[ slash, Q, U05C2 ]}; // Sin Dot
key <AD02> {[ apostrophe, W, U05C1 ]}; // Shin Dot
key <AD03> {[ hebrew_qoph, E, U05B8 ]}; // Qamats
key <AD04> {[ hebrew_resh, R, U05B3 ]}; // Hataf Qamats
key <AD05> {[ hebrew_aleph, T ]};
key <AD06> {[ hebrew_tet, Y, U05F0 ]}; // Yiddish Double Vav
key <AD07> {[ hebrew_waw, U, U05B9 ]}; // Holam
key <AD08> {[ hebrew_finalnun, I ]};
key <AD09> {[ hebrew_finalmem, O ]};
key <AD10> {[ hebrew_pe, P, U05B7 ]}; // Patah
key <AC01> {[ hebrew_shin, A, U05B0 ]}; // shva
key <AC02> {[ hebrew_dalet, S, U05BC ]}; // dagesh
key <AC03> {[ hebrew_gimel, D ]};
key <AC04> {[ hebrew_kaph, F ]};
key <AC05> {[ hebrew_ayin, G, U05F1 ]}; // Yiddish vav yod
key <AC06> {[ hebrew_yod, H, U05F2 ]}; // Yiddish double yod
key <AC07> {[ hebrew_chet, J, U05B4 ]}; // hiriq
key <AC08> {[ hebrew_lamed, K ]};
key <AC09> {[ hebrew_finalkaph, L, rightdoublequotemark ]};
key <AC10> {[ hebrew_finalpe, colon, doublelowquotemark ]};
key <AB01> {[ hebrew_zain, Z ]};
key <AB02> {[ hebrew_samech, X, U05B6 ]}; // segol
key <AB03> {[ hebrew_bet, C, U05B1 ]}; // hataf segol
key <AB04> {[ hebrew_he, V ]};
key <AB05> {[ hebrew_nun, B, none, U05C6 ]}; // nun hafukha
key <AB06> {[ hebrew_mem, N ]};
key <AB07> {[ hebrew_zade, M, U05B5 ]}; // tsere
key <AB08> {[ hebrew_taw, greater, rightsinglequotemark ]};
key <AB09> {[ hebrew_finalzade, less, singlelowquotemark ]};
key.type[Group1] = "FOUR_LEVEL";
key <AD11> {[ bracketright, braceright, U05B2 ]}; // Hataf Patah
key <AD12> {[ bracketleft, braceleft, U05BF ]}; // Rafe
key <AC11> {[ comma, quotedbl, U05F4 ]}; // Gershayim
key <BKSL> {[ backslash, bar, U05BB ]}; // Qubuts
key <AB10> {[ period, question, division]};
include "level3(ralt_switch)"
};
// This implements part 2 of the Israeli SI-1452 standard (from 2018).
// Comma, period, slash, and apostrophe are placed where they are in the
// basic US layout too. This means that Taw and Finalzade are moved to
// the upper row; and Finalnun is moved too, to avoid confusion with its
// former lefthand neighbor Waw (both being a kind of vertical line).
partial alphanumeric_keys
xkb_symbols "si2" {
include "il(basic)"
name[Group1]= "Hebrew (SI-1452-2)";
key <AD01> {[ hebrew_finalzade ]};
key <AD02> {[ hebrew_finalnun ]};
key <AD08> {[ hebrew_taw ]};
key <AC11> {[ apostrophe ]};
key <AB08> {[ comma ]};
key <AB09> {[ period ]};
key <AB10> {[ slash ]};
};
// Niqqud on the second level, based on Dekel Tsur's Hebrew mapping for LyX.
partial alphanumeric_keys
xkb_symbols "lyx" {
name[Group1]= "Hebrew (lyx)";
key <TLDE> {[ semicolon, asciitilde ]};
key <AE01> {[ 1, exclam ]};
key <AE02> {[ 2, at ]};
key <AE03> {[ 3, numbersign ]};
key <AE04> {[ 4, dollar ]};
key <AE05> {[ 5, percent ]};
key <AE06> {[ 6, asciicircum ]};
key <AE07> {[ 7, ampersand ]};
key <AE08> {[ 8, asterisk ]};
key <AE09> {[ 9, parenright ]};
key <AE10> {[ 0, parenleft ]};
key <AE11> {[ minus, U05BE ]}; // maqaf
key <AE12> {[ equal, plus ]};
key <AD01> {[ slash, none ]};
key <AD02> {[ apostrophe, none ]};
key <AD03> {[ hebrew_qoph, U05B8 ]}; // qamats
key <AD04> {[ hebrew_resh, U05BC ]}; // dagesh/shuruq
key <AD05> {[ hebrew_aleph, U200E ]}; // LRM
key <AD06> {[ hebrew_tet, U200F ]}; // RLM
key <AD07> {[ hebrew_waw, U05B9 ]}; // holam
key <AD08> {[ hebrew_finalnun, none ]};
key <AD09> {[ hebrew_finalmem, none ]};
key <AD10> {[ hebrew_pe, U05B7 ]}; // patah
key <AD11> {[ bracketright, braceright ]};
key <AD12> {[ bracketleft, braceleft ]};
key <AC01> {[ hebrew_shin, U05B0 ]}; // sheva
key <AC02> {[ hebrew_dalet, U05BC ]}; // dagesh/shuruq
key <AC03> {[ hebrew_gimel, none ]};
key <AC04> {[ hebrew_kaph, none ]};
key <AC05> {[ hebrew_ayin, U05C2 ]}; // sin dot
key <AC06> {[ hebrew_yod, U05C1 ]}; // shin dot
key <AC07> {[ hebrew_chet, U05B4 ]}; // hiriq
key <AC08> {[ hebrew_lamed, U20AA ]}; // ₪ (NIS)
key <AC09> {[ hebrew_finalkaph, none ]};
key <AC10> {[ hebrew_finalpe, colon ]};
key <AC11> {[ comma, quotedbl ]};
key <AB01> {[ hebrew_zain, none ]};
key <AB02> {[ hebrew_samech, U05B6 ]}; // segol
key <AB03> {[ hebrew_bet, U05BB ]}; // qubuts
key <AB04> {[ hebrew_he, U05B1 ]}; // hataf segol
key <AB05> {[ hebrew_nun, U05B2 ]}; // hataf patah
key <AB06> {[ hebrew_mem, U05B3 ]}; // hataf qamats
key <AB07> {[ hebrew_zade, U05B5 ]}; // tsere
key <AB08> {[ hebrew_taw, greater ]};
key <AB09> {[ hebrew_finalzade, less ]};
key <AB10> {[ period, question ]};
};
partial alphanumeric_keys
xkb_symbols "phonetic" {
include "il(basic)"
name[Group1]= "Hebrew (phonetic)";
key <TLDE> {[ grave, asciitilde ]};
key <AE09> {[ 9, parenleft ]};
key <AE10> {[ 0, parenright ]};
key <LatQ> {[ hebrew_qoph, hebrew_qoph ]};
key <LatW> {[ hebrew_waw, hebrew_waw ]};
key <AD03> {[ hebrew_aleph, hebrew_aleph ]};
key <AD04> {[ hebrew_resh, hebrew_resh ]};
key <AD05> {[ hebrew_taw, hebrew_tet ]};
key <LatY> {[ hebrew_ayin, hebrew_ayin ]};
key <AD07> {[ hebrew_waw, hebrew_waw ]};
key <AD08> {[ hebrew_yod, hebrew_yod ]};
key <AD09> {[ hebrew_samech, hebrew_samech ]};
key <AD10> {[ hebrew_pe, hebrew_finalpe ]};
key <AD11> {[ bracketleft, braceleft ]};
key <AD12> {[ bracketright, braceright ]};
key <LatA> {[ hebrew_aleph, hebrew_aleph ]};
key <AC02> {[ hebrew_shin, hebrew_shin ]};
key <AC03> {[ hebrew_dalet, hebrew_dalet ]};
key <AC04> {[ hebrew_pe, hebrew_finalpe ]};
key <AC05> {[ hebrew_gimel, hebrew_gimel ]};
key <AC06> {[ hebrew_he, hebrew_he ]};
key <AC07> {[ hebrew_yod, hebrew_yod ]};
key <AC08> {[ hebrew_kaph, hebrew_finalkaph]};
key <AC09> {[ hebrew_lamed, hebrew_lamed ]};
key <AC10> {[ semicolon, colon ]};
key <AC11> {[ apostrophe, quotedbl ]};
key <BKSL> {[ backslash, bar ]};
key <LatZ> {[ hebrew_zain, hebrew_zain ]};
key <AB02> {[ hebrew_chet, hebrew_chet ]};
key <AB03> {[ hebrew_zade, hebrew_finalzade]};
key <AB04> {[ hebrew_waw, hebrew_waw ]};
key <AB05> {[ hebrew_bet, hebrew_bet ]};
key <AB06> {[ hebrew_nun, hebrew_finalnun ]};
key <AB07> {[ hebrew_mem, hebrew_finalmem ]};
key <AB08> {[ comma, less ]};
key <AB09> {[ period, greater ]};
key <AB10> {[ slash, question ]};
};
// The 'Biblical Hebrew' keyboard layout as defined by Tiro for use with the
// 'SBL Hebrew' font was added 2006.11.13 by Sebastian J. Bronner
// <waschtl@sbronner.com>. Its primary features (as compared to the lyx layout)
// are that the consonants are in the Israeli standard positions, that a great
// multitude of glyphs can be input directly from the keyboard, and that it is
// the closest thing to a standard layout a theologian can hope for.
// Reference: https://www.sbl-site.org/fonts/biblicalhebrewtiromanual.pdf.
// Fonts: https://www.sbl-site.org/educational/biblicalfonts.aspx.
//
// It is of interest that the 'basic' layout defined first in this file (as
// ships with X.org) disagrees in the non-consonant characters that the Tiro-
// layout claims to be the Israeli standard. Tiro's apparent diligence in the
// PDF-documentation accompanying the keyboard-layout-files lead me to put
// greater stock in their claim than in this file. Therefore, the 'biblical'
// layout below does not include 'il(basic)' but redoes the _whole_ thing from
// scratch.
partial alphanumeric_keys
xkb_symbols "biblical" {
name[Group1]= "Hebrew (Biblical, Tiro)";
key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
key <TLDE> {[ U05C3, U05AE, semicolon, asciitilde ]};
key <AE01> {[ 1, U05A9, none, exclam ]};
key <AE02> {[ 2, U0599, none, at ]};
key <AE03> {[ 3, U0592, none, numbersign ]};
key <AE04> {[ 4, U05AF, NewSheqelSign, dollar ]};
key <AE05> {[ 5, U05BA, U200D, percent ]};
key <AE06> {[ 6, U05B9, U200C, asciicircum ]};
key <AE07> {[ 7, U05BF, U034F, ampersand ]};
key <AE08> {[ 8, U05C2, U200E, asterisk ]};
key <AE09> {[ 9, U05C1, U200F, parenright ]};
key <AE10> {[ 0, U059D, U25CC, parenleft ]};
key <AE11> {[ U05BE, U05A0, minus, underscore ]};
key <AE12> {[ equal, U05BC, none, plus ]};
key <AD01> {[ U0307, U05C4, U0308, slash ]};
key <AD02> {[ U05F3, U05AC, U05F4, apostrophe ]};
key <AD03> {[ hebrew_qoph, U05AB, U20AC ]};
key <AD04> {[ hebrew_resh, U059F ]};
key <AD05> {[ hebrew_aleph, U0593 ]};
key <AD06> {[ hebrew_tet, U059E ]};
key <AD07> {[ hebrew_waw, U059C, U05F0 ]};
key <AD08> {[ hebrew_finalnun, U05A1 ]};
key <AD09> {[ hebrew_finalmem, U0595 ]};
key <AD10> {[ hebrew_pe, U0594 ]};
key <AD11> {[ bracketright, U0597, none, braceright ]};
key <AD12> {[ bracketleft, U0598, none, braceleft ]};
key <BKSL> {[ U05C0, U05A8, backslash, bar ]};
key <AC01> {[ hebrew_shin, U05BD ]};
key <AC02> {[ hebrew_dalet, U05B0 ]};
key <AC03> {[ hebrew_gimel, U05BB ]};
key <AC04> {[ hebrew_kaph, U05B4 ]};
key <AC05> {[ hebrew_ayin, U05B1 ]};
key <AC06> {[ hebrew_yod, U05B6, U05F2 ]};
key <AC07> {[ hebrew_chet, U05B5, U05F1 ]};
key <AC08> {[ hebrew_lamed, U05B3 ]};
key <AC09> {[ hebrew_finalkaph, U05B8, U05C7 ]};
key <AC10> {[ hebrew_finalpe, U05B2, none, colon ]};
key <AC11> {[ U059a, U05B7, comma, quotedbl ]};
key <AB01> {[ hebrew_zain, U05C5 ]};
key <AB02> {[ hebrew_samech, U05A4 ]};
key <AB03> {[ hebrew_bet, U05AA, U05A2 ]};
key <AB04> {[ hebrew_he, U05A6 ]};
key <AB05> {[ hebrew_nun, U05A5, U05C6 ]};
key <AB06> {[ hebrew_mem, U05A7 ]};
key <AB07> {[ hebrew_zade, U059B ]};
key <AB08> {[ hebrew_taw, U0591, none, greater ]};
key <AB09> {[ hebrew_finalzade, U0596, none, less ]};
key <AB10> {[ U05AD, U05A3, period, question ]};
key <SPCE> {[ space, space, thinspace, nobreakspace ]};
};
// EXTRAS
// Biblical hebrew (SIL) US Standard layout version 1.5
// This map is based closely on v 1.5 of the standard. The only deviation being the replacement of the composite characters sin and shin
// by their more recent Unicodev6 counterparts
// this map contains all the characters found in Biblical annotation, masoretic and Dead Sea Scroll related work.
// The layout corresponds phonetically to a US standard layout or similar (Qwerty).
// If you are using an actual Hebrew keyboard, you are probably better off using a Tiro compliant scholarly layout
// This linux port created and maintained by Dennis Meulensteen, dennis@meulensteen.nl
partial alphanumeric_keys
xkb_symbols "biblicalSIL" {
name[Group1]= "Hebrew (Biblical, SIL phonetic)";
key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
key <TLDE> {[ EuroSign, U20AA, dollar ]}; // € ₪ $
key <AE01> {[ 1, exclam, U05BD, U0597 ]}; // 1 exclamation meteg revia
key <AE02> {[ 2, U0598, U05A2, U05AE ]}; // 2 zarqa atnaq hafukh zinor
key <AE03> {[ 3, U05A8, U0596, U0599 ]}; // 3, qadma tipeha pashta
key <AE04> {[ 4, U059C, U05A5, U05A0 ]}; // 4, geresh merkha tel. gedola
key <AE05> {[ 5, U059E, U05A6, U05A9 ]}; // 5 gershayim mer. kefula tel. qetana
key <AE06> {[ 6, none, U05AD, U059F ]}; // 6 - dehi qarney para
key <AE07> {[ 7, U05AC, U05A3, U05A1 ]}; // 7, iluy munah pazer
key <AE08> {[ 8, U059D, U059B, U0595 ]}; // 8 geresh muqdam tevir zaqef gadol
key <AE09> {[ 9, parenright, U05A7, U0593 ]}; // 9 R. parenthesis darqa shalshelet
key <AE10> {[ 0, parenleft, U05AA, U05AF ]}; // 0 L. parenthesis yer. ben yomo masora circle
key <AE11> {[ U05BE, U2013, U2014, U05BF ]}; // maqaf en dash em dash rafe
key <AE12> {[ U05BC, none, U0591, U25CC ]}; // dagesh - etnahta mark base: ◌
key <AD01> {[ hebrew_qoph, U0597 ]}; // qof revia
key <AD02> {[ hebrew_waw ]}; // waw
key <AD03> {[ U05B6, U05B5, none, U05B1 ]}; // segol tsere - hataf segol
key <AD04> {[ hebrew_resh ]}; // resh
key <AD05> {[ hebrew_taw ]}; // taw
key <AD06> {[ hebrew_yod, U059F ]}; // jod qarney para
key <AD07> {[ U05BB ]}; // qubuts
key <AD08> {[ U05B4 ]}; // hiriq
key <AD09> {[ U05B9, U05BA, U05C7, U05B3 ]}; // holam holam for vav qamats qatan hataf qamats
key <AD10> {[ hebrew_pe, hebrew_finalpe, none, U034F ]}; // pe final pe - CGJ
key <AD11> {[ bracketright, braceright, none, U0594 ]}; // R. bracket R. brace - zaqef qatan
key <AD12> {[ bracketleft, braceleft, U059A, U0592 ]}; // L. bracket L. brace yetiv segolta
key <BKSL> {[ U05C0, U05C0, U05A4, U05AB ]}; // paseq paseq mahapakh ole
key <AC01> {[ U05B7, U05B8, U05C7, U05B2 ]}; // patah qamats qamats qatan hataf patah
key <AC02> {[ hebrew_samech, hebrew_shin ]}; // samech shin (no dot)
key <AC03> {[ hebrew_dalet ]}; // dalet
key <AC04> {[ UFB2B, hebrew_shin, U05C2 ]}; // shin w. sindot shin (no dot) sindot
key <AC05> {[ hebrew_gimel, none, U25E6, U2022 ]}; // gimel - bullet: ◦ bullet: •
key <AC06> {[ hebrew_he, none, U0336, U030A ]}; // he - strikeout ring above
key <AC07> {[ UFB2A, hebrew_shin, U05C1 ]}; // shin w. shindot shin (no dot) shindot
key <AC08> {[ hebrew_kaph, hebrew_finalkaph ]}; // kaph final kaph
key <AC09> {[ hebrew_lamed, none ]}; // lamed
key <AC10> {[ U05B0, U05F4, semicolon, U05C3 ]}; // sheva gersha. punc. semicolon sof pasuq
key <AC11> {[ U2019, U201D, U0323, U05C4 ]}; // R. quote double R. quote punctum punctum above
key <AB01> {[ hebrew_zain ]}; // zayin
key <AB02> {[ hebrew_chet ]}; // chet
key <AB03> {[ hebrew_zade, hebrew_finalzade ]}; // tzade final tzade
key <AB04> {[ hebrew_tet ]}; // tet
key <AB05> {[ hebrew_bet ]}; // bet
key <AB06> {[ hebrew_nun, hebrew_finalnun ]}; // nun final nun
key <AB07> {[ hebrew_mem, hebrew_finalmem, U200C, U200D ]}; // mem final mem ZWNJ ZWJ
key <AB08> {[ comma, hebrew_ayin, guillemotleft, U0307 ]}; // comma ayin R. guillemet masora dot
key <AB09> {[ period, hebrew_aleph, guillemotright, U0308 ]}; // period alef L. guillemet thousands
key <AB10> {[ slash, question, U05F3 ]}; // slash question geresh punc.
key <SPCE> {[ space, space, thinspace, nobreakspace ]};
include "level3(ralt_switch)"
};

2616
nixos/xkb/symbols/in Normal file

File diff suppressed because it is too large Load Diff

2080
nixos/xkb/symbols/inet Normal file

File diff suppressed because it is too large Load Diff

31
nixos/xkb/symbols/iq Normal file
View File

@@ -0,0 +1,31 @@
// Keyboard layouts for Iraq.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "ara(basic)"
name[Group1]= "Arabic (Iraq)";
};
partial alphanumeric_keys
xkb_symbols "ku" {
include "tr(ku)"
name[Group1]= "Kurdish (Iraq, Latin Q)";
};
partial alphanumeric_keys
xkb_symbols "ku_f" {
include "tr(ku_f)"
name[Group1]= "Kurdish (Iraq, F)";
};
partial alphanumeric_keys
xkb_symbols "ku_alt" {
include "tr(ku_alt)"
name[Group1]= "Kurdish (Iraq, Latin Alt-Q)";
};
partial alphanumeric_keys
xkb_symbols "ku_ara" {
include "ir(ku_ara)"
name[Group1]= "Kurdish (Iraq, Arabic-Latin)";
};

283
nixos/xkb/symbols/ir Normal file
View File

@@ -0,0 +1,283 @@
// Keyboard layouts for Iran.
// Standard Persian layout, based on ISIRI 9147 (1st Edition),
// "Layout of Persian Letters and Symbols on Computer Keyboards"
// by the Institute of Standards and Industrial Research of Iran.
// (http://www.isiri.org/UserStd/DownloadStd.aspx?id=9147)
// https://persian-computing.org/archives/ISIRI/ISIRI-9147.pdf
//
// The standard is extended with ASCII digits on the fourth level of the top row,
// and the letter He with Ye above (U+06C0) on the third level of the AC05 key.
//
// Original author: Behnam Esfahbod <behnam@esfahbod.info>
default partial alphanumeric_keys
xkb_symbols "pes" {
name[Group1]= "Persian";
// Persian and ASCII digits
key <AE01> { [ Farsi_1, exclam, grave, 1 ] };
key <AE02> { [ Farsi_2, U066C, at, 2 ] };
key <AE03> { [ Farsi_3, U066B, numbersign, 3 ] };
key <AE04> { [ Farsi_4, UFDFC, dollar, 4 ] }; // Rial sign
key <AE05> { [ Farsi_5, U066A, percent, 5 ] };
key <AE06> { [ Farsi_6, multiply, asciicircum, 6 ] };
key <AE07> { [ Farsi_7, Arabic_comma, ampersand, 7 ] };
key <AE08> { [ Farsi_8, asterisk, enfilledcircbullet, 8 ] };
key <AE09> { [ Farsi_9, parenright, U200E, 9 ] }; // LRM
key <AE10> { [ Farsi_0, parenleft, U200F, 0 ] }; // RLM
// Persian letters and symbols
key <AD01> { [ Arabic_dad, Arabic_sukun, degree ] };
key <AD02> { [ Arabic_sad, Arabic_dammatan, none ] };
key <AD03> { [ Arabic_theh, Arabic_kasratan, EuroSign ] };
key <AD04> { [ Arabic_qaf, Arabic_fathatan, none ] };
key <AD05> { [ Arabic_feh, Arabic_damma, none ] };
key <AD06> { [ Arabic_ghain, Arabic_kasra, none ] };
key <AD07> { [ Arabic_ain, Arabic_fatha, none ] };
key <AD08> { [ Arabic_heh, Arabic_shadda, U202D ] }; // LRO
key <AD09> { [ Arabic_khah, bracketright, U202E ] }; // RLO
key <AD10> { [ Arabic_hah, bracketleft, U202C ] }; // PDF
key <AD11> { [ Arabic_jeem, braceright, U202A ] }; // LRE
key <AD12> { [ Arabic_tcheh, braceleft, U202B ] }; // RLE
key <AC01> { [ Arabic_sheen, Arabic_hamzaonwaw, none ] };
key <AC02> { [ Arabic_seen, Arabic_hamzaonyeh, none ] };
key <AC03> { [ Farsi_yeh, Arabic_yeh, Arabic_alefmaksura ] };
key <AC04> { [ Arabic_beh, Arabic_hamzaunderalef, none ] };
key <AC05> { [ Arabic_lam, Arabic_hamzaonalef, U06C0 ] };
key <AC06> { [ Arabic_alef, Arabic_maddaonalef, U0671 ] };
key <AC07> { [ Arabic_teh, Arabic_tehmarbuta, none ] };
key <AC08> { [ Arabic_noon, guillemotright, UFD3E ] };
key <AC09> { [ Arabic_meem, guillemotleft, UFD3F ] };
key <AC10> { [ Arabic_keheh, colon, semicolon ] };
key <AC11> { [ Arabic_gaf, Arabic_semicolon, quotedbl ] };
key <AB01> { [ Arabic_zah, Arabic_kaf, none ] };
key <AB02> { [ Arabic_tah, U0653, none ] };
key <AB03> { [ Arabic_zain, Arabic_jeh, none ] };
key <AB04> { [ Arabic_ra, Arabic_superscript_alef,U0656 ] };
key <AB05> { [ Arabic_thal, U200C, U200D ] }; // ZWNJ, ZWJ
key <AB06> { [ Arabic_dal, Arabic_hamza_above, Arabic_hamza_below ] };
key <AB07> { [ Arabic_peh, Arabic_hamza, ellipsis ] };
key <AB08> { [ Arabic_waw, greater, comma ] };
key <AB09> { [ period, less, apostrophe ] };
key <AB10> { [ slash, Arabic_question_mark, question ] };
key <TLDE> { [ U200D, division, asciitilde ] }; // ZWJ
key <AE11> { [ minus, Arabic_tatweel, underscore ] };
key <AE12> { [ equal, plus, U2212 ] }; // figure dash
key <BKSL> { [ backslash, bar, U2010 ] }; // hyphen
include "nbsp(zwnj2nb3nnb4)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "pes_keypad" {
include "ir(pes)"
name[Group1]= "Persian (with Persian keypad)";
// Persian digits and Mathematical operators
key <KPDV> { [ division, XF86_Ungrab ] };
key <KPMU> { [ multiply, XF86_ClearGrab ] };
key <KPSU> { [ U2212, XF86_Prev_VMode ] }; // minus sign
key <KPAD> { [ plus, XF86_Next_VMode ] };
key <KPEN> { [ KP_Enter ] };
key <KPEQ> { [ equal ] };
key <KP7> { [ KP_Home, Farsi_7 ] };
key <KP8> { [ KP_Up, Farsi_8 ] };
key <KP9> { [ KP_Prior, Farsi_9 ] };
key <KP4> { [ KP_Left, Farsi_4 ] };
key <KP5> { [ KP_Begin, Farsi_5 ] };
key <KP6> { [ KP_Right, Farsi_6 ] };
key <KP1> { [ KP_End, Farsi_1 ] };
key <KP2> { [ KP_Down, Farsi_2 ] };
key <KP3> { [ KP_Next, Farsi_3 ] };
key <KP0> { [ KP_Insert, Farsi_0 ] };
key <KPDL> { [ KP_Delete, U066B ] }; // Arabic decimal separator
};
// The legacy Windows layout that Iranian users are accustomed to,
// extended with Farsi digits on the third level of the top row.
partial alphanumeric_keys
xkb_symbols "winkeys" {
name[Group1]= "Persian (Windows)";
key <TLDE> { [ division, multiply ] };
key <AE01> { [ 1, exclam, Farsi_1, U200D ] }; // ZWJ
key <AE02> { [ 2, at, Farsi_2, U200C ] }; // ZWNJ
key <AE03> { [ 3, numbersign, Farsi_3, U200E ] }; // LRM
key <AE04> { [ 4, dollar, Farsi_4, U200F ] }; // RLM
key <AE05> { [ 5, percent, Farsi_5 ] };
key <AE06> { [ 6, asciicircum, Farsi_6 ] };
key <AE07> { [ 7, ampersand, Farsi_7 ] };
key <AE08> { [ 8, asterisk, Farsi_8 ] };
key <AE09> { [ 9, parenright, Farsi_9 ] };
key <AE10> { [ 0, parenleft, Farsi_0 ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <AD01> { [ Arabic_dad, Arabic_fathatan ] };
key <AD02> { [ Arabic_sad, Arabic_dammatan ] };
key <AD03> { [ Arabic_theh, Arabic_kasratan ] };
key <AD04> { [ Arabic_qaf, UFDFC ] }; // Rial sign
key <AD05> { [ Arabic_feh, Arabic_comma ] };
key <AD06> { [ Arabic_ghain, Arabic_semicolon ] };
key <AD07> { [ Arabic_ain, comma ] };
key <AD08> { [ Arabic_heh, bracketright ] };
key <AD09> { [ Arabic_khah, bracketleft ] };
key <AD10> { [ Arabic_hah, backslash ] };
key <AD11> { [ Arabic_jeem, braceright ] };
key <AD12> { [ Arabic_tcheh, braceleft ] };
key <AC01> { [ Arabic_sheen, Arabic_fatha ] };
key <AC02> { [ Arabic_seen, Arabic_damma ] };
key <AC03> { [ Farsi_yeh, Arabic_kasra ] };
key <AC04> { [ Arabic_beh, Arabic_shadda ] };
key <AC05> { [ Arabic_lam, U06C0 ] };
key <AC06> { [ Arabic_alef, Arabic_maddaonalef ] };
key <AC07> { [ Arabic_teh, Arabic_tatweel ] };
key <AC08> { [ Arabic_noon, guillemotleft ] };
key <AC09> { [ Arabic_meem, guillemotright ] };
key <AC10> { [ Arabic_keheh, colon ] };
key <AC11> { [ Arabic_gaf, quotedbl ] };
key <BKSL> { [ Arabic_peh, bar ] };
key <LSGT> { [ Arabic_peh, bar ] };
key <AB01> { [ Arabic_zah, Arabic_tehmarbuta ] };
key <AB02> { [ Arabic_tah, Arabic_yeh ] };
key <AB03> { [ Arabic_zain, Arabic_jeh ] };
key <AB04> { [ Arabic_ra, Arabic_hamzaonwaw ] };
key <AB05> { [ Arabic_thal, Arabic_hamzaonalef ] };
key <AB06> { [ Arabic_dal, Arabic_hamzaunderalef ] };
key <AB07> { [ Arabic_hamzaonyeh, Arabic_hamza ] };
key <AB08> { [ Arabic_waw, less ] };
key <AB09> { [ period, greater ] };
key <AB10> { [ slash, Arabic_question_mark ] };
include "level3(ralt_switch)"
};
// Symbols definition for South Azerbaijani keyboard layout.
// 2022 - Alborz Jafari <alborz.jf@gmail.com>
partial alphanumeric_keys
xkb_symbols "azb"
{
include "ir(pes)"
name[Group1]= "Azerbaijani (Iran)";
// Letters and symbols for South Azerbaijani
key <AD01> { [ Arabic_dad, U06C7, degree ] }; // ۇ
key <AD02> { [ Arabic_sad, U06C6, Arabic_dammatan ] }; // ۆ
key <AC03> { [ Farsi_yeh, U063D, Arabic_alefmaksura ] }; // ؽ
key <AB01> { [ Arabic_zah, Arabic_sukun, none ] };
key <AB05> { [ Arabic_thal, Arabic_dammatan, none ] };
};
// Kurdish layouts
partial alphanumeric_keys
xkb_symbols "ku" {
include "tr(ku)"
name[Group1]= "Kurdish (Iran, Latin Q)";
};
partial alphanumeric_keys
xkb_symbols "ku_f" {
include "tr(ku_f)"
name[Group1]= "Kurdish (Iran, F)";
};
partial alphanumeric_keys
xkb_symbols "ku_alt" {
include "tr(ku_alt)"
name[Group1]= "Kurdish (Iran, Latin Alt-Q)";
};
// Kurdish Soranî Bahdînî (Arabic) keyboard layout,
// based on the Kurdî Soranî Bahdînî keyboard from KurdITGroup
// which is based on National Iranian Keyboard Standard (ISIRI 2901:1994),
// with additions.
//
// Copyright (C) 2006 Erdal Ronahî, published under the GPL v2
//
// Special copyright note: author explicitly permitted to license this
// layout under MIT/X11 license, for details see
// https://bugs.freedesktop.org/show_bug.cgi?id=9541
//
// Author: Erdal Ronahî <erdal.ronahi@gmail.com>
//
// Kurdish Arabic-Latin Layout for Soranî
partial alphanumeric_keys
xkb_symbols "ku_ara" {
name[Group1]= "Kurdish (Iran, Arabic-Latin)";
key <TLDE> { [ U200D, division, asciitilde ] }; // ZWJ
key <AE01> { [ Arabic_1, exclam, 1, grave ] };
key <AE02> { [ Arabic_2, at, 2, at ] };
key <AE03> { [ Arabic_3, numbersign, 3, U066B ] };
key <AE04> { [ Arabic_4, dollar, 4, UFDFC ] }; // Rial sign
key <AE05> { [ Arabic_5, percent, 5, U066A ] };
key <AE06> { [ Arabic_6, asciicircum, 6, multiply ] };
key <AE07> { [ Arabic_7, ampersand, 7, Arabic_comma ] };
key <AE08> { [ Arabic_8, asterisk, 8, enfilledcircbullet ] };
key <AE09> { [ Arabic_9, parenright, 9, U200E ] }; // LRM
key <AE10> { [ Arabic_0, parenleft, 0, U200F ] }; // RLM
key <AE11> { [ minus, Arabic_tatweel, underscore ] };
key <AE12> { [ equal, plus, U2212 ] }; // minus sign
key <AD01> { [ Arabic_qaf, X, q, Q ] };
key <AD02> { [ Arabic_waw, X, w, W ] };
key <AD03> { [ U06D5, Arabic_heh, e, E ] };
key <AD04> { [ Arabic_ra, U0695, r, R ] };
key <AD05> { [ Arabic_teh, Arabic_tah, t, T ] };
key <AD06> { [ U06CC, U06CE, y, Y ] };
key <AD07> { [ Arabic_hamzaonyeh, Arabic_hamza, u, U ] };
key <AD08> { [ Arabic_hah, Arabic_ain, i, I ] };
key <AD09> { [ U06C6, Arabic_hamzaonwaw, o, O ] };
key <AD10> { [ U067E, Arabic_theh, p, P ] };
key <AD11> { [ bracketright,braceright, ucircumflex, Ucircumflex ] };
key <AD12> { [ bracketleft, braceleft, scedilla, Scedilla ] };
key <AC01> { [ Arabic_alef, Arabic_maddaonalef, a, A ] };
key <AC02> { [ Arabic_seen, Arabic_sheen, s, S ] };
key <AC03> { [ Arabic_dal, Arabic_thal, d, D ] };
key <AC04> { [ Arabic_feh, Arabic_hamzaunderalef, f, F ] };
key <AC05> { [ U06AF, Arabic_ghain, g, G ] };
key <AC06> { [ Arabic_heh, U200C, h, H ] }; // ZWNJ
key <AC07> { [ U0698, Arabic_hamzaonalef, j, J ] };
key <AC08> { [ U06A9, Arabic_kaf, k, K ] };
key <AC09> { [ Arabic_lam, U06B5, l, L ] };
key <AC10> { [ Arabic_semicolon, colon, ecircumflex, Ecircumflex ] };
key <AC11> { [ apostrophe, quotedbl, icircumflex, Icircumflex ] };
key <BKSL> { [ backslash, bar, ccedilla, Ccedilla ] };
key <AB01> { [ Arabic_zain, Arabic_dad, z, Z ] };
key <AB02> { [ Arabic_khah, Arabic_sad, x, X ] };
key <AB03> { [ Arabic_jeem, U0686, c, C ] };
key <AB04> { [ U06A4, Arabic_zah, v, V ] };
key <AB05> { [ Arabic_beh, U0649, b, B ] };
key <AB06> { [ Arabic_noon, Arabic_tehmarbuta, n, N ] };
key <AB07> { [ Arabic_meem, Arabic_tatweel, m, M ] };
key <AB08> { [ Arabic_comma,greater, comma ] };
key <AB09> { [ period, less, apostrophe ] };
key <AB10> { [ slash, Arabic_question_mark, question ] };
include "nbsp(zwnj2nb3)"
include "level3(ralt_switch)"
};

190
nixos/xkb/symbols/is Normal file
View File

@@ -0,0 +1,190 @@
// Keyboard layouts for Iceland.
// Icelandic keyboard layout, by Hrafnkell Eiriksson - hkelle@rhi.hi.is
// Fixes by Olafur Osvaldsson - oli@isnic.is - and Bjarni Ingi Gislason.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type4)"
name[Group1]="Icelandic";
key <TLDE> { [dead_abovering, dead_diaeresis, notsign, hyphen ] };
key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
key <AE04> { [ 4, dollar, onequarter, currency ] };
key <AE11> { [odiaeresis, Odiaeresis, backslash, questiondown ] };
key <AE12> { [ minus, underscore, dead_cedilla, dead_ogonek ] };
key <AD10> { [ p, P, bar, Greek_pi ] };
key <AD11> { [ eth, ETH, dead_diaeresis, dead_abovering ] };
key <AD12> { [apostrophe, question, asciitilde, dead_macron ] };
key <AC03> { [ d, D, U201e, U201c ] };
key <AC10> { [ ae, AE, asciicircum, dead_doubleacute ] };
key <AC11> { [dead_acute, dead_acute, dead_circumflex, dead_caron ] };
key <BKSL> { [ plus, asterisk, grave, dead_breve ] };
key <AB10> { [ thorn, THORN, dead_belowdot, dead_abovedot ] };
include "level3(ralt_switch)"
};
// Copied from macintosh_vndr/is.
// Copyright (C) 2004, 2006 Ævar Arnfjörð Bjarmason <avarab@gmail.com>
xkb_symbols "mac_legacy" {
name[Group1]= "Icelandic (Macintosh, legacy)";
key <TLDE> { [ sterling, section, UF8FF, apostrophe ] }; // Apple logo
key <AE01> { [ 1, exclam, exclamdown, VoidSymbol ] };
key <AE02> { [ 2, quotedbl, at, VoidSymbol ] };
key <AE03> { [ 3, numbersign, U2122, sterling ] };
key <AE04> { [ 4, dollar, cent, EuroSign ] };
key <AE05> { [ 5, percent, permille, infinity ] };
key <AE06> { [ 6, ampersand, asciicircum, U2044 ] };
key <AE07> { [ 7, slash, backslash, division ] };
key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
key <AE09> { [ 9, parenright, bracketright, braceright ] };
key <AE10> { [ 0, equal, U2260, U2248 ] };
key <AE11> { [ odiaeresis, Odiaeresis, oslash, Oslash ] };
key <AE12> { [ minus, underscore, endash, emdash ] };
key <AD01> { [ q, Q, paragraph, VoidSymbol ] };
key <AD02> { [ w, W, U2211, VoidSymbol ] };
key <AD03> { [ e, E, dead_grave, VoidSymbol ] };
key <AD04> { [ r, R, registered, VoidSymbol ] };
key <AD05> { [ t, T, degree, VoidSymbol ] };
key <AD06> { [ y, Y, yen, VoidSymbol ] };
key <AD07> { [ u, U, dead_diaeresis, VoidSymbol ] };
key <AD08> { [ i, I, idotless, ordfeminine] };
key <AD09> { [ o, O, dead_circumflex, masculine ] };
key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
key <AD11> { [ eth, ETH, U201e, U201c ] };
key <AD12> { [ apostrophe, question, questiondown, periodcentered] };
key <AC01> { [ a, A, aring, Aring ] };
key <AC02> { [ s, S, ssharp, abovedot ] };
key <AC03> { [ d, D, U2202, U02DA ] };
key <AC04> { [ f, F, function, macron ] };
key <AC05> { [ g, G, copyright, breve ] };
key <AC06> { [ h, H, bar, VoidSymbol ] };
key <AC07> { [ j, J, U2206, doubleacute] };
key <AC08> { [ k, K, notsign, VoidSymbol ] };
key <AC09> { [ l, L, U2026, caron ] };
key <AC10> { [ ae, AE, oe, OE ] };
key <AC11> { [ dead_acute, dead_diaeresis, U201A, U2018 ] };
key <BKSL> { [ plus, asterisk, U2022, plusminus ] };
key <LSGT> { [ less, greater, section, UF8FF ] }; // Apple logo
key <AB01> { [ z, Z, Greek_OMEGA, VoidSymbol ] };
key <AB02> { [ x, X, asciitilde, VoidSymbol ] };
key <AB03> { [ c, C, ccedilla, Ccedilla ] };
key <AB04> { [ v, V, U221A, U25CA ] };
key <AB05> { [ b, B, U222B, VoidSymbol ] };
key <AB06> { [ n, N, dead_tilde, VoidSymbol ] };
key <AB07> { [ m, M, mu, VoidSymbol ] };
key <AB08> { [ comma, semicolon, lessthanequal, guillemotleft ] };
key <AB09> { [ period, colon, greaterthanequal, guillemotright ] };
key <AB10> { [ thorn, THORN, U2019, U201d ] };
include "level3(ralt_switch)"
};
// Layout for newer Apple laptop and Aluminium keyboards (A1243/A1255 and later).
// Copyright (C) 2013 Ævar Arnfjörð Bjarmason <avarab@gmail.com>
partial alphanumeric_keys
xkb_symbols "mac" {
name[Group1]= "Icelandic (Macintosh)";
key <TLDE> { [ degree, dead_diaeresis, oslash, Oslash ] };
key <AE01> { [ 1, exclam, exclamdown, VoidSymbol ] };
key <AE02> { [ 2, quotedbl, at, VoidSymbol ] };
key <AE03> { [ 3, numbersign, trademark, sterling ] };
key <AE04> { [ 4, dollar, cent, EuroSign ] };
key <AE05> { [ 5, percent, permille, infinity ] };
key <AE06> { [ 6, ampersand, asciicircum, U2044 ] };
key <AE07> { [ 7, slash, braceleft, division ] };
key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
key <AE09> { [ 9, parenright, bracketright, braceright ] };
key <AE10> { [ 0, equal, braceright, approxeq ] };
key <AE11> { [ odiaeresis, Odiaeresis, backslash, U2260 ] };
key <AE12> { [ minus, underscore, endash, emdash ] };
key <AD01> { [ q, Q, at, paragraph ] };
key <AD02> { [ w, W, U2211, section ] };
key <AD03> { [ e, E, U20AC, questiondown ] };
key <AD04> { [ r, R, registered, VoidSymbol ] };
key <AD05> { [ t, T, degree, U2022 ] };
key <AD06> { [ y, Y, yen, VoidSymbol ] };
key <AD07> { [ u, U, dead_diaeresis, VoidSymbol ] };
key <AD08> { [ i, I, idotless, ordfeminine ] };
key <AD09> { [ o, O, dead_circumflex, masculine ] };
key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
key <AD11> { [ eth, ETH, doublelowquotemark, leftdoublequotemark ] };
key <AD12> { [ apostrophe, question, asciitilde, periodcentered ] };
key <AC01> { [ a, A, aring, Aring ] };
key <AC02> { [ s, S, ssharp, abovedot ] };
key <AC03> { [ d, D, partialderivative, U02DA ] };
key <AC04> { [ f, F, function, macron ] };
key <AC05> { [ g, G, copyright, breve ] };
key <AC06> { [ h, H, bar, cedilla ] };
key <AC07> { [ j, J, U2206, doubleacute ] };
key <AC08> { [ k, K, notsign, ogonek ] };
key <AC09> { [ l, L, ellipsis, caron ] };
key <AC10> { [ ae, AE, oe, OE ] };
key <AC11> { [ dead_acute, dead_acute, asciicircum, leftsinglequotemark ] };
key <BKSL> { [ plus, asterisk, grave, plusminus ] };
key <LSGT> { [ less, greater, bar, UF8FF ] }; // Apple logo
key <AB01> { [ z, Z, Greek_OMEGA, VoidSymbol ] };
key <AB02> { [ x, X, asciitilde, VoidSymbol ] };
key <AB03> { [ c, C, ccedilla, Ccedilla ] };
key <AB04> { [ v, V, radical, U25CA ] };
key <AB05> { [ b, B, integral, VoidSymbol ] };
key <AB06> { [ n, N, dead_tilde, VoidSymbol ] };
key <AB07> { [ m, M, mu, VoidSymbol ] };
key <AB08> { [ comma, semicolon, lessthanequal, guillemotleft ] };
key <AB09> { [ period, colon, greaterthanequal, guillemotright ] };
key <AB10> { [ thorn, THORN, rightsinglequotemark, rightdoublequotemark ] };
include "level3(ralt_switch)"
};
// This is a modified version of the English Dvorak layout that allows
// you to type all Icelandic letters under X. It's not a full attempt at
// nationalizing the layout as e.g. the Norwegian, Swedish and French
// layouts which modify the primary keys of the basic Dvorak layout
// extensively.
// Rather it's a simple modification of 5 keys of the US Dvorak layout,
// it adds Germanic/Icelandic style quotation marks („“), eth (ðÐ), ae
// (æÆ), endash and emdash (–—), thorn (þÞ), EuroSign (€) and the German
// Sharp S (ßẞ). These keys aren't used in the US version, making the
// Icelandic version a superset of it.
// Maybe someone else will make a "full" attempt at an Icelandic layout
// but I was mostly interested in continuing to type English comfortably
// as a primary function while being able to type the full Icelandic
// alphabet as a secondary function.
// -- Ævar Arnfjörð Bjarmason <avarab@gmail.com>
// Icelandic Dvorak
partial alphanumeric_keys
xkb_symbols "dvorak" {
include "us(dvorak)"
include "eurosign(4)"
name[Group1]= "Icelandic (Dvorak)";
key <AD11> { [ slash, question, U201e, U201c ] };
key <AC02> { [ o, O, odiaeresis, Odiaeresis ] };
key <AC06> { [ d, D, eth, ETH ] };
key <AC10> { [ s, S, ae, AE ] };
key <AC11> { [ minus, underscore, endash, emdash ] };
key <AB06> { [ b, B, ssharp, U1E9E ] };
key <AB10> { [ z, Z, thorn, THORN ] };
include "level3(ralt_switch)"
};

405
nixos/xkb/symbols/it Normal file
View File

@@ -0,0 +1,405 @@
// Keyboard layouts for Italy.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type4)"
name[Group1]="Italian";
key <TLDE> {[ backslash, bar, notsign, brokenbar ]};
key <AE02> {[ 2, quotedbl, twosuperior, dead_doubleacute]};
key <AE03> {[ 3, sterling, threesuperior, dead_tilde ]};
key <AE04> {[ 4, dollar, onequarter, oneeighth ]};
key <AE10> {[ 0, equal, braceright, dead_ogonek ]};
key <AE11> {[apostrophe, question, grave, questiondown ]};
key <AE12> {[ igrave, asciicircum, asciitilde, dead_circumflex ]};
key <AD11> {[ egrave, eacute, bracketleft, braceleft ]};
key <AD12> {[ plus, asterisk, bracketright, braceright ]};
key <AC10> {[ ograve, ccedilla, at, dead_cedilla ]};
key <AC11> {[ agrave, degree, numbersign, dead_abovering ]};
key <BKSL> {[ ugrave, section, dead_grave, dead_breve ]};
key <LSGT> {[ less, greater, guillemotleft, guillemotright ]};
key <AB04> {[ v, V, leftdoublequotemark, leftsinglequotemark ]};
key <AB05> {[ b, B, rightdoublequotemark, rightsinglequotemark ]};
key <AB06> {[ n, N, ntilde, Ntilde ]};
key <AB08> {[ comma, semicolon, dead_acute, multiply ]};
key <AB09> {[ period, colon, periodcentered, dead_diaeresis ]};
key <AB10> {[ minus, underscore, dead_macron, division ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "it(basic)"
name[Group1]="Italian (no dead keys)";
key <AE02> {[ 2, quotedbl, twosuperior, doubleacute ]};
key <AE03> {[ 3, sterling, threesuperior, asciitilde ]};
key <AE10> {[ 0, equal, braceright, ogonek ]};
key <AE12> {[ igrave, asciicircum, asciitilde, asciicircum ]};
key <AC07> {[ j, J, ezh, EZH ]};
key <AC10> {[ ograve, ccedilla, at, cedilla ]};
key <AC11> {[ agrave, degree, numbersign, degree ]};
key <BKSL> {[ ugrave, section, grave, breve ]};
key <AB08> {[ comma, semicolon, acute, multiply ]};
key <AB09> {[ period, colon, periodcentered, diaeresis ]};
key <AB10> {[ minus, underscore, macron, division ]};
};
partial alphanumeric_keys
xkb_symbols "winkeys" {
include "it(basic)"
name[Group1]="Italian (Windows)";
include "eurosign(5)"
};
partial alphanumeric_keys
xkb_symbols "mac" {
name[Group1]= "Italian (Macintosh)";
key <TLDE> {[ at, numbersign, periodcentered ]};
key <AE01> {[ ampersand, 1, guillemotleft, guillemotright ]};
key <AE02> {[ quotedbl, 2 ]};
key <AE03> {[ apostrophe, 3 ]};
key <AE04> {[ parenleft, 4, braceleft, bracketleft ]};
key <AE05> {[ ccedilla, 5, Ccedilla, Iacute ]};
key <AE06> {[ egrave, 6, paragraph, periodcentered ]};
key <AE07> {[ parenright, 7, braceright, bracketright ]};
key <AE08> {[ sterling, 8, infinity ]};
key <AE09> {[ agrave, 9, acute, Ocircumflex ]};
key <AE10> {[ eacute, 0, grave, Oacute ]};
key <AE11> {[ minus, underscore ]};
key <AE12> {[ equal, plus, notequal, plusminus ]};
key <AD01> {[ q, Q ]};
key <AD02> {[ z, Z ]};
key <AD03> {[ e, E, EuroSign ]};
key <AD04> {[ r, R, registered ]};
key <AD05> {[ t, T ]};
key <AD06> {[ y, Y, Uacute, ydiaeresis ]};
key <AD07> {[ u, U ]};
key <AD08> {[ i, I, icircumflex, idiaeresis ]};
key <AD09> {[ o, O ]};
key <AD10> {[ p, P ]};
key <AD11> {[ igrave, asciicircum ]};
key <AD12> {[ dollar, asterisk ]};
key <AC01> {[ a, A, aring, Aring ]};
key <AC02> {[ s, S, ssharp, U1E9E ]};
key <AC03> {[ d, D ]};
key <AC04> {[ f, F ]};
key <AC05> {[ g, G ]};
key <AC06> {[ h, H, Igrave, Icircumflex ]};
key <AC07> {[ j, J, Idiaeresis, Iacute ]};
key <AC08> {[ k, K, Egrave, Ediaeresis ]};
key <AC09> {[ l, L, ssharp, bar ]};
key <AC10> {[ m, M, mu, Oacute ]};
key <AC11> {[ ugrave, percent, ae, AE ]};
key <BKSL> {[ section, degree, at, numbersign ]};
key <LSGT> {[ less, greater ]};
key <AB01> {[ w, W ]};
key <AB02> {[ x, X ]};
key <AB03> {[ c, C, copyright, copyright ]};
key <AB04> {[ v, V ]};
key <AB05> {[ b, B ]};
key <AB06> {[ n, N, dead_tilde ]};
key <AB07> {[ comma, question, questiondown ]};
key <AB08> {[ semicolon, period ]};
key <AB09> {[ colon, slash, bar, backslash ]};
key <AB10> {[ ograve, exclam, exclamdown ]};
include "kpdl(dot)"
include "level3(ralt_switch)"
};
// Layout for Georgian people in Italy,
// originally by Vladimer Sichinava.
partial alphanumeric_keys
xkb_symbols "geo" {
include "it(basic)"
include "ge(basic)"
name[Group1]= "Georgian (Italy)";
key <TLDE> {[ backslash, bar, notsign, brokenbar ]};
key <AE01> {[ 1, exclam, onesuperior ]};
key <AE02> {[ 2, quotedbl, twosuperior, dead_doubleacute ]};
key <AE03> {[ 3, sterling, threesuperior, dead_tilde ]};
key <AE04> {[ 4, dollar, onequarter, oneeighth ]};
key <AE05> {[ 5, percent, onehalf ]};
key <AE06> {[ 6, ampersand ]};
key <AE07> {[ 7, slash, braceleft ]};
key <AE08> {[ 8, parenleft, bracketleft ]};
key <AE09> {[ 9, parenright ]};
key <AE10> {[ 0, equal, braceright, dead_ogonek ]};
key <AE11> {[ apostrophe, question, grave, questiondown ]};
key <AE12> {[ igrave, asciicircum, asciitilde, dead_circumflex ]};
key <AD03> {[ Georgian_en, E, EuroSign ]};
key <AD11> {[ egrave, eacute, bracketleft, braceleft ]};
key <AD12> {[ plus, asterisk, bracketright, braceright ]};
key <AC10> {[ ograve, ccedilla, at, dead_cedilla ]};
key <AC11> {[ agrave, degree, numbersign, degree ]};
key <BKSL> {[ ugrave, section, dead_grave, dead_breve ]};
key <LSGT> {[ less, greater ]};
key <AB08> {[ comma, semicolon ]};
key <AB09> {[ period, colon ]};
key <AB10> {[ minus, underscore ]};
};
xkb_symbols "olpc" {
include "it(basic)"
key <AE12> {[ igrave, asciicircum, asciitilde, dead_tilde ]};
key <BKSL> {[ ugrave, section, Egrave, dead_breve ]};
key <I219> {[ less, greater, guillemotleft, guillemotright ]};
};
partial alphanumeric_keys modifier_keys
xkb_symbols "us" {
include "us(basic)"
name[Group1]= "Italian (US)";
key <TLDE> {[ grave, asciitilde, dead_grave, dead_tilde ]};
key <AE01> {[ 1, exclam, onesuperior ]};
key <AE02> {[ 2, at, twosuperior ]};
key <AE03> {[ 3, numbersign, threesuperior ]};
key <AE05> {[ 5, percent, EuroSign ]};
key <AE06> {[ 6,asciicircum, dead_circumflex ]};
key <AE10> {[ 0, parenright, degree ]};
key <AE11> {[ minus, underscore, dead_macron ]};
key <AD03> {[ e, E, egrave, Egrave ]};
key <AD04> {[ r, R, registered ]};
key <AD07> {[ u, U, ugrave, Ugrave ]};
key <AD08> {[ i, I, igrave, Igrave ]};
key <AD09> {[ o, O, ograve, Ograve ]};
key <AC01> {[ a, A, agrave, Agrave ]};
key <AC03> {[ d, D, eacute, Eacute ]};
key <AC07> {[ j, J, uacute, Uacute ]};
key <AC08> {[ k, K, iacute, Iacute ]};
key <AC09> {[ l, L, oacute, Oacute ]};
key <AC10> {[ semicolon, colon, dead_diaeresis, dead_diaeresis ]};
key <AC11> {[apostrophe, quotedbl, dead_acute ]};
key <AB01> {[ z, Z, aacute, Aacute ]};
key <AB03> {[ c, C, copyright ]};
key <AB06> {[ n, N, ntilde, Ntilde ]};
key <AB08> {[ comma, less, guillemotleft ]};
key <AB09> {[ period, greater, guillemotright ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "ibm" {
include "us"
name[Group1]="Italian (IBM 142)";
key <TLDE> {[ backslash, bar ]};
key <AE02> {[ 2, quotedbl ]};
key <AE03> {[ 3, sterling, numbersign ]};
key <AE06> {[ 6, ampersand ]};
key <AE07> {[ 7, slash, braceleft ]};
key <AE08> {[ 8, parenleft, bracketleft ]};
key <AE09> {[ 9, parenright, bracketright ]};
key <AE10> {[ 0, equal, braceright ]};
key <AE11> {[apostrophe, question ]};
key <AE12> {[ igrave, asciicircum ]};
key <AD01> {[ q, Q, at ]};
key <AD03> {[ e, E, EuroSign ]};
key <AD11> {[ egrave, eacute ]};
key <AD12> {[ plus, asterisk, asciitilde ]};
key <AC10> {[ ograve, ccedilla ]};
key <AC11> {[ agrave, degree ]};
key <BKSL> {[ ugrave, section, grave ]};
key <LSGT> {[ less, greater ]};
key <AB08> {[ comma, semicolon ]};
key <AB09> {[ period, colon ]};
key <AB10> {[ minus, underscore ]};
include "level3(ralt_switch)"
include "kpdl(comma)"
};
// Layout for Friulian (a language in northeastern Italy).
// Originally by Fabio Tomat <f.t.public@gmail.com>, 2017.
partial alphanumeric_keys
xkb_symbols "fur" {
include "latin(type4)"
name[Group1] = "Friulian (Italy)";
key <TLDE> {[ backslash, bar, notsign, brokenbar ]};
key <AE02> {[ 2, quotedbl, twosuperior,dead_doubleacute]};
key <AE03> {[ 3, sterling, threesuperior, U1D49 ]};
key <AE04> {[ 4, dollar, onequarter, oneeighth ]};
key <AE05> {[ 5, percent, EuroSign, onehalf ]};
key <AE10> {[ 0, equal, braceright, dead_ogonek ]};
key <AE11> {[apostrophe, question, grave, questiondown ]};
key <AE12> {[ igrave, asciicircum, asciitilde,dead_circumflex]};
key <AD03> {[ e, E, ecircumflex, Ecircumflex ]};
key <AD05> {[ t, T, U1D57, U1D40 ]};
key <AD07> {[ u, U, ucircumflex, NoSymbol ]};
key <AD08> {[ i, I, icircumflex, Icircumflex ]};
key <AD09> {[ o, O, ocircumflex, Ocircumflex ]};
key <AD11> {[ egrave, eacute, bracketleft, braceleft ]};
key <AD12> {[ plus, asterisk, bracketright, braceright ]};
key <AC01> {[ a, A, acircumflex, Acircumflex ]};
key <AC03> {[ d, D, U1D48 ]};
key <AC04> {[ f, F, U1DA0, ordfeminine ]};
key <AC10> {[ ograve, ccedilla, at, dead_cedilla ]};
key <AC11> {[ agrave, degree, numbersign,dead_abovering ]};
key <BKSL> {[ ugrave, section, dead_grave, dead_breve ]};
key <LSGT> {[ less, greater, guillemotleft,guillemotright ]};
key <AB03> {[ c, C, U1D9C, copyright ]};
key <AB04> {[ v, V, leftdoublequotemark, leftsinglequotemark ]};
key <AB05> {[ b, B, rightdoublequotemark, rightsinglequotemark ]};
key <AB06> {[ n, N, U207F, Ntilde ]};
key <AB07> {[ m, M, U1D50, mu ]};
key <AB08> {[ comma, semicolon, dead_acute, multiply ]};
key <AB09> {[ period, colon,periodcentered,dead_diaeresis ]};
key <AB10> {[ minus, underscore, dead_macron, division ]};
include "level3(ralt_switch)"
};
// Layout for Sicilian, by Cademia Siciliana <l10n@cademiasiciliana.org>, 2023.
partial alphanumeric_keys
xkb_symbols "scn" {
include "it(basic)"
name[Group1] = "Sicilian";
key <AD02> {[ w, W, schwa, SCHWA ]}; // ə Ə
key <AD03> {[ e, E, EuroSign, ecircumflex ]};
key <AD04> {[ r, R, ediaeresis, Ediaeresis ]};
key <AD07> {[ u, U, ucircumflex, Ucircumflex ]};
key <AD08> {[ i, I, icircumflex, Icircumflex ]};
key <AD09> {[ o, O, ocircumflex, Ocircumflex ]};
key <AC01> {[ a, A, acircumflex, Acircumflex ]};
key <AC02> {[ s, S, scaron, Scaron ]};
key <AC03> {[ d, D, U1E0D, U1E0C ]}; // ḍ Ḍ
key <AC04> {[ f, F, dstroke, Dstroke ]};
key <AC11> {[ agrave, degree, numbersign, U1D58 ]}; // # ᵘ
key <AB02> {[ x, X, Greek_chi, Greek_CHI ]};
// The uppercase Ccedilla (Ç) can be reached by using CapsLock.
key <AB03> {[ c, C, ccedilla, copyright ]};
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/it(sun_type6)"
};
partial alphanumeric_keys
xkb_symbols "lld" {
include "it(basic)"
name[Group1] = "Ladin (Italian keyboard)";
key <AD08> {[ i, I, idiaeresis, Idiaeresis ]};
key <AD10> {[ p, P, ediaeresis, Ediaeresis ]};
key <AC01> {[ a, A, aacute, Aacute ]};
key <AC02> {[ s, S, sacute, Sacute ]};
key <AB03> {[ c, C, cacute, Cacute ]};
};
partial alphanumeric_keys
xkb_symbols "lldde" {
include "de(basic)"
name[Group1] = "Ladin (German keyboard)";
key <AD10> {[ p, P, ediaeresis, Ediaeresis ]};
};
// Dvorak layout for Italian.
// Based on https://web.archive.org/web/20170331132815/http://idvorak.altervista.org/.
partial alphanumeric_keys
xkb_symbols "dvorak" {
include "it(basic)"
name[Group1]= "Italian (Dvorak)";
key <AD01> {[ agrave, degree, numbersign ]};
key <AD02> {[ comma, semicolon ]};
key <AD03> {[ period, colon ]};
key <AD04> {[ p, P ]};
key <AD05> {[ y, Y ]};
key <AD06> {[ f, F ]};
key <AD07> {[ g, G ]};
key <AD08> {[ c, C ]};
key <AD09> {[ r, R ]};
key <AD10> {[ l, L ]};
key <AD11> {[ egrave, eacute, bracketleft ]};
key <AD12> {[ plus, asterisk, bracketright ]};
key <AC01> {[ a, A ]};
key <AC02> {[ o, O ]};
key <AC03> {[ e, E ]};
key <AC04> {[ u, U ]};
key <AC05> {[ i, I ]};
key <AC06> {[ d, D ]};
key <AC07> {[ h, H ]};
key <AC08> {[ t, T ]};
key <AC09> {[ n, N ]};
key <AC10> {[ s, S ]};
key <AC11> {[ minus, underscore ]};
key <AC12> {[ ugrave, section ]};
key <AB01> {[ ograve, ccedilla, at ]};
key <AB02> {[ q, Q ]};
key <AB03> {[ j, J ]};
key <AB04> {[ k, K ]};
key <AB05> {[ x, X ]};
key <AB06> {[ b, B ]};
key <AB07> {[ m, M ]};
key <AB08> {[ w, W ]};
key <AB09> {[ v, V ]};
key <AB10> {[ z, Z ]};
};

View File

@@ -0,0 +1,54 @@
// Instructions
//
// 1. Set basic layout by:
// setxkbmap -rules evdev -model jollasbj -layout cz
//
// 2. Set variant by:
// setxkbmap -rules evdev -model jollasbj -layout cz -variant qwerty
//
// 3. Set multilayout by:
// setxkbmap -rules evdev -model jollasbj -layout "us,cz" -variant ",qwerty" -option grp:ctrl_shift_toggle
// This sets the basic us layout active. You can switch to qwerty
// variant of cz layout by pressing ctrl+shift.
//
// Pitfalls
//
// 1. Many to one mappings
//
// Higher level input method components don't necessarily handle many to
// one mappings correctly. They may assume that there exists only a one
// to one mapping between a hardware key and a symbol. Therefore you
// should take care not to introduce many to one mappings for keys that
// are going to be reverse mapped from a symbol to a hardware key.
//
// Currently at least the modifier keys are affected. Clients may set
// states, such as autorepeat, for hardware keys by reverse mapping a
// modifier symbol to a hardware key and then setting the state for the
// first hardware key that maps to the symbol. The correct way would be
// to modify the state of all hardware keys mapping to a given symbol.
//
// We are nice and keep the mappings one to one for clients that don't
// choose to handle many to one mappings.
default partial alphanumeric_keys
xkb_symbols "common" {
include "pc(pc105)"
include "jolla_vndr/sbj(common-keys)"
// This section should not be included by any other section. It's
// referenced only once by rule file to allow multiple layout
// configurations.
};
partial hidden alphanumeric_keys
xkb_symbols "common-keys" {
// These keycodes are beyond the X11 255 limit value so it would
// only be valid for the use with SW which supports extended keycodes,
// like xkbcommon.
// generated from the headset, must always be in the map.
key <I264> { [ XF86Phone ] };
};

282
nixos/xkb/symbols/jp Normal file
View File

@@ -0,0 +1,282 @@
// Keyboard layouts for Japan.
// Layout for Japanese 106-key keyboards.
// Original author: tsuka@kawalab.dnj.ynu.ac.jp
default partial alphanumeric_keys
xkb_symbols "106" {
include "jp(common)"
name[Group1]= "Japanese";
key <AE10> {[ 0, asciitilde ]};
key <AE13> {[ backslash, bar ]};
};
partial alphanumeric_keys
xkb_symbols "OADG109A" {
include "jp(common)"
name[Group1]= "Japanese (OADG 109A)";
key <AE10> {[ 0 ]};
key <AE13> {[ yen, bar ]};
};
// Keys that are common to 106-key and 109-key keyboards.
hidden partial alphanumeric_keys
xkb_symbols "common" {
key <HZTG> {[ Zenkaku_Hankaku, Kanji ], type[group1]="PC_ALT_LEVEL2" };
key <AE01>{[ 1, exclam ]};
key <AE02> {[ 2, quotedbl ]};
key <AE03> {[ 3, numbersign ]};
key <AE04> {[ 4, dollar ]};
key <AE05> {[ 5, percent ]};
key <AE06> {[ 6, ampersand ]};
key <AE07> {[ 7, apostrophe ]};
key <AE08> {[ 8, parenleft ]};
key <AE09> {[ 9, parenright ]};
key <AE11> {[ minus, equal ]};
key <AE12> {[ asciicircum, asciitilde ]};
key <AD01> {[ q, Q ]};
key <AD02> {[ w, W ]};
key <AD03> {[ e, E ]};
key <AD04> {[ r, R ]};
key <AD05> {[ t, T ]};
key <AD06> {[ y, Y ]};
key <AD07> {[ u, U ]};
key <AD08> {[ i, I ]};
key <AD09> {[ o, O ]};
key <AD10> {[ p, P ]};
key <AD11> {[ at, grave ]};
key <AD12> {[ bracketleft, braceleft ]};
key <CAPS> {[ Eisu_toggle, Caps_Lock ]};
key <AC01> {[ a, A ]};
key <AC02> {[ s, S ]};
key <AC03> {[ d, D ]};
key <AC04> {[ f, F ]};
key <AC05> {[ g, G ]};
key <AC06> {[ h, H ]};
key <AC07> {[ j, J ]};
key <AC08> {[ k, K ]};
key <AC09> {[ l, L ]};
key <AC10> {[ semicolon, plus ]};
key <AC11> {[ colon, asterisk ]};
key <AC12> {[ bracketright, braceright ]};
key <AB01> {[ z, Z ]};
key <AB02> {[ x, X ]};
key <AB03> {[ c, C ]};
key <AB04> {[ v, V ]};
key <AB05> {[ b, B ]};
key <AB06> {[ n, N ]};
key <AB07> {[ m, M ]};
key <AB08> {[ comma, less ]};
key <AB09> {[ period, greater ]};
key <AB10> {[ slash, question ]};
key <AB11> {[ backslash, underscore ]};
key <NFER> {[ Muhenkan ]};
key <XFER> {[ Henkan, Mode_switch ], type[group1]="PC_ALT_LEVEL2" };
key <HKTG> {[ Hiragana_Katakana, Romaji ], type[group1]="PC_ALT_LEVEL2" };
key <PRSC> {[ Print, Execute ], type[group1]="PC_ALT_LEVEL2" };
};
// 86 keys with kana map
partial alphanumeric_keys
xkb_symbols "kana86" {
include "jp(kana)"
include "jp(OADG109A)"
name[Group1]= "Japanese (Kana 86)";
// For compatibility with other keyboards connected at the same time:
key <RWIN> {[ Super_R ]};
key <RCTL> {[ Control_R ]};
include "keypad(numoperdecsep)"
include "altwin(menu)"
};
partial alphanumeric_keys
xkb_symbols "kana" {
name[Group1]= "Japanese (Kana)";
key <HZTG> {[ Zenkaku_Hankaku, Kanji ], type[group1]="PC_ALT_LEVEL2" };
key <AE01> {[ kana_NU ]};
key <AE02> {[ kana_FU ]};
key <AE03> {[ kana_A, kana_a ]};
key <AE04> {[ kana_U, kana_u ]};
key <AE05> {[ kana_E, kana_e ]};
key <AE06> {[ kana_O, kana_o ]};
key <AE07> {[ kana_YA, kana_ya ]};
key <AE08> {[ kana_YU, kana_yu ]};
key <AE09> {[ kana_YO, kana_yo ]};
key <AE10> {[ kana_WA, kana_WO ]};
key <AE11> {[ kana_HO ]};
key <AE12> {[ kana_HE ]};
key <AE13> {[ prolongedsound ]};
key <AD01> {[ kana_TA ]};
key <AD02> {[ kana_TE ]};
key <AD03> {[ kana_I, kana_i ]};
key <AD04> {[ kana_SU ]};
key <AD05> {[ kana_KA ]};
key <AD06> {[ kana_N ]};
key <AD07> {[ kana_NA ]};
key <AD08> {[ kana_NI ]};
key <AD09> {[ kana_RA ]};
key <AD10> {[ kana_SE ]};
key <AD11> {[ voicedsound ]};
key <AD12> {[ semivoicedsound, kana_openingbracket ]};
key <CAPS> {[ Eisu_toggle, Caps_Lock ]};
key <AC01> {[ kana_CHI ]};
key <AC02> {[ kana_TO ]};
key <AC03> {[ kana_SHI ]};
key <AC04> {[ kana_HA ]};
key <AC05> {[ kana_KI ]};
key <AC06> {[ kana_KU ]};
key <AC07> {[ kana_MA ]};
key <AC08> {[ kana_NO ]};
key <AC09> {[ kana_RI ]};
key <AC10> {[ kana_RE ]};
key <AC11> {[ kana_KE ]};
key <AC12> {[ kana_MU, kana_closingbracket ]};
key <AB01> {[ kana_TSU, kana_tsu ]};
key <AB02> {[ kana_SA ]};
key <AB03> {[ kana_SO ]};
key <AB04> {[ kana_HI ]};
key <AB05> {[ kana_KO ]};
key <AB06> {[ kana_MI ]};
key <AB07> {[ kana_MO ]};
key <AB08> {[ kana_NE, kana_comma ]};
key <AB09> {[ kana_RU, kana_fullstop ]};
key <AB10> {[ kana_ME, kana_conjunctive ]};
key <AB11> {[ kana_RO ]};
key <NFER> {[ Muhenkan ]};
key <XFER> {[ Henkan, Mode_switch ], type[group1]="PC_ALT_LEVEL2" };
key <HKTG> {[ Hiragana_Katakana, Romaji ], type[group1]="PC_ALT_LEVEL2" };
key <PRSC> {[ Print, Execute ], type[group1]="PC_ALT_LEVEL2" };
};
partial alphanumeric_keys
xkb_symbols "mac" {
include "jp(kana)"
name[Group1]= "Japanese (Macintosh)";
replace key <CAPS> {[ Caps_Lock ]};
};
partial alphanumeric_keys
xkb_symbols "dvorak" {
include "jp(OADG109A)"
name[Group1]= "Japanese (Dvorak)";
key <AE11> {[ at, grave ]};
key <AD01> {[ colon, asterisk ]};
key <AD02> {[ comma, less ]};
key <AD03> {[ period, greater ]};
key <AD04> {[ p, P ]};
key <AD05> {[ y, Y ]};
key <AD06> {[ f, F ]};
key <AD07> {[ g, G ]};
key <AD08> {[ c, C ]};
key <AD09> {[ r, R ]};
key <AD10> {[ l, L ]};
key <AD11> {[ slash, question ]};
key <AC02> {[ o, O ]};
key <AC03> {[ e, E ]};
key <AC04> {[ u, U ]};
key <AC05> {[ i, I ]};
key <AC06> {[ d, D ]};
key <AC07> {[ h, H ]};
key <AC08> {[ t, T ]};
key <AC09> {[ n, N ]};
key <AC10> {[ s, S ]};
key <AC11> {[ minus, equal ]};
key <AB01> {[ semicolon, plus ]};
key <AB02> {[ q, Q ]};
key <AB03> {[ j, J ]};
key <AB04> {[ k, K ]};
key <AB05> {[ x, X ]};
key <AB06> {[ b, B ]};
key <AB08> {[ w, W ]};
key <AB09> {[ v, V ]};
key <AB10> {[ z, Z ]};
};
// Kludge for overriding the XF86AudioMedia symbol for non-evdev machines.
partial alphanumeric_keys
xkb_symbols "henkan" {
key <XFER> {[ Henkan, Mode_switch ], type[group1]="PC_ALT_LEVEL2" };
};
// Option for a Nicola-F-style Backspace key.
partial alphanumeric_keys
xkb_symbols "nicola_f_bs" {
key <AE10> {[ 0, underscore ]};
key <AD11> {[ colon, asterisk ]};
key <AC11> {[ BackSpace, BackSpace ]};
key <AC12> {[ Escape ]};
key <BKSP> {[ bracketright, braceright ]};
key <AB11> {[ at, grave ]};
};
partial alphanumeric_keys
xkb_symbols "hztg_escape" {
replace key <HZTG> {[ Escape ]};
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6_suncompat" {
include "sun_vndr/jp(sun_type6_suncompat)"
};
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/jp(sun_type6)"
};
partial alphanumeric_keys
xkb_symbols "sun_type7_suncompat" {
include "sun_vndr/jp(sun_type7_suncompat)"
};
partial alphanumeric_keys
xkb_symbols "suncompat" {
include "sun_vndr/jp(suncompat)"
};
partial alphanumeric_keys
xkb_symbols "sun_type7" {
include "sun_vndr/jp(sun_type7)"
};

63
nixos/xkb/symbols/ke Normal file
View File

@@ -0,0 +1,63 @@
// Keyboard layouts for Kenya.
default partial alphanumeric_keys
xkb_symbols "swa" {
include "us"
name[Group1]= "Swahili (Kenya)";
key <TLDE> {[ grave, asciitilde, U0300, U0303 ]}; //COMBINING GRAVE ACCENT, COMBINING TILDE
key <AE06> {[ 6, asciicircum, U0302 ]}; //COMBINING CIRCUMFLEX ACCENT
key <AE08> {[ 8, asterisk, U0307, U0323 ]}; //COMBINING DOT ABOVE, COMBINING DOT BELOW
key <AE09> {[ 9, parenleft, U0306 ]}; //COMBINING BREVE
key <AE10> {[ 0, parenright, U030c ]}; //COMBINING CARON
key <AE11> {[ minus, underscore, U0304, U0331 ]}; //COMBINING MACRON,COMBINING MACRON BELOW
key <AC10> {[ semicolon, colon, U0324, U0324 ]}; //COMBINING DIAERESIS BELOW
key <AC11> {[ apostrophe, quotedbl, U0301, U0308 ]}; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS
include "level3(ralt_switch)"
};
// Kikuyu (Gĩkũyũ) keyboard
// Based on Kasahorow keyboard layout
// https://code.google.com/archive/p/africakeyboards/
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ~ ¸ │ ! ¡ │ @ ⅛ │ # £ │ $ $ │ % ⅜ │ ^ ⅝ │ & ⅞ │ * ™ │ ( ± │ ) ° │ _ ¿ │ + ˛ ┃Backspace┃
// │ ` │ 1 ¹ │ 2 @ │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¬ │ 7 { │ 8 [ │ 9 ] │ 0 } │ - \ │ = ¸ ┃ ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ Ĩ Q │ W Ł │ E ¢ │ R ® │ T Ŧ │ Y ¥ │ U ↑ │ I ı │ O Ø │ P Þ │ { ° │ } ¯ ┃ Enter ┃
// ┃Tab ┃ ĩ q │ w ł │ e € │ r ¶ │ t ŧ │ y ← │ u ↓ │ i → │ o ø │ p þ │ [ ¨ │ ] ~ ┃ ⏎ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ A Æ │ S § │ D Ð │ F ª │ G Ŋ │ H Ħ │ J X │ K & │ L Ŀ │ : ˝ │ " ˇ │ | ˘ ┃ ┃
// ┃CAPS ┃ a æ │ s ß │ d ð │ f đ │ g ŋ │ h ħ │ j x │ k ĸ │ l ŀ │ ; ´ │ ' ^ │ \ ` ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ > ¦ │ Z < │ Ũ > │ C © │ V │ B │ N │ M º │ < × │ > ÷ │ ? ˙ ┃ ┃
// ┃Shift ⇧┃ < | │ z « │ ũ » │ c ¢ │ v „ │ b “ │ n ” │ m µ │ , • │ . · │ / ̣ ┃Shift ⇧ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┃Ctrl ┃Meta ┃Alt ┃ Space ┃AltGr ⇮┃Menu ┃Ctrl ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
partial alphanumeric_keys
xkb_symbols "kik" {
include "latin(basic)"
name[Group1]= "Kikuyu";
key <AE02> {[ 2, at, at ]};
key <AE06> {[ 6, asciicircum, notsign ]};
key <AD01> {[ itilde, Itilde, q, Q ]};
key <AD03> {[ e, E, EuroSign, cent ]};
key <AC07> {[ j, J, x, X ]};
key <AB02> {[ utilde, Utilde ]};
include "level3(ralt_switch)"
};

629
nixos/xkb/symbols/keypad Normal file
View File

@@ -0,0 +1,629 @@
default hidden partial keypad_keys
xkb_symbols "x11" {
include "keypad(operators)"
key <KP7> { [ KP_Home, KP_7 ] };
key <KP8> { [ KP_Up, KP_8 ] };
key <KP9> { [ KP_Prior, KP_9 ] };
key <KP4> { [ KP_Left, KP_4 ] };
key <KP5> { [ KP_Begin, KP_5 ] };
key <KP6> { [ KP_Right, KP_6 ] };
key <KP1> { [ KP_End, KP_1 ] };
key <KP2> { [ KP_Down, KP_2 ] };
key <KP3> { [ KP_Next, KP_3 ] };
key <KPEN> { [ KP_Enter ] };
key <KPEQ> { [ KP_Equal ] };
key <KP0> { [ KP_Insert, KP_0 ] };
key <KPDL> { [ KP_Delete, KP_Decimal ] };
key <KPPT> { [ KP_Decimal, KP_Decimal ] };
};
hidden partial keypad_keys
xkb_symbols "overlay" {
include "keypad(overlay1)"
};
hidden partial keypad_keys
xkb_symbols "overlay1" {
key <KP7> { [ KP_Home ], overlay1=<KO7> };
key <KP8> { [ KP_Up ], overlay1=<KO8> };
key <KP9> { [ KP_Prior ], overlay1=<KO9> };
key <KP4> { [ KP_Left ], overlay1=<KO4> };
key <KP5> { [ KP_Begin ], overlay1=<KO5> };
key <KP6> { [ KP_Right ], overlay1=<KO6> };
key <KP1> { [ KP_End ], overlay1=<KO1> };
key <KP2> { [ KP_Down ], overlay1=<KO2> };
key <KP3> { [ KP_Next ], overlay1=<KO3> };
key <KP0> { [ KP_Insert ], overlay1=<KO0> };
key <KPDL> { [ KP_Delete ], overlay1=<KODL> };
key <KO7> { [ KP_7 ] };
key <KO8> { [ KP_8 ] };
key <KO9> { [ KP_9 ] };
key <KO4> { [ KP_4 ] };
key <KO5> { [ KP_5 ] };
key <KO6> { [ KP_6 ] };
key <KO1> { [ KP_1 ] };
key <KO2> { [ KP_2 ] };
key <KO3> { [ KP_3 ] };
key <KO0> { [ KP_0 ] };
key <KODL> { [ KP_Decimal ] };
};
hidden partial keypad_keys
xkb_symbols "overlay2" {
key <KP7> { [ KP_Home ], overlay2=<KO7> };
key <KP8> { [ KP_Up ], overlay2=<KO8> };
key <KP9> { [ KP_Prior ], overlay2=<KO9> };
key <KP4> { [ KP_Left ], overlay2=<KO4> };
key <KP5> { [ KP_Begin ], overlay2=<KO5> };
key <KP6> { [ KP_Right ], overlay2=<KO6> };
key <KP1> { [ KP_End ], overlay2=<KO1> };
key <KP2> { [ KP_Down ], overlay2=<KO2> };
key <KP3> { [ KP_Next ], overlay2=<KO3> };
key <KP0> { [ KP_Insert ], overlay2=<KO0> };
key <KPDL> { [ KP_Delete ], overlay2=<KODL> };
key <KO7> { [ KP_7 ] };
key <KO8> { [ KP_8 ] };
key <KO9> { [ KP_9 ] };
key <KO4> { [ KP_4 ] };
key <KO5> { [ KP_5 ] };
key <KO6> { [ KP_6 ] };
key <KO1> { [ KP_1 ] };
key <KO2> { [ KP_2 ] };
key <KO3> { [ KP_3 ] };
key <KO0> { [ KP_0 ] };
key <KODL> { [ KP_Decimal ] };
};
hidden partial keypad_keys
xkb_symbols "operators" {
// Puts some commands to control the X server on
// the fifth level of the keypad's operator keys.
key <KPDV> {
type="CTRL+ALT", // Ungrab cancels server/keyboard/pointer grabs
symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ]
};
key <KPMU> {
type="CTRL+ALT", // ClsGrb kills whichever client has a grab in effect
symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ]
};
key <KPSU> {
type="CTRL+ALT", // -VMode switches to the previous video mode
symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ]
};
key <KPAD> {
type="CTRL+ALT", // +VMode switches to the next video mode
symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ]
};
};
// Legacy PC keypad definition
// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
keypad_keys
xkb_symbols "legacy" {
include "keypad(core)"
include "keypad(legacymath)"
include "keypad(legacynumber)"
include "kpdl(dot)"
};
// Legacy Wang 725-3771-ae and 725-3771-uk keypad definition
// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
keypad_keys
xkb_symbols "legacy_wang" {
include "keypad(core)"
include "keypad(legacymath)"
include "keypad(legacynumber_wang)"
include "kpdl(dot)"
};
// Complete new keypad definition
// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
keypad_keys
xkb_symbols "oss" {
include "keypad(core)"
include "keypad(ossmath)"
include "keypad(ossnumber)"
include "kpdl(dotoss)"
};
// Latin9 restriction of new keypad definition
// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
keypad_keys
xkb_symbols "oss_latin9" {
include "keypad(core)"
include "keypad(ossmath_latin9)"
include "keypad(legacynumber)"
include "kpdl(dotoss_latin9)"
};
// Wang 725-3771-ae and 725-3771-uk keypad variant of oss keypad
// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
keypad_keys
xkb_symbols "oss_wang" {
include "keypad(core)"
include "keypad(ossmath)"
include "keypad(ossnumber_wang)"
include "kpdl(dotoss)"
};
// Forward-looking keypad definition
// Won't work with applications that make ASCII assumptions
// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
keypad_keys
xkb_symbols "future" {
include "keypad(core)"
include "keypad(futuremath)"
include "keypad(ossnumber)"
include "kpdl(commaoss)"
};
// Forward-looking keypad definition
// Won't work with applications that make ASCII assumptions
// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
keypad_keys
xkb_symbols "future_wang" {
include "keypad(core)"
include "keypad(futuremath)"
include "keypad(ossnumber_wang)"
include "kpdl(commaoss)"
};
// Keypad keys nobody changes
// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
partial keypad_keys
xkb_symbols "core" {
modifier_map Mod2 { Num_Lock };
key <NMLK> { [ Num_Lock ] };
key <KPEN> { [ KP_Enter ] };
key <KPEQ> { [ KP_Equal ] };
};
// Legacy keypad math area
// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
//
// ┏━━━━━┱─────┬─────┬─────┐
// ┃Num ┃ ₁ │ ₂ │ ₃ │ ₁ <XF86_Ungrab>
// ┃Lock⇭┃ / │ * │ - │ ₂ <XF86_ClearGrab>
// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode>
// │ ₄ │ ₄ <XF86_Next_VMode>
// │ │
// ┤ │ 1 None
// │ │ 2 Ctrl+Alt
// │ + │
// ╆━━━━━┪
partial keypad_keys
xkb_symbols "legacymath" {
key.type[Group1]="CTRL+ALT" ;
key <KPDV> { [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] }; // / <XF86_Ungrab>
key <KPMU> { [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] }; // * <XF86_ClearGrab>
key <KPSU> { [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] }; // - <XF86_Prev_VMode>
key <KPAD> { [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] }; // + <XF86_Next_VMode>
};
// Keypad math area with non-CS operators
// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
//
// ┏━━━━━┱─────┬─────┬─────┐
// ┃Num ┃ ₁ │ . ₂ │ ₃ │ ₁ <XF86_Ungrab>
// ┃Lock⇭┃ / ÷ │ * × │ - │ ₂ <XF86_ClearGrab>
// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode>
// │ + ₄ │ ₄ <XF86_Next_VMode>
// │ │
// ┤ │ 1 None
// │ │ 2 Level3 ⇮
// │ + + │ 3 Shift+Level3 ⇧⇮
// ╆━━━━━┪ 4 Ctrl+Alt
partial keypad_keys
xkb_symbols "ossmath" {
key.type[Group1]="CTRL+ALT" ;
key <KPDV> { [ KP_Divide, 0x1002215, 0x10000F7, VoidSymbol, XF86_Ungrab ] }; // / ÷ <XF86_Ungrab>
key <KPMU> { [ KP_Multiply, 0x10022C5, 0x10000D7, VoidSymbol, XF86_ClearGrab ] }; // * ⋅ × <XF86_ClearGrab>
key <KPSU> { [ KP_Subtract, 0x1002212, 0x1002212, VoidSymbol, XF86_Prev_VMode ] }; // - <XF86_Prev_VMode>
key <KPAD> { [ KP_Add, 0x100002B, 0x100002B, VoidSymbol, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
};
// Keypad math area with non-CS operators in first levels
// As demanded by users not interested in legacy pre-unicode junk
// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
//
// ┏━━━━━┱─────┬─────┬─────┐
// ┃Num ┃ / ₁ │ * ₂ │ - ₃ │ ₁ <XF86_Ungrab>
// ┃Lock⇭┃ ÷ │ . × │ ₂ <XF86_ClearGrab>
// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode>
// │ + ₄ │ ₄ <XF86_Next_VMode>
// │ │
// ┤ │ 1 None
// │ │ 2 Level3 ⇮
// │ + + │ 3 Shift+Level3 ⇧⇮
// ╆━━━━━┪ 4 Ctrl+Alt
partial keypad_keys
xkb_symbols "futuremath" {
key.type[Group1]="FOUR_LEVEL_X" ;
key <KPDV> { [ 0x1002215, KP_Divide, 0x10000F7, XF86_Ungrab ] }; // / ÷ <XF86_Ungrab>
key <KPMU> { [ 0x10022C5, KP_Multiply, 0x10000D7, XF86_ClearGrab ] }; // ⋅ * × <XF86_ClearGrab>
key <KPSU> { [ 0x1002212, KP_Subtract, 0x1002212, XF86_Prev_VMode ] }; // - <XF86_Prev_VMode>
key <KPAD> { [ 0x100002B, KP_Add, 0x100002B, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
};
// Keypad math area with non-CS operators, restricted to latin9
// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
//
// ┏━━━━━┱─────┬─────┬─────┐
// ┃Num ┃ / ₁ │ · ₂ │ - ₃ │ ₁ <XF86_Ungrab>
// ┃Lock⇭┃ / ÷ │ * × │ - - │ ₂ <XF86_ClearGrab>
// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode>
// │ + ₄ │ ₄ <XF86_Next_VMode>
// │ │
// ┤ │ 1 None
// │ │ 2 Level3 ⇮
// │ + + │ 3 Shift+Level3 ⇧⇮
// ╆━━━━━┪ 4 Ctrl+Alt
partial keypad_keys
xkb_symbols "ossmath_latin9" {
key.type[Group1]="FOUR_LEVEL_X";
key <KPDV> { [ KP_Divide, slash, division, XF86_Ungrab ] }; // / / ÷ <XF86_Ungrab>
key <KPMU> { [ KP_Multiply, periodcentered, multiply, XF86_ClearGrab ] }; // * · × <XF86_ClearGrab>
key <KPSU> { [ KP_Subtract, minus, minus, XF86_Prev_VMode ] }; // - - - <XF86_Prev_VMode>
key <KPAD> { [ KP_Add, plus, plus, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
};
// Legacy keypad number area
// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
//
// ┏━━━━━┱
// ┃Num ┃ ⇱ Home
// ┃Lock⇭┃ ⇲ End
// ┡━━━━━╃─────┼─────┼ ⇞ Page up
// │ 7 │ 8 │ 9 │ ⇟ Page down
// │ ⇱ │ ⇧ │ ⇞ │ ⎀ Insert
// ├─────┼─────┼─────┤ ␥ Delete
// │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions
// │ ⇦ │ │ ⇨ │
// ├─────┼─────┼─────╆
// │ 1 │ 2 │ 3 ┃
// │ ⇲ │ ⇩ │ ⇟ ┃ 1 None
// ├─────┴─────┼─────┨ 2 Num Lock ⇭
// │ 0 │
// │ ⎀ │
// └───────────┴
partial keypad_keys
xkb_symbols "legacynumber" {
key.type[Group1]="KEYPAD" ;
key <KP7> { [ KP_Home, KP_7 ] }; // <home> 7
key <KP8> { [ KP_Up, KP_8 ] }; // <up> 8
key <KP9> { [ KP_Prior, KP_9 ] }; // <prior> 9
key <KP4> { [ KP_Left, KP_4 ] }; // <left> 4
key <KP5> { [ KP_Begin, KP_5 ] }; // <begin> 5
key <KP6> { [ KP_Right, KP_6 ] }; // <right> 6
key <KP1> { [ KP_End, KP_1 ] }; // <end> 1
key <KP2> { [ KP_Down, KP_2 ] }; // <down> 2
key <KP3> { [ KP_Next, KP_3 ] }; // <next> 3
key <KP0> { [ KP_Insert, KP_0 ] }; // <insert> 0
};
// Legacy Wang 725-3771-ae and 725-3771-uk keypad number area
// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
// This is actually a three-level keypad, declared as four-level
// to avoid defining a new type
//
// ┏━━━━━┱
// ┃Num ┃ ⇱ Home
// ┃Lock⇭┃ ⇲ End
// ┡━━━━━╃─────┼─────┼ ⇞ Page up
// │ 7 │ 8 │ 9 │ ⇟ Page down
// │ ⇱ < │ ⇧ > │ ⇞ ^ │ ⎀ Insert
// ├─────┼─────┼─────┤ ␥ Delete
// │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions
// │ ⇦ [ │ ] │ ⇨ $ │
// ├─────┼─────┼─────╆
// │ 1 │ 2 │ 3 ┃
// │ ⇲ & │ ⇩ @ │ ⇟ # ┃ 1 None
// ├─────┴─────┼─────┨ 2 Num Lock ⇭
// │ 0 │ 3 Level3 ⇮
// │ ⎀ │
// └───────────┴
partial keypad_keys
xkb_symbols "legacynumber_wang" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
key <KP7> { [ KP_Home, KP_7, less ] }; // <home> 7 <
key <KP8> { [ KP_Up, KP_8, greater ] }; // <up> 8 >
key <KP9> { [ KP_Prior, KP_9, asciicircum ] }; // <prior> 9 ^
key <KP4> { [ KP_Left, KP_4, bracketleft ] }; // <left> 4 [
key <KP5> { [ KP_Begin, KP_5, bracketright ] }; // <begin> 5 ]
key <KP6> { [ KP_Right, KP_6, dollar ] }; // <right> 6 $
key <KP1> { [ KP_End, KP_1, ampersand ] }; // <end> 1 &
key <KP2> { [ KP_Down, KP_2, at ] }; // <down> 2 @
key <KP3> { [ KP_Next, KP_3, numbersign ] }; // <next> 3 #
key <KP0> { [ KP_Insert, KP_0, apostrophe ] }; // <insert> 0 '
};
// Keypad number area with arrow symbols
// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
//
// ┏━━━━━┱
// ┃Num ┃ ⇱ Home
// ┃Lock⇭┃ ⇲ End
// ┡━━━━━╃─────┼─────┼ ⇞ Page up
// │ 7 ⇖ │ 8 ⇑ │ 9 ⇗ │ ⇟ Page down
// │ ⇱ ↖ │ ⇧ ↑ │ ⇞ ↗ │ ⎀ Insert
// ├─────┼─────┼─────┤ ␥ Delete
// │ 4 ⇐ │ 5 ⇔ │ 6 ⇒ │ ⇦⇧⇨⇩ Directions
// │ ⇦ ← │ ↔ │ ⇨ → │ ⍽ narrow no-break space
// ├─────┼─────┼─────╆
// │ 1 ⇙ │ 2 ⇓ │ 3 ⇘ ┃
// │ ⇲ ↙ │ ⇩ ↓ │ ⇟ ↘ ┃ 1 None
// ├─────┴─────┼─────┨ 2 Num Lock ⇭
// │ 0 ⇕ │ 3 Level3 ⇮
// │ ⎀ ↕ │ 4 Shift+Level3 ⇧⇮
// └───────────┴
partial keypad_keys
xkb_symbols "ossnumber" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
key <KP7> { [ KP_Home, KP_7, 0x1002196, 0x10021D6 ] }; // <home> 7 ↖ ⇖
key <KP8> { [ KP_Up, KP_8, 0x1002191, 0x10021D1 ] }; // <up> 8 ↑ ⇑
key <KP9> { [ KP_Prior, KP_9, 0x1002197, 0x10021D7 ] }; // <prior> 9 ↗ ⇗
key <KP4> { [ KP_Left, KP_4, 0x1002190, 0x10021D0 ] }; // <left> 4 ← ⇐
key <KP5> { [ KP_Begin, KP_5, 0x1002194, 0x10021D4 ] }; // <begin> 5 ↔ ⇔
key <KP6> { [ KP_Right, KP_6, 0x1002192, 0x10021D2 ] }; // <right> 6 → ⇒
key <KP1> { [ KP_End, KP_1, 0x1002199, 0x10021D9 ] }; // <end> 1 ↙ ⇙
key <KP2> { [ KP_Down, KP_2, 0x1002193, 0x10021D3 ] }; // <down> 2 ↓ ⇓
key <KP3> { [ KP_Next, KP_3, 0x1002198, 0x10021D8 ] }; // <next> 3 ↘ ⇘
key <KP0> { [ KP_Insert, KP_0, 0x1002195, 0x10021D5 ] }; // <insert> 0 ↕ ⇕
};
// Wang 725-3771-ae and 725-3771-uk keypad number area with additional arrow symbols
// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
//
// ┏━━━━━┱
// ┃Num ┃ ⇱ Home
// ┃Lock⇭┃ ⇲ End
// ┡━━━━━╃─────┼─────┼ ⇞ Page up
// │ 7 ↖ │ 8 ↑ │ 9 ↗ │ ⇟ Page down
// │ ⇱ < │ ⇧ > │ ⇞ ^ │ ⎀ Insert
// ├─────┼─────┼─────┤ ␥ Delete
// │ 4 ← │ 5 ↔ │ 6 → │ ⇦⇧⇨⇩ Directions
// │ ⇦ [ │ ] │ ⇨ $ │ ⍽ narrow no-break space
// ├─────┼─────┼─────╆
// │ 1 ↙ │ 2 ↓ │ 3 ↘ ┃
// │ ⇲ & │ ⇩ @ │ ⇟ # ┃ 1 None
// ├─────┴─────┼─────┨ 2 Num Lock ⇭
// │ 0 ↕ │ 3 Level3 ⇮
// │ ⎀ ' │ 4 Shift+Level3 ⇧⇮
// └───────────┴
partial keypad_keys
xkb_symbols "ossnumber_wang" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
key <KP7> { [ KP_Home, KP_7, less, 0x1002196 ] }; // <home> 7 < ↖
key <KP8> { [ KP_Up, KP_8, greater, 0x1002191 ] }; // <up> 8 > ↑
key <KP9> { [ KP_Prior, KP_9, asciicircum, 0x1002197 ] }; // <prior> 9 ^ ↗
key <KP4> { [ KP_Left, KP_4, bracketleft, 0x1002190 ] }; // <left> 4 [ ←
key <KP5> { [ KP_Begin, KP_5, bracketright, 0x1002194 ] }; // <begin> 5 ] ↔
key <KP6> { [ KP_Right, KP_6, dollar, 0x1002192 ] }; // <right> 6 $ →
key <KP1> { [ KP_End, KP_1, ampersand, 0x1002199 ] }; // <end> 1 & ↙
key <KP2> { [ KP_Down, KP_2, at, 0x1002193 ] }; // <down> 2 @ ↓
key <KP3> { [ KP_Next, KP_3, numbersign, 0x1002198 ] }; // <next> 3 # ↘
key <KP0> { [ KP_Insert, KP_0, apostrophe, 0x1002195 ] }; // <insert> 0 ' ↕
};
// Standard base "pc" layout only contains cursor keys, and then gets
// augmented with the digits later. If you define your own layout for
// the numpad you can inherit the cursors, but you'll have to define
// the digits yourself. This module can be included in the rules to
// define math operators; these are the variants used in computer
// languages that are based on ASCII. NoSymbol does not mean that
// nothing is bound to the key but that no assignment is done here.
// srvr_ctrl(stdkeypad) and keypad(x11) declare the operator keys to
// be of type CTRL+ALT in order to assign server control events to
// them, but it uses the second level which is overwritten if we have
// more than one definition (shift state) for the key. Instead, here
// the commands are put at the 4th lever.
partial keypad_keys
xkb_symbols "ops" {
key <KPDV> { [ NoSymbol, slash, NoSymbol, XF86_Ungrab ] };
key <KPMU> { [ NoSymbol, asterisk, NoSymbol, XF86_ClearGrab ] };
key <KPSU> { [ NoSymbol, minus, NoSymbol, XF86_Prev_VMode ] };
key <KPAD> { [ NoSymbol, plus, NoSymbol, XF86_Next_VMode ] };
key <KPEQ> { [ NoSymbol, equal ] };
};
// Hexadecimal Numpad, by Roland Kaufmann <rlndkfmn at gmail dot com>
// License: BSD (also covers variant with ATM digit order)
// Third-level gives the letters used in hexadecimal numbers, or
// columns in small spreadsheets. As a bonus, having 'e' available at
// the center of the keyboard makes it easy to enter floating point
// numbers in scientific notation.
// Equal is added to start formulas (most numpads on PCs don't have
// their own equal key), comma as a list separator (as most
// programming languages wants period as a decimal separator) and
// colon to enter times and ranges. Someone also may want to represent
// multiplication and division in prose using x and colon.
// Two first levels are specified as NoSymbol to not override any
// previous specification. Combine this with another keypad specifier,
// e.g. "legacy".
partial keypad_keys
xkb_symbols "hex" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
include "keypad(ops)"
// None NumLock AltGr
// symbol row
key <KPDV> { [ NoSymbol, NoSymbol, parenleft ] };
key <KPMU> { [ NoSymbol, NoSymbol, parenright ] };
key <KPSU> { [ NoSymbol, NoSymbol, dollar ] };
// upper row
key <KP7> { [ NoSymbol, NoSymbol, a ] };
key <KP8> { [ NoSymbol, NoSymbol, b ] };
key <KP9> { [ NoSymbol, NoSymbol, c ] };
// home row
key <KP4> { [ NoSymbol, NoSymbol, d ] };
key <KP5> { [ NoSymbol, NoSymbol, e ] };
key <KP6> { [ NoSymbol, NoSymbol, f ] };
key <KPAD> { [ NoSymbol, NoSymbol, comma ] };
// lower row
key <KP1> { [ NoSymbol, NoSymbol, equal ] };
key <KP2> { [ NoSymbol, NoSymbol, x ] };
key <KP3> { [ NoSymbol, NoSymbol, colon ] };
// decimal row
key <KP0> { [ NoSymbol, NoSymbol, backslash ] };
};
// Main numbers follows the traditions from ATMs and phones with
// numbers increasing downwards to the right. (It is easier to
// change the keyboard layout than to reprogram your local ATM;
// also cell-phones are becoming more common while calculators are
// becoming more rare).
// First level is left unspecified, so it may be combined with another
// layout, e.g. "legacy".
partial keypad_keys
xkb_symbols "atm" {
include "keypad(ops)"
include "keypad(hex)"
// upper row
key <KP7> { [ NoSymbol, KP_1 ] };
key <KP8> { [ NoSymbol, KP_2 ] };
key <KP9> { [ NoSymbol, KP_3 ] };
// lower row
key <KP1> { [ NoSymbol, KP_7 ] };
key <KP2> { [ NoSymbol, KP_8 ] };
key <KP3> { [ NoSymbol, KP_9 ] };
};
partial modifier_keys
xkb_symbols "pointerkeys" {
key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
};
// Only numbers, operators and decimal separator,
// as seen on keypad overlay on Japanese keyboard.
// ┌───┬───┬───┬───┐
// │ 7 │ 8 │ 9 │ * │
// ├───┼───┼───┼───┤
// │ 4 │ 5 │ 6 │ - │
// ├───┼───┼───┼───┤
// │ 1 │ 2 │ 3 │ + │
// ├───┼───┼───┼───┤
// │ 0 │ │ · │ / │
// └───┴───┴───┴───┘
partial keypad_keys
xkb_symbols "numoperdecsep" {
key <KO7> { [ KP_7 ] };
key <KO8> { [ KP_8 ] };
key <KO9> { [ KP_9 ] };
// ClsGrb kills whichever client has a grab in effect
key <KOMU> {
type="CTRL+ALT",
symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ]
};
key <KO4> { [ KP_4 ] };
key <KO5> { [ KP_5 ] };
key <KO6> { [ KP_6 ] };
// -VMode switches to the previous video mode
key <KOSU> {
type="CTRL+ALT",
symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ]
};
key <KO1> { [ KP_1 ] };
key <KO2> { [ KP_2 ] };
key <KO3> { [ KP_3 ] };
// +VMode switches to the next video mode
key <KOAD> {
type="CTRL+ALT",
symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ]
};
key <KO0> { [ KP_0 ] };
key <KODL> { [ KP_Decimal ] };
// Ungrab cancels server/keyboard/pointer grabs
key <KODV> {
type="CTRL+ALT",
symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ]
};
};

135
nixos/xkb/symbols/kg Normal file
View File

@@ -0,0 +1,135 @@
// Keyboard layouts for Kyrgyzstan.
// Standard : Phonetic
// _____________ _____________
// ё1234567890өң ё1234567890яю
// Ё!"№;%:?*()ӨҢ Ё!"№;%:?-()ЯЮ
//
// йцукенгшщзхъү өүертыуиопчшъ
// фывапролджэ асдфгңйклэь
// ячсмитьбю.(,) зхжвбнмцщ.(,)
// Authors:
// Timur Jamakeev <ztimur [at] gmail.com>
// Ilyas Bakirov <just_ilyas [at] yahoo.com>
// Yury Fedorov <yury-fedorov [at] prime-task.com>
// Emil Asanov <a7 [at] on.kg>
// Ulan Melisbek <ulan.melisbek [at] gmail.com>
// Kyrgyz standard layout.
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Kyrgyz";
key <TLDE> {[ Cyrillic_io, Cyrillic_IO ]};
key <AE01> {[ 1, exclam ]};
key <AE02> {[ 2, quotedbl ]};
key <AE03> {[ 3, numerosign ]};
key <AE04> {[ 4, semicolon ]};
key <AE05> {[ 5, percent ]};
key <AE06> {[ 6, colon ]};
key <AE07> {[ 7, question ]};
key <AE08> {[ 8, asterisk ]};
key <AE09> {[ 9, parenleft ]};
key <AE10> {[ 0, parenright ]};
key <AE11> {[ Cyrillic_o_bar, Cyrillic_O_bar ]};
key <AE12> {[Cyrillic_en_descender,Cyrillic_EN_descender]};
key <AD01> {[ Cyrillic_shorti, Cyrillic_SHORTI ]};
key <AD02> {[ Cyrillic_tse, Cyrillic_TSE ]};
key <AD03> {[ Cyrillic_u, Cyrillic_U ]};
key <AD04> {[ Cyrillic_ka, Cyrillic_KA ]};
key <AD05> {[ Cyrillic_ie, Cyrillic_IE ]};
key <AD06> {[ Cyrillic_en, Cyrillic_EN ]};
key <AD07> {[ Cyrillic_ghe, Cyrillic_GHE ]};
key <AD08> {[ Cyrillic_sha, Cyrillic_SHA ]};
key <AD09> {[ Cyrillic_shcha, Cyrillic_SHCHA ]};
key <AD10> {[ Cyrillic_ze, Cyrillic_ZE ]};
key <AD11> {[ Cyrillic_ha, Cyrillic_HA ]};
key <AD12> {[Cyrillic_hardsign,Cyrillic_HARDSIGN]};
key <AC01> {[ Cyrillic_ef, Cyrillic_EF ]};
key <AC02> {[ Cyrillic_yeru, Cyrillic_YERU ]};
key <AC03> {[ Cyrillic_ve, Cyrillic_VE ]};
key <AC04> {[ Cyrillic_a, Cyrillic_A ]};
key <AC05> {[ Cyrillic_pe, Cyrillic_PE ]};
key <AC06> {[ Cyrillic_er, Cyrillic_ER ]};
key <AC07> {[ Cyrillic_o, Cyrillic_O ]};
key <AC08> {[ Cyrillic_el, Cyrillic_EL ]};
key <AC09> {[ Cyrillic_de, Cyrillic_DE ]};
key <AC10> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
key <AC11> {[ Cyrillic_e, Cyrillic_E ]};
key <BKSL> {[Cyrillic_u_straight,Cyrillic_U_straight]};
key <LSGT> {[ slash, bar ]};
key <AB01> {[ Cyrillic_ya, Cyrillic_YA ]};
key <AB02> {[ Cyrillic_che, Cyrillic_CHE ]};
key <AB03> {[ Cyrillic_es, Cyrillic_ES ]};
key <AB04> {[ Cyrillic_em, Cyrillic_EM ]};
key <AB05> {[ Cyrillic_i, Cyrillic_I ]};
key <AB06> {[ Cyrillic_te, Cyrillic_TE ]};
key <AB07> {[Cyrillic_softsign,Cyrillic_SOFTSIGN]};
key <AB08> {[ Cyrillic_be, Cyrillic_BE ]};
key <AB09> {[ Cyrillic_yu, Cyrillic_YU ]};
key <AB10> {[ period, comma ]};
};
// Kyrgyz phonetic layout.
partial alphanumeric_keys
xkb_symbols "phonetic" {
name[Group1]="Kyrgyz (phonetic)";
key <TLDE> {[ Cyrillic_io, Cyrillic_IO ]};
key <AE01> {[ 1, exclam ]};
key <AE02> {[ 2, quotedbl ]};
key <AE03> {[ 3, numerosign ]};
key <AE04> {[ 4, semicolon ]};
key <AE05> {[ 5, percent ]};
key <AE06> {[ 6, colon ]};
key <AE07> {[ 7, question ]};
key <AE08> {[ 8, minus ]};
key <AE09> {[ 9, parenleft ]};
key <AE10> {[ 0, parenright ]};
key <AE11> {[ Cyrillic_ya, Cyrillic_YA ]};
key <AE12> {[ Cyrillic_yu, Cyrillic_YU ]};
key <LatQ> {[ Cyrillic_o_bar, Cyrillic_O_bar ]};
key <LatW> {[Cyrillic_u_straight, Cyrillic_U_straight]};
key <AD03> {[ Cyrillic_ie, Cyrillic_IE ]};
key <AD04> {[ Cyrillic_er, Cyrillic_ER ]};
key <AD05> {[ Cyrillic_te, Cyrillic_TE ]};
key <LatY> {[ Cyrillic_yeru, Cyrillic_YERU ]};
key <AD07> {[ Cyrillic_u, Cyrillic_U ]};
key <AD08> {[ Cyrillic_i, Cyrillic_I ]};
key <AD09> {[ Cyrillic_o, Cyrillic_O ]};
key <AD10> {[ Cyrillic_pe, Cyrillic_PE ]};
key <AD11> {[ Cyrillic_che, Cyrillic_CHE ]};
key <AD12> {[ Cyrillic_sha, Cyrillic_SHA ]};
key <LatA> {[ Cyrillic_a, Cyrillic_A ]};
key <AC02> {[ Cyrillic_es, Cyrillic_ES ]};
key <AC03> {[ Cyrillic_de, Cyrillic_DE ]};
key <AC04> {[ Cyrillic_ef, Cyrillic_EF ]};
key <AC05> {[ Cyrillic_ghe, Cyrillic_GHE ]};
key <AC06> {[Cyrillic_en_descender,Cyrillic_EN_descender]};
key <AC07> {[ Cyrillic_shorti, Cyrillic_SHORTI ]};
key <AC08> {[ Cyrillic_ka, Cyrillic_KA ]};
key <AC09> {[ Cyrillic_el, Cyrillic_EL ]};
key <AC10> {[ Cyrillic_e, Cyrillic_E ]};
key <AC11> {[Cyrillic_softsign, Cyrillic_SOFTSIGN]};
key <BKSL> {[Cyrillic_hardsign, Cyrillic_HARDSIGN]};
key <LatZ> {[ Cyrillic_ze, Cyrillic_ZE ]};
key <AB02> {[ Cyrillic_ha, Cyrillic_HA ]};
key <AB03> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
key <AB04> {[ Cyrillic_ve, Cyrillic_VE ]};
key <AB05> {[ Cyrillic_be, Cyrillic_BE ]};
key <AB06> {[ Cyrillic_en, Cyrillic_EN ]};
key <AB07> {[ Cyrillic_em, Cyrillic_EM ]};
key <AB08> {[ Cyrillic_tse, Cyrillic_TSE ]};
key <AB09> {[ Cyrillic_shcha, Cyrillic_SHCHA ]};
key <AB10> {[ period, comma ]};
};

89
nixos/xkb/symbols/kh Normal file
View File

@@ -0,0 +1,89 @@
// Keyboard layouts for Cambodia.
// Khmer Unicode standard keyboard layout as designed by the National
// Information Communications Technology Development Authority (NiDa)
// of Cambodia -- http://www.nida.gov.kh/.
//
// Origial author: Jens Herden (jens at khmeros.info), 2005.
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Khmer (Cambodia)";
// Four levels: normal Shift right Alt Shift+right Alt
key <TLDE> {[guillemotleft,guillemotright, U200d, none ]};
key <AE01> {[ U17e1, exclam, U200c, U17f1 ]};
key <AE02> {[ U17e2, U17d7, at, U17f2 ]};
key <AE03> {[ U17e3, quotedbl, U17d1, U17f3 ]};
key <AE04> {[ U17e4, U17db, dollar, U17f4 ]};
key <AE05> {[ U17e5, percent, EuroSign, U17f5 ]};
key <AE06> {[ U17e6, U17cd, U17d9, U17f6 ]};
key <AE07> {[ U17e7, U17d0, U17da, U17f7 ]};
key <AE08> {[ U17e8, U17cf, asterisk, U17f8 ]};
key <AE09> {[ U17e9, parenleft, braceleft, U17f9 ]};
key <AE10> {[ U17e0, parenright, braceright, U17f0 ]};
key <AE11> {[ U17a5, U17cc, x, none ]};
key <AE12> {[ U17b2, equal, U17ce, none ]};
key <AD01> {[ U1786, U1788, U17dc, U19e0 ]};
key <AD02> {[ U17b9, U17ba, U17dd, U19e1 ]};
key <AD03> {[ U17c1, U17c2, U17af, U19e2 ]};
key <AD04> {[ U179a, U17ac, U17ab, U19e3 ]};
key <AD05> {[ U178f, U1791, U17a8, U19e4 ]};
key <AD06> {[ U1799, U17bd, none, U19e5 ]};
key <AD07> {[ U17bb, U17bc, none, U19e6 ]};
key <AD08> {[ U17b7, U17b8, U17a6, U19e7 ]};
key <AD09> {[ U17c4, U17c5, U17b1, U19e8 ]};
key <AD10> {[ U1795, U1797, U17b0, U19e9 ]};
key <AD11> {[ U17c0, U17bf, U17a9, U19ea ]};
key <AD12> {[ U17aa, U17a7, U17b3, U19eb ]};
key <AC01> {[ U17b6, U17ff, none, U19ec ]};
key <AC02> {[ U179f, U17c3, none, U19ed ]};
key <AC03> {[ U178a, U178c, none, U19ee ]};
key <AC04> {[ U1790, U1792, none, U19ef ]};
key <AC05> {[ U1784, U17a2, none, U19f0 ]};
key <AC06> {[ U17a0, U17c7, none, U19f1 ]};
key <AC07> {[ U17d2, U1789, none, U19f2 ]};
key <AC08> {[ U1780, U1782, U179d, U19f3 ]};
key <AC09> {[ U179b, U17a1, none, U19f4 ]};
key <AC10> {[ U17be, U17fe, U17d6, U19f5 ]};
key <AC11> {[ U17cb, U17c9, U17c8, U19f6 ]};
key <BKSL> {[ U17ae, U17ad, backslash, none ]};
key <AB01> {[ U178b, U178d, none, U19f7 ]};
key <AB02> {[ U1781, U1783, none, U19f8 ]};
key <AB03> {[ U1785, U1787, none, U19f9 ]};
key <AB04> {[ U179c, U17fd, none, U19fa ]};
key <AB05> {[ U1794, U1796, U179e, U19fb ]};
key <AB06> {[ U1793, U178e, none, U19fc ]};
key <AB07> {[ U1798, U17c6, none, U19fd ]};
key <AB08> {[ U17fc, U17fb, comma, U19fe ]};
key <AB09> {[ U17d4, U17d5, period, U19ff ]};
key <AB10> {[ U17ca, question, slash, none ]};
key <SPCE> {[ U200b, space, nobreakspace, none ]};
// Third and fourth level with right Alt key (AltGr):
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "olpc" {
include "kh(basic)"
// contact: Walter@laptop.org
key <AE01> {[ U17e1, U200c, exclam, U17f1 ]};
key <AE03> {[ U17e3, U17d1, quotedbl, U17f3 ]};
key <AE05> {[ U17e5, EuroSign, percent, U17f5 ]};
key <AE12> {[ U17b2, U17ce, equal, none ]};
key <AC10> {[ U17be, U17c8, U17d6, U19f5 ]};
// Language key:
include "group(olpc)"
};

102
nixos/xkb/symbols/kpdl Normal file
View File

@@ -0,0 +1,102 @@
// The <KPDL> key is a mess.
// It was probably originally meant to be a decimal separator.
// Except since it was declared by USA people it didn't use the original
// SI separator "," but a "." (since then the USA managed to f-up the SI
// by making "." an accepted alternative, but standards still use "," as
// default)
// As a result users of SI-abiding countries expect either a "." or a ","
// or a "decimal_separator" which may or may not be translated in one of the
// above depending on applications.
// It's not possible to define a default per-country since user expectations
// depend on the conflicting choices of their most-used applications,
// operating system, etc. Therefore it needs to be a configuration setting
// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
// Legacy <KPDL> #1
// This assumes KP_Decimal will be translated in a dot
partial keypad_keys
xkb_symbols "dot" {
key.type[Group1]="KEYPAD" ;
key <KPDL> { [ KP_Delete, KP_Decimal ] }; // <delete> <separator>
};
// Legacy <KPDL> #2
// This assumes KP_Separator will be translated in a comma
partial keypad_keys
xkb_symbols "comma" {
key.type[Group1]="KEYPAD" ;
key <KPDL> { [ KP_Delete, KP_Separator ] }; // <delete> <separator>
};
// Period <KPDL>, usual keyboard serigraphy in most countries
partial keypad_keys
xkb_symbols "dotoss" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
key <KPDL> { [ KP_Delete, period, comma, 0x100202F ] }; // <delete> . , ⍽ (narrow no-break space)
};
// Period <KPDL>, usual keyboard serigraphy in most countries, latin-9 restriction
partial keypad_keys
xkb_symbols "dotoss_latin9" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
key <KPDL> { [ KP_Delete, period, comma, nobreakspace ] }; // <delete> . , ⍽ (no-break space)
};
// Comma <KPDL>, what most non anglo-saxon people consider the real separator
partial keypad_keys
xkb_symbols "commaoss" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
key <KPDL> { [ KP_Delete, comma, period, 0x100202F ] }; // <delete> , . ⍽ (narrow no-break space)
};
// Momayyez <KPDL>: Bahrain, Iran, Iraq, Kuwait, Oman, Qatar, Saudi Arabia, Syria, UAE
partial keypad_keys
xkb_symbols "momayyezoss" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
key <KPDL> { [ KP_Delete, 0x100066B, comma, 0x100202F ] }; // <delete> ? , ⍽ (narrow no-break space)
};
// Abstracted <KPDL>, pray everything will work out (it usually does not)
partial keypad_keys
xkb_symbols "kposs" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
key <KPDL> { [ KP_Delete, KP_Decimal, KP_Separator, 0x100202F ] }; // <delete> ? ? ⍽ (narrow no-break space)
};
// Spreadsheets may be configured to use the dot as decimal
// punctuation, comma as a thousands separator and then semi-colon as
// the list separator. Of these, dot and semi-colon is most important
// when entering data by the keyboard; the comma can then be inferred
// and added to the presentation afterwards. Using semi-colon as a
// general separator may in fact be preferred to avoid ambiguities
// in data files. Most times a decimal separator is hard-coded, it
// seems to be period, probably since this is the syntax used in
// (most) programming languages.
partial keypad_keys
xkb_symbols "semi" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
key <KPDL> { [ NoSymbol, NoSymbol, semicolon ] };
};

61
nixos/xkb/symbols/kr Normal file
View File

@@ -0,0 +1,61 @@
// Keyboard layouts for Korea.
default alphanumeric_keys
xkb_symbols "kr106" {
include "us"
name[Group1]= "Korean";
include "kr(hw_keys)"
};
alphanumeric_keys
xkb_symbols "kr104" {
include "us"
name[Group1]= "Korean (101/104-key compatible)";
include "kr(ralt_hangul)"
include "kr(rctrl_hanja)"
};
partial function_keys
xkb_symbols "hw_keys" {
key <HNGL> { [ Hangul ] };
key <HJCV> { [ Hangul_Hanja ] };
};
partial function_keys
xkb_symbols "ralt_hangul" {
replace key <RALT> {
type[Group1] = "ONE_LEVEL",
symbols[Group1]= [ Hangul ]
};
};
partial function_keys
xkb_symbols "rctrl_hangul" {
replace key <RCTL> {
type[Group1] = "ONE_LEVEL",
symbols[Group1]= [ Hangul ]
};
};
partial function_keys
xkb_symbols "ralt_hanja" {
replace key <RALT> {
type[Group1] = "ONE_LEVEL",
symbols[Group1]= [ Hangul_Hanja ]
};
};
partial function_keys
xkb_symbols "rctrl_hanja" {
replace key <RCTL> {
type[Group1] = "ONE_LEVEL",
symbols[Group1]= [ Hangul_Hanja ]
};
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/kr(sun_type6)"
};

305
nixos/xkb/symbols/kz Normal file
View File

@@ -0,0 +1,305 @@
// Keyboard layouts for Kazachstan.
// Based on http://www.sci.kz/~sairan/keyboard/kzkbd.html
// Baurzhan Ismagulov <ibr@radix50.net>
// TODO:
// 1. AltGr with TLDE and LSGT.
// 2. Dead key for ruskaz and kazrus.
// 3. Ctrl + <key>.
// 4. Alt-Tab.
// RST KazSSR 903-90
// levels 3 and 4 are non-standard extensions
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1] = "Kazakh";
key.type[group1] = "FOUR_LEVEL";
key <TLDE> { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] };
key <AE01> { [ quotedbl, exclam ] };
key <AE06> { [ comma, semicolon ] };
key <AE07> { [ period, colon ] };
key <BKSL> { [ backslash, slash ] };
key <AB10> { [ numerosign, question ] };
key <LSGT> { [ less, greater, bar, brokenbar ] };
key.type[group1] = "ALPHABETIC";
key <AE02> { [ Cyrillic_schwa, Cyrillic_SCHWA ] };
key <AE03> { [ Ukrainian_i, Ukrainian_I ] };
key <AE04> { [ Cyrillic_en_descender, Cyrillic_EN_descender ] };
key <AE05> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar ] };
key <AE08> { [ Cyrillic_u_straight, Cyrillic_U_straight ] };
key <AE09> { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] };
key <AE10> { [ Cyrillic_ka_descender, Cyrillic_KA_descender ] };
key <AE11> { [ Cyrillic_o_bar, Cyrillic_O_bar ] };
key <AE12> { [ Cyrillic_shha, Cyrillic_SHHA ] };
key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] };
key <AD03> { [ Cyrillic_u, Cyrillic_U ] };
key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] };
key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] };
key <AD06> { [ Cyrillic_en, Cyrillic_EN ] };
key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] };
key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] };
key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] };
key <AC04> { [ Cyrillic_a, Cyrillic_A ] };
key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
key <AC07> { [ Cyrillic_o, Cyrillic_O ] };
key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
key <AC11> { [ Cyrillic_e, Cyrillic_E ] };
key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] };
key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
key <AB05> { [ Cyrillic_i, Cyrillic_I ] };
key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
};
// Kikkarin KZ1
partial alphanumeric_keys
xkb_symbols "ruskaz" {
name[Group1] = "Russian (Kazakhstan, with Kazakh)";
key.type[group1] = "FOUR_LEVEL";
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, quotedbl, at ] };
key <AE03> { [ 3, numerosign, numbersign ] };
key <AE04> { [ 4, semicolon, dollar ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, colon, asciicircum ] };
key <AE07> { [ 7, question, ampersand ] };
key <AE08> { [ 8, asterisk ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <BKSL> { [ backslash, slash, bar ] };
key <AB10> { [ period, comma, slash, question ] };
key <LSGT> { [ less, greater, bar, brokenbar ] };
key.type[group1] = "FOUR_LEVEL_ALPHABETIC";
key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] };
key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] };
key <AD03> { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] };
key <AD04> { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] };
key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] };
key <AD06> { [ Cyrillic_en, Cyrillic_EN, Cyrillic_en_descender, Cyrillic_EN_descender ] };
key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, Cyrillic_ghe_bar, Cyrillic_GHE_bar ] };
key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
key <AD11> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] };
key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] };
key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] };
key <AC04> { [ Cyrillic_a, Cyrillic_A, Cyrillic_schwa, Cyrillic_SCHWA ] };
key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
key <AC07> { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] };
key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
key <AC11> { [ Cyrillic_e, Cyrillic_E ] };
key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] };
key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
key <AB05> { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] };
key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
};
// Kikkarin KZ2
partial alphanumeric_keys
xkb_symbols "kazrus" {
name[Group1] = "Kazakh (with Russian)";
key.type[group1] = "FOUR_LEVEL";
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, quotedbl, at ] };
key <AE03> { [ 3, numerosign, numbersign ] };
key <AE04> { [ 4, semicolon, dollar ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, colon, asciicircum ] };
key <AE07> { [ 7, question, ampersand ] };
key <AE08> { [ 8, asterisk ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <BKSL> { [ backslash, slash, bar ] };
key <AB10> { [ period, comma, slash, question ] };
key <LSGT> { [ less, greater, bar, brokenbar ] };
key.type[group1] = "FOUR_LEVEL_ALPHABETIC";
key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
key <AD02> { [ Cyrillic_en_descender, Cyrillic_EN_descender, Cyrillic_tse, Cyrillic_TSE ] };
key <AD03> { [ Cyrillic_u, Cyrillic_U ] };
key <AD04> { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] };
key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] };
key <AD06> { [ Cyrillic_en, Cyrillic_EN ] };
key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
key <AD09> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, Cyrillic_shcha, Cyrillic_SHCHA ] };
key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
key <AD11> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] };
key <AD12> { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
key <AC01> { [ Cyrillic_o_bar, Cyrillic_O_bar, Cyrillic_ef, Cyrillic_EF ] };
key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
key <AC03> { [ Cyrillic_ka_descender, Cyrillic_KA_descender, Cyrillic_ve, Cyrillic_VE ] };
key <AC04> { [ Cyrillic_a, Cyrillic_A ] };
key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
key <AC07> { [ Cyrillic_o, Cyrillic_O ] };
key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
key <AC11> { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_e, Cyrillic_E ] };
key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
key <AB02> { [ Ukrainian_i, Ukrainian_I, Cyrillic_che, Cyrillic_CHE ] };
key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
key <AB05> { [ Cyrillic_i, Cyrillic_I ] };
key <AB07> { [ Cyrillic_u_straight, Cyrillic_U_straight, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
};
partial alphanumeric_keys
xkb_symbols "olpc" {
// Contact: Walter Bender <walter@laptop.org>
// We moved the Cyrillic IO off of the Tilde Key as an Alt-GR character
// and moved it onto the Backslash key, making Backslash and Bar available
// through the Latin side of the keyboard.
include "kz(basic)"
key <TLDE> { [ parenleft, parenright ] };
key <BKSL> { [ Cyrillic_io, Cyrillic_IO ] };
include "group(olpc)"
};
partial alphanumeric_keys
xkb_symbols "ext" {
// Levels 3 and 4 represent main keyboard's numeric part of US layout,
// parens are duplicated for consistency.
include "kz(basic)"
name[Group1] = "Kazakh (extended)";
key.type[group1] = "FOUR_LEVEL_ALPHABETIC";
key <TLDE> { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] };
key <AE01> { [ quotedbl, exclam, 1, exclam ] };
key <AE02> { [ Cyrillic_schwa, Cyrillic_SCHWA, 2, at ] };
key <AE03> { [ Ukrainian_i, Ukrainian_I, 3, numbersign ] };
key <AE04> { [ Cyrillic_en_descender, Cyrillic_EN_descender, 4, dollar ] };
key <AE05> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, 5, percent ] };
key <AE06> { [ comma, semicolon, 6, asciicircum ] };
key <AE07> { [ period, colon, 7, ampersand ] };
key <AE08> { [ Cyrillic_u_straight, Cyrillic_U_straight, 8, asterisk ] };
key <AE09> { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, 9, parenleft ] };
key <AE10> { [ Cyrillic_ka_descender, Cyrillic_KA_descender, 0, parenright ] };
key <AE11> { [ Cyrillic_o_bar, Cyrillic_O_bar, minus, underscore ] };
key <AE12> { [ Cyrillic_shha, Cyrillic_SHHA, equal, plus ] };
key <BKSL> { [ backslash, slash, bar, brokenbar ] };
key <AD11> { [ Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft ] };
key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright, braceright ] };
key <AC11> { [ Cyrillic_e, Cyrillic_E, apostrophe ] };
key <AB08> { [ Cyrillic_be, Cyrillic_BE, less ] };
key <AB09> { [ Cyrillic_yu, Cyrillic_YU, greater ] };
include "level3(ralt_switch)"
};
// Kazakh Latin (based on Kazakh alphabet version of 2018)
// levels 3 and 4 are non-standard extensions
partial alphanumeric_keys
xkb_symbols "latin" {
// Contact: Galym Kerimbekov <housegregory299@gmail.com>
name[Group1] = "Kazakh (Latin)";
key.type[group1] = "FOUR_LEVEL";
key <TLDE> { [ parenleft, parenright ] };
key <AE01> { [ quotedbl, exclam ] };
key <AE06> { [ comma, semicolon ] };
key <AE07> { [ period, colon ] };
key <BKSL> { [ backslash, slash ] };
key <AB10> { [ numerosign, question ] };
key <LSGT> { [ less, greater, bar, brokenbar ] };
key.type[group1] = "ALPHABETIC";
key <AE02> { [ aacute, Aacute ] };
key <AE03> { [ iacute, Iacute ] };
key <AE04> { [ nacute, Nacute ] };
key <AE05> { [ U01F5, U01F4 ] }; // gG with acute
key <AE08> { [ uacute, Uacute ] };
key <AE09> { [ yacute, Yacute ] };
key <AE10> { [ oacute, Oacute ] };
key <AE11> { [ sacute, Sacute ] };
key <AE12> { [ cacute, Cacute ] };
key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
key <AD03> { [ e, E ] };
key <AD04> { [ r, R ] };
key <AD05> { [ t, T ] };
key <AD06> { [ y, Y ] };
key <AD07> { [ u, U ] };
key <AD08> { [ i, I ] };
key <AD09> { [ o, O ] };
key <AD10> { [ p, P ] };
key <AC01> { [ a, A ] };
key <AC02> { [ s, S ] };
key <AC03> { [ d, D ] };
key <AC04> { [ f, F ] };
key <AC05> { [ g, G ] };
key <AC06> { [ h, H ] };
key <AC07> { [ j, J ] };
key <AC08> { [ k, K ] };
key <AC09> { [ l, L ] };
key <AB01> { [ z, Z ] };
key <AB02> { [ x, X ] };
key <AB03> { [ c, C ] };
key <AB04> { [ v, M ] };
key <AB05> { [ b, B ] };
key <AB06> { [ n, N ] };
key <AB07> { [ m, M ] };
};

130
nixos/xkb/symbols/la Normal file
View File

@@ -0,0 +1,130 @@
// Keyboard layouts for Laos.
// This layout is (kind of) widely used in Laos.
// Original author: Anousak Souphavanh <anousak@muanglao.com>
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Lao";
key <TLDE> {[ U200d ]}; // ZWJ
key <AE01> {[ U0ea2, U0ed1 ]};
key <AE01> {[ U0ea2, U0ed1 ]};
key <AE02> {[ U0e9f, U0ed2 ]};
key <AE03> {[ U0ec2, U0ed3 ]};
key <AE04> {[ U0e96, U0ed4 ]};
key <AE05> {[ U0eb8, U0ecc ]};
key <AE06> {[ U0eb9, U0ebc ]};
key <AE07> {[ U0e84, U0ed5 ]};
key <AE08> {[ U0e95, U0ed6 ]};
key <AE09> {[ U0e88, U0ed7 ]};
key <AE10> {[ U0e82, U0ed8 ]};
key <AE11> {[ U0e8a, U0ed9 ]};
key <AE12> {[ U0ecd ]};
key <AD01> {[ U0ebb ]};
key <AD02> {[ U0ec4, U0ed0 ]};
key <AD03> {[ U0eb3 ]};
key <AD04> {[ U0e9e, underscore ]};
key <AD05> {[ U0eb0, plus ]};
key <AD06> {[ U0eb4 ]};
key <AD07> {[ U0eb5 ]};
key <AD08> {[ U0ea3, U0eae ]};
key <AD09> {[ U0e99 ]};
key <AD10> {[ U0e8d, U0ebd ]};
key <AD11> {[ U0e9a, minus ]};
key <AD12> {[ U0ea5, braceright ]};
key <BKSL> {[ U0edc, U0edd ]};
key <AC01> {[ U0eb1 ]};
key <AC02> {[ U0eab, semicolon ]};
key <AC03> {[ U0e81, period ]};
key <AC04> {[ U0e94, comma ]};
key <AC05> {[ U0ec0, colon ]};
key <AC06> {[ U0ec9, U0eca ]};
key <AC07> {[ U0ec8, U0ecb ]};
key <AC08> {[ U0eb2, exclam ]};
key <AC09> {[ U0eaa, question ]};
key <AC10> {[ U0ea7, percent ]};
key <AC11> {[ U0e87, equal ]};
key <AB01> {[ U0e9c, U20ad ]};
key <AB02> {[ U0e9b, parenleft ]};
key <AB03> {[ U0ec1, U0eaf ]};
key <AB04> {[ U0ead ]};
key <AB05> {[ U0eb6 ]};
key <AB06> {[ U0eb7 ]};
key <AB07> {[ U0e97, U0ec6 ]};
key <AB08> {[ U0ea1, grave ]};
key <AB09> {[ U0ec3, dollar ]};
key <AB10> {[ U0e9d, parenright ]};
};
partial
xkb_symbols "stea" {
// This keymap describes the standard Lao keyboard proposed
// by the Science Technology and Environment Agency of Laos.
// Caveat: assigning multiple codepoints to a single key
// does not work in XKB. Therefore the combined codepoint
// assignments have been omitted.
name[Group1]= "Lao (STEA)";
key <TLDE> {[quotedbl, apostrophe ]};
key <AE01> {[ U0ea2, 1, U0ed1 ]};
key <AE02> {[ U0e9f, 2, U0ed2 ]};
key <AE03> {[ U0ec2, 3, U0ed3 ]};
key <AE04> {[ U0e96, 4, U0ed4 ]};
key <AE05> {[ U0eb8, U0ecc, U0ed5 ]};
key <AE06> {[ U0eb9, U0ebc, U0ed6 ]};
key <AE07> {[ U0e84, 5, U0ed7 ]};
key <AE08> {[ U0e95, 6, U0ed8 ]};
key <AE09> {[ U0e88, 7, U0ed9 ]};
key <AE10> {[ U0e82, 8, U0ed0 ]};
key <AE11> {[ U0e8a, 9 ]};
key <AE12> {[ U0ecd ]};
key <AD01> {[ U0ebb ]};
key <AD02> {[ U0ec4, 0 ]};
key <AD03> {[ U0eb3, asterisk ]};
key <AD04> {[ U0e9e, underscore ]};
key <AD05> {[ U0eb0, plus ]};
key <AD06> {[ U0eb4 ]};
key <AD07> {[ U0eb5 ]};
key <AD08> {[ U0eae, U0ea3 ]};
key <AD09> {[ U0e99, U0edc ]};
key <AD10> {[ U0e8d, U0ebd ]};
key <AD11> {[ U0e9a, minus ]};
key <AD12> {[ U0ea5 ]};
key <BKSL> {[ slash, backslash ]};
key <AC01> {[ U0eb1 ]};
key <AC02> {[ U0eab, semicolon ]};
key <AC03> {[ U0e81, period ]};
key <AC04> {[ U0e94, comma ]};
key <AC05> {[ U0ec0, colon ]};
key <AC06> {[ U0ec9, U0eca ]};
key <AC07> {[ U0ec8, U0ecb ]};
key <AC08> {[ U0eb2, exclam ]};
key <AC09> {[ U0eaa, question ]};
key <AC10> {[ U0ea7, percent ]};
key <AC11> {[ U0e87, equal ]};
key <AB01> {[ U0e9c, U20ad ]};
key <AB02> {[ U0e9b, parenleft ]};
key <AB03> {[ U0ec1, U0eaf ]};
key <AB04> {[ U0ead, x ]};
key <AB05> {[ U0eb6 ]};
key <AB06> {[ U0eb7 ]};
key <AB07> {[ U0e97, U0ec6 ]};
key <AB08> {[ U0ea1, U0edd ]};
key <AB09> {[ U0ec3, dollar ]};
key <AB10> {[ U0e9d, parenright ]};
key <SPCE> {[ space, nobreakspace, nobreakspace ]};
key <KPDL> {[ comma, period ]};
include "level3(ralt_switch)"
};

176
nixos/xkb/symbols/latam Normal file
View File

@@ -0,0 +1,176 @@
// Modified for a real Latin American keyboard by Fabian Mandelbaum.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type4)"
name[Group1]="Spanish (Latin American)";
key <TLDE> {[ bar, degree, notsign, notsign ]};
key <AE01> {[ 1, exclam, bar, exclamdown ]};
key <AE03> {[ 3, numbersign, periodcentered, sterling ]};
key <AE04> {[ 4, dollar, asciitilde, dollar ]};
key <AE06> {[ 6, ampersand, notsign, fiveeighths ]};
key <AE11> {[ apostrophe, question, backslash, questiondown ]};
key <AE12> {[questiondown, exclamdown, dead_cedilla, dead_ogonek ]};
key <AD11> {[ dead_acute,dead_diaeresis, dead_diaeresis, dead_abovering ]};
key <AD12> {[ plus, asterisk, asciitilde, dead_macron ]};
key <AC10> {[ ntilde, Ntilde, asciitilde, dead_doubleacute ]};
key <AC11> {[ braceleft, bracketleft, dead_circumflex, braceleft ]};
key <BKSL> {[ braceright, bracketright, dead_grave, braceright ]};
key <LSGT> {[ less, greater, backslash, bar ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "latam(basic)"
name[Group1]="Spanish (Latin American, no dead keys)";
key <AE12> {[questiondown, exclamdown, cedilla, ogonek ]};
key <AD11> {[ grave, asciicircum, bracketleft, degree ]};
key <AD12> {[ plus, asterisk, bracketright, macron ]};
key <AC07> {[ j, J, ezh, EZH ]};
key <AC10> {[ ntilde, Ntilde, asciitilde, doubleacute ]};
key <AC11> {[ acute, diaeresis, braceleft, braceleft ]};
key <BKSL> {[ ccedilla, Ccedilla, braceright, breve ]};
key <AB10> {[ minus, underscore, ellipsis, abovedot ]};
};
partial alphanumeric_keys
xkb_symbols "deadtilde" {
include "latam(basic)"
name[Group1]="Spanish (Latin American, dead tilde)";
key <AD12> {[ plus, asterisk, dead_tilde, dead_macron ]};
};
// Latin American Spanish Dvorak mapping (note R-H exchange).
partial alphanumeric_keys
xkb_symbols "dvorak" {
name[Group1]="Spanish (Latin American, Dvorak)";
key <TLDE> {[ bar, degree, notsign, notsign ]};
key <AE01> {[ 1, exclam, bar, exclamdown ]};
key <AE02> {[ 2, quotedbl, at, oneeighth ]};
key <AE03> {[ 3, numbersign, periodcentered, sterling ]};
key <AE04> {[ 4, dollar, asciitilde, dollar ]};
key <AE05> {[ 5, percent, onehalf, threeeighths ]};
key <AE06> {[ 6, ampersand, notsign, fiveeighths ]};
key <AE07> {[ 7, slash, braceleft, seveneighths ]};
key <AE08> {[ 8, parenleft, bracketleft, trademark ]};
key <AE09> {[ 9, parenright, bracketright, plusminus ]};
key <AE10> {[ 0, equal, braceright, degree ]};
key <AE11> {[ apostrophe, question, backslash, questiondown ]};
key <AE12> {[ questiondown, exclamdown, dead_cedilla, dead_ogonek ]};
key <AD01> {[ period, colon, at ]};
key <AD02> {[ comma, semicolon ]};
key <AD03> {[ ntilde, Ntilde, lstroke, Lstroke ]};
key <AD04> {[ p, P, paragraph ]};
key <AD05> {[ y, Y, yen ]};
key <AD06> {[ f, F, tslash, Tslash ]};
key <AD07> {[ g, G, dstroke, Dstroke ]};
key <AD08> {[ c, C, cent, copyright ]};
key <AD09> {[ h, H, hstroke, Hstroke ]};
key <AD10> {[ l, L, sterling ]};
key <AD11> {[ dead_acute,dead_diaeresis,dead_diaeresis,dead_abovering]};
key <AD12> {[ plus, asterisk, asciitilde, dead_macron ]};
key <AC01> {[ a, A, ae, AE ]};
key <AC02> {[ o, O, oslash, Oslash ]};
key <AC03> {[ e, E, EuroSign ]};
key <AC04> {[ u, U, aring, Aring ]};
key <AC05> {[ i, I, oe, OE ]};
key <AC06> {[ d, D, eth, ETH ]};
key <AC07> {[ r, R, registered, trademark ]};
key <AC08> {[ t, T, thorn, THORN ]};
key <AC09> {[ n, N, eng, ENG ]};
key <AC10> {[ s, S, ssharp, section ]};
key <AC11> {[ braceleft, bracketleft, dead_circumflex, braceleft ]};
key <BKSL> {[ braceright, bracketright, dead_grave, braceright ]};
key <LSGT> {[ less, greater, guillemotleft,guillemotright]};
key <AB01> {[ minus, underscore, hyphen, macron ]};
key <AB02> {[ q, Q, currency ]};
key <AB03> {[ j, J ]};
key <AB04> {[ k, K, kra ]};
key <AB05> {[ x, X, multiply, division ]};
key <AB06> {[ b, B ]};
key <AB07> {[ m, M, mu ]};
key <AB08> {[ w, W ]};
key <AB09> {[ v, V ]};
key <AB10> {[ z, Z ]};
include "level3(ralt_switch)"
};
// Latin American Spanish Colemak mapping (inspired by DreymaR)
partial alphanumeric_keys
xkb_symbols "colemak" {
name[Group1]="Spanish (Latin American, Colemak)";
key <TLDE> {[ bar, degree, notsign, notsign ]};
key <AE01> {[ 1, exclam, bar, exclamdown ]};
key <AE02> {[ 2, quotedbl, at, oneeighth ]};
key <AE03> {[ 3, numbersign, periodcentered, sterling ]};
key <AE04> {[ 4, dollar, asciitilde, dollar ]};
key <AE05> {[ 5, percent, onehalf, threeeighths ]};
key <AE06> {[ 6, ampersand, notsign, fiveeighths ]};
key <AE07> {[ 7, slash, braceleft, seveneighths ]};
key <AE08> {[ 8, parenleft, bracketleft, trademark ]};
key <AE09> {[ 9, parenright, bracketright, plusminus ]};
key <AE10> {[ 0, equal, braceright, degree ]};
key <AE11> {[ apostrophe, question, backslash, questiondown ]};
key <AE12> {[ questiondown, exclamdown, dead_cedilla, dead_ogonek ]};
key <AD01> {[ q, Q, U201A, U201E ]};
key <AD02> {[ w, W, U2018, U201C ]};
key <AD03> {[ f, F, U2019, U201D ]};
key <AD04> {[ p, P, U2293, paragraph ]};
key <AD05> {[ g, G, eng, ENG ]};
key <AD06> {[ j, J, U222B, U03A3 ]};
key <AD07> {[ l, L, lstroke, Lstroke ]};
key <AD08> {[ u, U, U2039, guillemotleft ]};
key <AD09> {[ y, Y, U203A, guillemotright ]};
key <AD10> {[ ntilde, Ntilde, asciitilde, U02EE ]};
key <AD11> {[ dead_acute,dead_diaeresis,dead_diaeresis,dead_abovering]};
key <AD12> {[ plus, asterisk, asciitilde, dead_macron ]};
key <AC01> {[ a, A, ae, AE ]};
key <AC02> {[ r, R, registered, trademark ]};
key <AC03> {[ s, S, ssharp, section ]};
key <AC04> {[ t, T, thorn, THORN ]};
key <AC05> {[ d, D, eth, ETH ]};
key <AC06> {[ h, H, hstroke, Hstroke ]};
key <AC07> {[ n, N, hyphen, U2190 ]};
key <AC08> {[ e, E, EuroSign, U2191 ]};
key <AC09> {[ i, I, U2015, U2192 ]};
key <AC10> {[ o, O, U00BA, U00AA ]};
key <AC11> {[ braceleft, bracketleft, dead_circumflex, braceleft ]};
key <BKSL> {[ braceright, bracketright, dead_grave, braceright ]};
key <LSGT> {[ less, greater, bar, U00A6 ]};
key <AB01> {[ z, Z, ezh, EZH ]};
key <AB02> {[ x, X, U2020, U2021 ]};
key <AB03> {[ c, C, cent, copyright ]};
key <AB04> {[ v, V, division, U03B3 ]};
key <AB05> {[ b, B, U2022, U03B2 ]};
key <AB06> {[ k, K, U00E7, U00C7 ]};
key <AB07> {[ m, M, multiply, U2193 ]};
key <AB08> {[ comma, semicolon, hyphen, multiply ]};
key <AB09> {[ period, colon, U0323, division ]};
key <AB10> {[ minus, underscore ]};
include "level3(ralt_switch)"
};

255
nixos/xkb/symbols/latin Normal file
View File

@@ -0,0 +1,255 @@
// Common Latin alphabet layout
default partial
xkb_symbols "basic" {
key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
key <AE02> { [ 2, at, twosuperior, oneeighth ] };
key <AE03> { [ 3, numbersign, threesuperior, sterling ] };
key <AE04> { [ 4, dollar, onequarter, dollar ] };
key <AE05> { [ 5, percent, onehalf, threeeighths ] };
key <AE06> { [ 6, asciicircum, threequarters, fiveeighths ] };
key <AE07> { [ 7, ampersand, braceleft, seveneighths ] };
key <AE08> { [ 8, asterisk, bracketleft, trademark ] };
key <AE09> { [ 9, parenleft, bracketright, plusminus ] };
key <AE10> { [ 0, parenright, braceright, degree ] };
key <AE11> { [ minus, underscore, backslash, questiondown ] };
key <AE12> { [ equal, plus, dead_cedilla, dead_ogonek ] };
key <AD01> { [ q, Q, at, Greek_OMEGA ] };
key <AD02> { [ w, W, U017F, section ] };
key <AD03> { [ e, E, e, E ] };
key <AD04> { [ r, R, paragraph, registered ] };
key <AD05> { [ t, T, tslash, Tslash ] };
key <AD06> { [ y, Y, leftarrow, yen ] };
key <AD07> { [ u, U, downarrow, uparrow ] };
key <AD08> { [ i, I, rightarrow, idotless ] };
key <AD09> { [ o, O, oslash, Oslash ] };
key <AD10> { [ p, P, thorn, THORN ] };
key <AD11> { [bracketleft, braceleft, dead_diaeresis, dead_abovering ] };
key <AD12> { [bracketright, braceright, dead_tilde, dead_macron ] };
key <AC01> { [ a, A, ae, AE ] };
key <AC02> { [ s, S, ssharp, U1E9E ] };
key <AC03> { [ d, D, eth, ETH ] };
key <AC04> { [ f, F, dstroke, ordfeminine ] };
key <AC05> { [ g, G, eng, ENG ] };
key <AC06> { [ h, H, hstroke, Hstroke ] };
key <AC07> { [ j, J, dead_hook, dead_horn ] };
key <AC08> { [ k, K, kra, ampersand ] };
key <AC09> { [ l, L, lstroke, Lstroke ] };
key <AC10> { [ semicolon, colon, dead_acute, dead_doubleacute ] };
key <AC11> { [apostrophe, quotedbl, dead_circumflex, dead_caron ] };
key <TLDE> { [ grave, asciitilde, notsign, notsign ] };
key <BKSL> { [ backslash, bar, dead_grave, dead_breve ] };
key <AB01> { [ z, Z, guillemotleft, less ] };
key <AB02> { [ x, X, guillemotright, greater ] };
key <AB03> { [ c, C, cent, copyright ] };
key <AB04> { [ v, V, doublelowquotemark, singlelowquotemark ] };
key <AB05> { [ b, B, leftdoublequotemark, leftsinglequotemark ] };
key <AB06> { [ n, N, rightdoublequotemark, rightsinglequotemark ] };
key <AB07> { [ m, M, mu, masculine ] };
key <AB08> { [ comma, less, U2022, multiply ] }; // bullet
key <AB09> { [ period, greater, periodcentered, division ] };
key <AB10> { [ slash, question, dead_belowdot, dead_abovedot ] };
};
// Northern Europe ( Danish, Finnish, Norwegian, Swedish) common layout
partial
xkb_symbols "type2" {
include "latin"
key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
key <AE02> { [ 2, quotedbl, at, twosuperior ] };
key <AE03> { [ 3, numbersign, sterling, threesuperior] };
key <AE04> { [ 4, currency, dollar, onequarter ] };
key <AE05> { [ 5, percent, onehalf, cent ] };
key <AE06> { [ 6, ampersand, yen, fiveeighths ] };
key <AE07> { [ 7, slash, braceleft, division ] };
key <AE08> { [ 8, parenleft, bracketleft, guillemotleft] };
key <AE09> { [ 9, parenright, bracketright, guillemotright] };
key <AE10> { [ 0, equal, braceright, degree ] };
key <AD03> { [ e, E, EuroSign, cent ] };
key <AD04> { [ r, R, registered, registered ] };
key <AD05> { [ t, T, thorn, THORN ] };
key <AD09> { [ o, O, oe, OE ] };
key <AD11> { [ aring, Aring, dead_diaeresis, dead_abovering ] };
key <AD12> { [dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ] };
key <AC01> { [ a, A, ordfeminine, masculine ] };
key <AB03> { [ c, C, copyright, copyright ] };
key <AB08> { [ comma, semicolon, dead_cedilla, dead_ogonek ] };
key <AB09> { [ period, colon, periodcentered, dead_abovedot ] };
key <AB10> { [ minus, underscore, dead_belowdot, dead_abovedot ] };
};
// Slavic Latin ( Albanian, Croatian, Polish, Slovene, Yugoslav)
// common layout
partial
xkb_symbols "type3" {
include "latin"
key <AD01> { [ q, Q, backslash, Greek_OMEGA ] };
key <AD02> { [ w, W, bar, section ] };
key <AD06> { [ z, Z, leftarrow, yen ] };
key <AC04> { [ f, F, bracketleft, ordfeminine ] };
key <AC05> { [ g, G, bracketright, ENG ] };
key <AC08> { [ k, K, lstroke, ampersand ] };
key <AB01> { [ y, Y, guillemotleft, less ] };
key <AB04> { [ v, V, at, grave ] };
key <AB05> { [ b, B, braceleft, apostrophe ] };
key <AB06> { [ n, N, braceright, acute ] };
key <AB07> { [ m, M, section, masculine ] };
key <AB08> { [ comma, semicolon, less, multiply ] };
key <AB09> { [ period, colon, greater, division ] };
};
// Another common Latin layout
// (German, Estonian, Spanish, Icelandic, Italian, Latin American, Portuguese)
partial
xkb_symbols "type4" {
include "latin"
key <AE02> { [ 2, quotedbl, at, oneeighth ] };
key <AE06> { [ 6, ampersand, notsign, fiveeighths ] };
key <AE07> { [ 7, slash, braceleft, seveneighths ] };
key <AE08> { [ 8, parenleft, bracketleft, trademark ] };
key <AE09> { [ 9, parenright, bracketright, plusminus ] };
key <AE10> { [ 0, equal, braceright, degree ] };
key <AD03> { [ e, E, EuroSign, cent ] };
key <AB08> { [ comma, semicolon, U2022, multiply ] }; // bullet
key <AB09> { [ period, colon, periodcentered, division ] };
key <AB10> { [ minus, underscore, dead_belowdot, dead_abovedot ] };
};
partial
xkb_symbols "nodeadkeys" {
key <AE12> { [ equal, plus, cedilla, ogonek ] };
key <AD11> { [bracketleft, braceleft, diaeresis, degree ] };
key <AD12> { [bracketright, braceright, asciitilde, macron ] };
key <AC07> { [ j, J, ezh, EZH ] };
key <AC10> { [ semicolon, colon, acute, doubleacute ] };
key <AC11> { [apostrophe, quotedbl, asciicircum, caron ] };
key <BKSL> { [ backslash, bar, grave, breve ] };
key <AB10> { [ slash, question, ellipsis, abovedot ] };
};
partial
xkb_symbols "type2_nodeadkeys" {
include "latin(nodeadkeys)"
key <AD11> { [ aring, Aring, diaeresis, degree ] };
key <AD12> { [ diaeresis, asciicircum, asciitilde, caron ] };
key <AB08> { [ comma, semicolon, cedilla, ogonek ] };
key <AB09> { [ period, colon, periodcentered, abovedot ] };
key <AB10> { [ minus, underscore, ellipsis, abovedot ] };
};
partial
xkb_symbols "type3_nodeadkeys" {
include "latin(nodeadkeys)"
};
partial
xkb_symbols "type4_nodeadkeys" {
include "latin(nodeadkeys)"
key <AB10> { [ minus, underscore, ellipsis, abovedot ] };
};
// Added 2008.03.05 by Marcin Woliński
// See http://marcinwolinski.pl/keyboard/ for a description.
// Used by pl(intl)
//
// ┌─────┐
// │ 2 4 │ 2 = Shift, 4 = Level3 + Shift
// │ 1 3 │ 1 = Normal, 3 = Level3
// └─────┘
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ~ ~ │ ! ' │ @ " │ # ˝ │ $ ¸ │ % ˇ │ ^ ^ │ & ˘ │ * ̇ │ ( ̣ │ ) ° │ _ ¯ │ + ˛ ┃ ⌫ Back- ┃
// │ ` ` │ 1 ¡ │ 2 © │ 3 • │ 4 § │ 5 € │ 6 ¢ │ 7 │ 8 × │ 9 ÷ │ 0 ° │ - │ = — ┃ space ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { « │ } » ┃ Enter ┃
// ┃Tab ↹ ┃ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] ┃ ⏎ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ A │ S │ D │ F │ G │ H │ J │ K │ L │ : “ │ " ” │ | ¶ ┃ ┃
// ┃Caps ⇬ ┃ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ \ ┃ ┃
// ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ │ Z │ X │ C │ V │ B │ N │ M │ < „ │ > · │ ? ¿ ┃ ┃
// ┃Shift ⇧ │ z │ x │ c │ v │ b │ n │ m │ , │ . … │ / ┃Shift ⇧ ┃
// ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃
// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Space ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
partial
xkb_symbols "intl" {
key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
key <AE01> { [ 1, exclam, exclamdown, dead_acute ] };
key <AE02> { [ 2, at, copyright, dead_diaeresis ] };
key <AE03> { [ 3, numbersign, U2022, dead_doubleacute ] }; // U+2022 is bullet (the name bullet does not work)
key <AE04> { [ 4, dollar, section, dead_cedilla ] };
key <AE05> { [ 5, percent, EuroSign, dead_caron ] };
key <AE06> { [ 6, asciicircum, cent, dead_circumflex ] };
key <AE07> { [ 7, ampersand, U2212, dead_breve ] }; // U+2212 is MINUS SIGN
key <AE08> { [ 8, asterisk, multiply, dead_abovedot ] };
key <AE09> { [ 9, parenleft, division, dead_belowdot ] };
key <AE10> { [ 0, parenright, degree, dead_abovering ] };
key <AE11> { [ minus, underscore, endash, dead_macron ] };
key <AE12> { [ equal, plus, emdash, dead_ogonek ] };
key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
key <AD03> { [ e, E ] };
key <AD04> { [ r, R ] };
key <AD05> { [ t, T ] };
key <AD06> { [ y, Y ] };
key <AD07> { [ u, U ] };
key <AD08> { [ i, I ] };
key <AD09> { [ o, O ] };
key <AD10> { [ p, P ] };
key <AD11> { [bracketleft, braceleft, U2039, guillemotleft ] };
key <AD12> { [bracketright, braceright, U203A, guillemotright ] };
key <AC01> { [ a, A ] };
key <AC02> { [ s, S ] };
key <AC03> { [ d, D ] };
key <AC04> { [ f, F ] };
key <AC05> { [ g, G ] };
key <AC06> { [ h, H ] };
key <AC07> { [ j, J ] };
key <AC08> { [ k, K ] };
key <AC09> { [ l, L ] };
key <AC10> { [ semicolon, colon, leftsinglequotemark, leftdoublequotemark ] };
key <AC11> { [apostrophe, quotedbl, rightsinglequotemark, rightdoublequotemark ] };
key <BKSL> { [ backslash, bar, NoSymbol, paragraph ] };
key <AB01> { [ z, Z ] };
key <AB02> { [ x, X ] };
key <AB03> { [ c, C ] };
key <AB04> { [ v, V ] };
key <AB05> { [ b, B ] };
key <AB06> { [ n, N ] };
key <AB07> { [ m, M ] };
key <AB08> { [ comma, less, singlelowquotemark, doublelowquotemark ] };
key <AB09> { [ period, greater, ellipsis, periodcentered ] };
key <AB10> { [ slash, question, U2044, questiondown ] }; // U+2044 is FRACTION SLASH
};

6
nixos/xkb/symbols/level2 Normal file
View File

@@ -0,0 +1,6 @@
// The Less/Greater key (while pressed) chooses the second level.
partial modifier_keys
xkb_symbols "lsgt_switch" {
key <LSGT> {[ Shift_L ], type[group1]="ONE_LEVEL" };
modifier_map Shift { <LSGT> };
};

132
nixos/xkb/symbols/level3 Normal file
View File

@@ -0,0 +1,132 @@
// These variants assign ISO_Level3_Shift to various keys
// so that levels 3 and 4 can be reached.
// The default behaviour:
// the right Alt key (AltGr) chooses the third symbol engraved on a key.
default partial modifier_keys
xkb_symbols "ralt_switch" {
key <RALT> {[ ISO_Level3_Shift ], type[group1]="ONE_LEVEL" };
};
// The right Alt key never chooses the third level.
// This option attempts to undo the effect of a layout's inclusion of
// 'ralt_switch'. You may want to also select another level3 option
// to map the level3 shift to some other key.
partial modifier_keys
xkb_symbols "ralt_alt" {
key <RALT> {[ Alt_R, Meta_R ], type[group1]="TWO_LEVEL" };
modifier_map Mod1 { <RALT> };
};
// The right Alt key (while pressed) chooses the third shift level,
// and Compose is mapped to its second level.
partial modifier_keys
xkb_symbols "ralt_switch_multikey" {
key <RALT> {[ ISO_Level3_Shift, Multi_key ], type[group1]="TWO_LEVEL" };
};
// Either Alt key (while pressed) chooses the third shift level.
// (To be used mostly to imitate Mac OS functionality.)
partial modifier_keys
xkb_symbols "alt_switch" {
include "level3(lalt_switch)"
include "level3(ralt_switch)"
};
// The left Alt key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "lalt_switch" {
key <LALT> {[ ISO_Level3_Shift ], type[group1]="ONE_LEVEL" };
};
// The right Ctrl key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "switch" {
key <RCTL> {[ ISO_Level3_Shift ], type[group1]="ONE_LEVEL" };
};
// The Menu key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "menu_switch" {
key <MENU> {[ ISO_Level3_Shift ], type[group1]="ONE_LEVEL" };
};
// Either Win key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "win_switch" {
include "level3(lwin_switch)"
include "level3(rwin_switch)"
};
// The left Win key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "lwin_switch" {
key <LWIN> {[ ISO_Level3_Shift ], type[group1]="ONE_LEVEL" };
};
// The right Win key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "rwin_switch" {
key <RWIN> {[ ISO_Level3_Shift ], type[group1]="ONE_LEVEL" };
};
// The Enter key on the kepypad (while pressed) chooses the third shift level.
// (This is especially useful for Mac laptops which miss the right Alt key.)
partial modifier_keys
xkb_symbols "enter_switch" {
key <KPEN> {[ ISO_Level3_Shift ], type[group1]="ONE_LEVEL" };
};
// The CapsLock key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "caps_switch" {
key <CAPS> {[ ISO_Level3_Shift ], type[group1]="ONE_LEVEL" };
};
// The Backslash key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "bksl_switch" {
key <BKSL> {[ ISO_Level3_Shift ], type[group1]="ONE_LEVEL" };
};
// The Less/Greater key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "lsgt_switch" {
key <LSGT> {[ ISO_Level3_Shift ], type[group1]="ONE_LEVEL" };
};
// The CapsLock key (while pressed) chooses the third shift level,
// and latches when pressed together with another third-level chooser.
partial modifier_keys
xkb_symbols "caps_switch_latch" {
key <CAPS> {[ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ],
type[group1]="THREE_LEVEL" };
};
// The Backslash key (while pressed) chooses the third shift level,
// and latches when pressed together with another third-level chooser.
partial modifier_keys
xkb_symbols "bksl_switch_latch" {
key <BKSL> {[ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ],
type[group1]="THREE_LEVEL" };
};
// The Less/Greater key (while pressed) chooses the third shift level,
// and latches when pressed together with another third-level chooser.
partial modifier_keys
xkb_symbols "lsgt_switch_latch" {
key <LSGT> {[ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ],
type[group1]="THREE_LEVEL" };
};
// Top-row digit key 4 chooses third shift level when pressed alone.
partial modifier_keys
xkb_symbols "4_switch_isolated" {
override key <AE04> {[ ISO_Level3_Shift ]};
};
// Top-row digit key 9 chooses third shift level when pressed alone.
partial modifier_keys
xkb_symbols "9_switch_isolated" {
override key <AE09> {[ ISO_Level3_Shift ]};
};

109
nixos/xkb/symbols/level5 Normal file
View File

@@ -0,0 +1,109 @@
// These variants assign ISO_Level5_Shift to various keys
// so that levels 5 to 8 can be reached.
// The right Ctrl key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "rctrl_switch" {
key <RCTL> {[ ISO_Level5_Shift ], type[group1]="ONE_LEVEL" };
};
// The Less/Greater key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "lsgt_switch" {
key <LSGT> {[ ISO_Level5_Shift ], type[group1]="ONE_LEVEL" };
};
// The right Alt key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "ralt_switch" {
key <RALT> {[ ISO_Level5_Shift ], type[group1]="ONE_LEVEL" };
};
// The CapsLock key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "caps_switch" {
key <CAPS> {[ ISO_Level5_Shift ], type[group1]="ONE_LEVEL" };
};
// The Menu key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "menu_switch" {
key <MENU> {[ ISO_Level5_Shift ], type[group1]="ONE_LEVEL" };
};
// This adds the definitions needed to create a level5-locking behaviour,
// using the virtual modifier NumLock (mapped to Mod2) as lock indicator.
// See also types/level5 (EIGHT_LEVEL_WITH_LEVEL5_LOCK) and compat/level5 (level5_lock).
partial modifier_keys
xkb_symbols "lock" {
replace key <HYPR> {[ NoSymbol ], type[group1] = "ONE_LEVEL", virtualMods = NumLock,
actions[group1] = [ SetMods(modifiers=NumLock) ]};
modifier_map Mod2 { <HYPR> };
};
// Below are eight variants for assigning extra keys for choosing/locking the fifth level.
partial modifier_keys
xkb_symbols "lsgt_switch_lock" {
include "level5(lock)"
key <LSGT> {[ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ],
type[group1] = "EIGHT_LEVEL" };
};
partial modifier_keys
xkb_symbols "lwin_switch_lock" {
include "level5(lock)"
key <LWIN> {[ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ],
type[group1] = "EIGHT_LEVEL" };
};
partial modifier_keys
xkb_symbols "ralt_switch_lock" {
include "level5(lock)"
key <RALT> {[ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ],
type[group1] = "EIGHT_LEVEL" };
};
partial modifier_keys
xkb_symbols "rwin_switch_lock" {
include "level5(lock)"
key <RWIN> {[ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ],
type[group1] = "EIGHT_LEVEL" };
};
partial modifier_keys
xkb_symbols "lsgt_switch_lock_cancel" {
include "level5(lock)"
key <LSGT> {[ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ],
type[group1] = "EIGHT_LEVEL_WITH_LEVEL5_LOCK" };
};
partial modifier_keys
xkb_symbols "lwin_switch_lock_cancel" {
include "level5(lock)"
key <LWIN> {[ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ],
type[group1] = "EIGHT_LEVEL_WITH_LEVEL5_LOCK" };
};
partial modifier_keys
xkb_symbols "ralt_switch_lock_cancel" {
include "level5(lock)"
key <RALT> {[ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ],
type[group1] = "EIGHT_LEVEL_WITH_LEVEL5_LOCK" };
};
partial modifier_keys
xkb_symbols "rwin_switch_lock_cancel" {
include "level5(lock)"
key <RWIN> {[ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ],
type[group1] = "EIGHT_LEVEL_WITH_LEVEL5_LOCK" };
};

180
nixos/xkb/symbols/lk Normal file
View File

@@ -0,0 +1,180 @@
// Keyboard layouts for Sri Lanka.
// Phonetic mapping of Sinhala for a standard US Qwerty keyboard.
// Maintainer: Harshula Jayasuriya <harshula@hj.id.au>
// https://www.nongnu.org/sinhala/doc/keymaps/sinhala-keyboard_3.html
// Repaya, Rakaransaya and Yansaya aren't inserted with AltGr+r, R and Y,
// respectively. The problem lies with the XKB infrastructure which
// only allows a one-to-one mapping of keycodes to Unicode codepoints.
// Unfortunately, the 3 mentioned glyphs actually consists of 3
// Unicode codepoints each. The result is that the user must
// manually construct the glyph by typing each of the 3 codepoints.
// AltGr+, represents the 'JOIN' key, it requires
// two codepoints, hence it also has to be manually constructed.
// Similarly, AltGr+/ representing the 'TOUCH' key requires
// two codepoints.
// Repaya = rayanna,AL,ZWJ
// Rakaransaya = AL,ZWJ,rayanna
// Yansaya = AL,ZWJ,yayanna
// JOIN = AL,ZWJ
// TOUCH = ZWJ,AL
// Where,
// AL = Al Lakuna = AltGr+a
// ZWJ = Zero Width Joiner = AltGr+/
default partial alphanumeric_keys
xkb_symbols "sin_phonetic" {
include "us"
name[Group1] = "Sinhala (phonetic)";
key.type[Group1] = "FOUR_LEVEL";
// q - p
key <AD01> { [ Sinh_ri, Sinh_rii, Sinh_ru2, Sinh_ruu2 ] };
key <AD02> { [ Sinh_ae, Sinh_aee, Sinh_ae2, Sinh_aee2 ] };
key <AD03> { [ Sinh_e, Sinh_ee, Sinh_e2, Sinh_ee2 ] };
key <AD04> { [ Sinh_ra, Sinh_al, Sinh_ra, none ] };
key <AD05> { [ Sinh_tha, Sinh_thha, Sinh_tta, Sinh_ttha ] };
key <AD06> { [ Sinh_ya, Sinh_al, none, none ] };
key <AD07> { [ Sinh_u, Sinh_uu, Sinh_u2, Sinh_uu2 ] };
key <AD08> { [ Sinh_i, Sinh_ii, Sinh_i2, Sinh_ii2 ] };
key <AD09> { [ Sinh_o, Sinh_oo, Sinh_o2, Sinh_oo2 ] };
key <AD10> { [ Sinh_pa, Sinh_pha, none, none ] };
// a - l
key <AC01> { [ Sinh_a, Sinh_aa, Sinh_al, Sinh_aa2 ] };
key <AC02> { [ Sinh_sa, Sinh_sha, Sinh_ssha, none ] };
key <AC03> { [ Sinh_dha, Sinh_dhha, Sinh_dda, Sinh_ddha ] };
key <AC04> { [ Sinh_fa, none, Sinh_ai2, Sinh_ai ] };
key <AC05> { [ Sinh_ga, Sinh_gha, Sinh_nga, none ] };
key <AC06> { [ Sinh_ha, Sinh_h2, Sinh_au2, Sinh_au ] };
key <AC07> { [ Sinh_ja, Sinh_jha, Sinh_nja, none ] };
key <AC08> { [ Sinh_ka, Sinh_kha, Sinh_lu, Sinh_luu ] };
key <AC09> { [ Sinh_la, Sinh_lla, Sinh_lu2, Sinh_luu2 ] };
// z - ?
key <AB01> { [ Sinh_nya, Sinh_jnya, none, none ] };
key <AB02> { [ Sinh_ndha, Sinh_ndda, none, none ] };
key <AB03> { [ Sinh_ca, Sinh_cha, none, none ] };
key <AB04> { [ Sinh_va, none, none, none ] };
key <AB05> { [ Sinh_ba, Sinh_bha, none, none ] };
key <AB06> { [ Sinh_na, Sinh_nna, Sinh_ng, Sinh_ng2 ] };
key <AB07> { [ Sinh_ma, Sinh_mba, none, none ] };
key <AB08> { [ any, any, Sinh_al, none ] };
key <AB09> { [ any, any, Sinh_kunddaliya, none ] };
key <AB10> { [ any, any, U200d, none ] }; // ZWJ
key <SPCE> { [ space, nobreakspace, U200c, any ] }; // ZWNJ
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "tam_unicode" {
include "in(tamilnet)"
name[Group1]= "Tamil (Sri Lanka, TamilNet '99)";
};
partial alphanumeric_keys
xkb_symbols "tam_TAB" {
include "in(tamilnet_TAB)"
name[Group1]= "Tamil (Sri Lanka, TamilNet '99, TAB encoding)";
};
// SINHALA - US, SUBSTITUTES SOME AND ADDS SOME
// =============================================
//
// This started as an upgrade to the first romanized version of
// Sinhala called PTS Pali created in the 1860s. PTS requires
// dots and bars on letters that are rare in fonts, and impossible
// to type. Its singular purpose was to print Tripitaka, the
// collection of Buddhist discourses.
//
// This version covers the entire newer Sinhala phoneme chart
// (Hodiya) that became standard just before the end of the 19th
// century. All the phonemes map to the SBCS. It is easy and
// faster than English to type. It overcomes the setback of
// Unicode Sinhala that it is not compatible with Pali and
// Sanskrit because it encodes two ligatures as base letters and
// the SLS1134 specification matching shape and morpheme sets
// violating Sanskrit orthography.
//
// Most importantly, this romanized version of Sinhala has a
// companion orthographic font that displays the text in the
// native script and a JavaScript converts it to Unicode Sinhala
// and back, dramatically increasing Sinhala seen on the web due
// to its ease of use.
//
// Dedication:
// Thomas William Rhys Davids, Ven. Udagama Sumangala
// Rev. Fr. A. M. Gunasekara, Rev. Fr. Theodore G. Perera
// Ven. Mettavihari
//
// Maintainer:
// JC Ahangama - sing@ahangama.com
//
partial alphanumeric_keys modifier_keys
xkb_symbols "us" {
include "us(basic)"
name[Group1]= "Sinhala (US)";
// plain, Shift, AltGr
// -----------------------------------------
key <TLDE> {[ grave, asciitilde, none ]};
key <AE01> {[ 1, exclam, dead_macron ]};
key <AE02> {[ 2, at, dead_belowdot ]};
key <AE03> {[ 3, numbersign, dead_abovedot ]};
key <AE04> {[ 4, dollar, currency ]};
key <AE05> {[ 5, percent, degree ]};
key <AE06> {[ 6, asciicircum, onequarter ]};
key <AE07> {[ 7, ampersand, onehalf ]};
key <AE08> {[ 8, asterisk, threequarters ]};
key <AE09> {[ 9, parenleft, none ]};
key <AE10> {[ 0, parenright, none ]};
key <AE11> {[ minus, underscore, emdash ]};
key <AE12> {[ equal, plus, none ]};
key <AD01> {[ d, D, q ]};
key <AD02> {[ ae, acute, none ]};
key <AD03> {[ e, eacute, ediaeresis ]};
key <AD04> {[ r, ucircumflex, none ]};
key <AD05> {[ t, none, none ]};
key <AD06> {[ y, none, none ]};
key <AD07> {[ u, uacute, udiaeresis ]};
key <AD08> {[ i, iacute, idiaeresis ]};
key <AD09> {[ o, oacute, odiaeresis ]};
key <AD10> {[ p, none, none ]};
key <AD11> {[ bracketleft, braceleft, none ]};
key <AD12> {[ bracketright, braceright, none ]};
key <BKSL> {[ backslash, bar, none ]};
key <AC01> {[ a, aacute, adiaeresis ]};
key <AC02> {[ s, none, none ]};
key <AC03> {[ eth, ETH, none ]};
key <AC04> {[ thorn, f, none ]};
key <AC05> {[ g, G, none ]};
key <AC06> {[ h, none, none ]};
key <AC07> {[ j, ccedilla, none ]};
key <AC08> {[ k, none, none ]};
key <AC09> {[ l, L, ocircumflex ]};
key <AC10> {[ semicolon, colon, none ]};
key <AC11> {[ apostrophe, quotedbl, none ]};
key <AB01> {[ z, none, none ]};
key <AB02> {[ x, none, none ]};
key <AB03> {[ c, ccedilla, none ]};
key <AB04> {[ v, none, none ]};
key <AB05> {[ b, B, none ]};
key <AB06> {[ n, N, ntilde ]};
key <AB07> {[ m, none, none ]};
key <AB08> {[ comma, less, guillemotleft ]};
key <AB09> {[ period, greater,guillemotright ]};
key <AB10> {[ slash, question, U200C ]}; // ZWJ
key <SPCE> {[ space, nobreakspace, none ]};
include "level3(alt_switch)"
};

364
nixos/xkb/symbols/lt Normal file
View File

@@ -0,0 +1,364 @@
// Keyboard layouts for Lithuania.
// Lithuanian Numeric layout -- Lithuanian letters on the numeric row.
// Based on the Lithuanian keymap by Ričardas Čepas <rch@richard.eu.org>.
// Third and fourth levels added by Mantas Kriaučiūnas <mantas@akl.lt>, 2004.
// Minor modifications and cleanup by Rimas Kudelis <rq@akl.lt>, 2010.
default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
include "latin"
name[Group1]="Lithuanian";
key <TLDE> {[ grave, asciitilde, acute ]};
key <AE01> {[ aogonek, Aogonek, 1, exclam ]};
key <AE02> {[ ccaron, Ccaron, 2, at ]};
key <AE03> {[ eogonek, Eogonek, 3, numbersign ]};
key <AE04> {[ eabovedot, Eabovedot, 4, dollar ]};
key <AE05> {[ iogonek, Iogonek, 5, percent ]};
key <AE06> {[ scaron, Scaron, 6, asciicircum ]};
key <AE07> {[ uogonek, Uogonek, 7, ampersand ]};
key <AE08> {[ umacron, Umacron, 8, asterisk ]};
key <AE09> {[ doublelowquotemark, parenleft, 9, parenleft ]};
key <AE10> {[ leftdoublequotemark, parenright, 0, parenright ]};
key <AE11> {[ minus, underscore, endash ]};
key <AE12> {[ zcaron, Zcaron, equal, plus ]};
key <AD03> {[ NoSymbol, NoSymbol, EuroSign, sterling ]};
key <LSGT> {[ endash, EuroSign ]};
include "level3(ralt_switch)"
};
// Similar to the above, but with the Lithuanian letters on 3rd and 4th levels.
partial alphanumeric_keys modifier_keys
xkb_symbols "us" {
include "latin"
name[Group1]="Lithuanian (US)";
key <TLDE> {[ grave, asciitilde, acute ]};
key <AE01> {[ 1, exclam, aogonek, Aogonek ]};
key <AE02> {[ 2, at, ccaron, Ccaron ]};
key <AE03> {[ 3, numbersign, eogonek, Eogonek ]};
key <AE04> {[ 4, dollar, eabovedot, Eabovedot ]};
key <AE05> {[ 5, percent, iogonek, Iogonek ]};
key <AE06> {[ 6, asciicircum, scaron, Scaron ]};
key <AE07> {[ 7, ampersand, uogonek, Uogonek ]};
key <AE08> {[ 8, asterisk, umacron, Umacron ]};
key <AE09> {[ 9, parenleft, doublelowquotemark ]};
key <AE10> {[ 0, parenright, leftdoublequotemark ]};
key <AE11> {[ minus, underscore, endash ]};
key <AE12> {[ equal, plus, zcaron, Zcaron ]};
key <AD03> {[ NoSymbol, NoSymbol, EuroSign, sterling ]};
key <LSGT> {[ endash, EuroSign ]};
include "level3(ralt_switch)"
};
// Lithuanian keymap LST 1582:2000 (described at http://ims.mii.lt/klav/).
// Extensions: B01 L3 is "<", B02 L3 is ">", and B03 L3 is endash, to make
// this layout usable with pc101 and pc104 keyboards.
//
// Made by Gediminas Paulauskas <menesis@delfi.lt>
// Minor modifications by Ričardas Čepas and Rimas Kudelis
partial alphanumeric_keys modifier_keys
xkb_symbols "std" {
include "latin"
name[Group1]="Lithuanian (standard)";
key <TLDE> {[ grave, asciitilde, acute ]};
key <AE01> {[ exclam, 1, at ]};
key <AE02> {[ minus, 2, underscore ]};
key <AE03> {[ slash, 3, numbersign ]};
key <AE04> {[ semicolon, 4, dollar ]};
key <AE05> {[ colon, 5, section ]};
key <AE06> {[ comma, 6, asciicircum ]};
key <AE07> {[ period, 7, ampersand ]};
key <AE08> {[ equal, 8, asterisk ]};
key <AE09> {[ parenleft, 9, bracketleft ]};
key <AE10> {[ parenright, 0, bracketright ]};
key <AE11> {[ question, plus, apostrophe ]};
key <AE12> {[ x, X, percent ]};
key <AD01> {[ aogonek, Aogonek ]};
key <AD02> {[ zcaron, Zcaron ]};
key <AD03> {[ e, E, EuroSign ]};
key <AD11> {[ iogonek, Iogonek, braceleft ]};
key <AD12> {[ w, W, braceright ]};
key <AC04> {[ scaron, Scaron ]};
key <AC10> {[ uogonek, Uogonek ]};
key <AC11> {[ eabovedot, Eabovedot, quotedbl ]};
key <BKSL> {[ q, Q, bar ]};
key <LSGT> {[ less, greater, endash ]};
key <AB01> {[ z, Z, less ]};
key <AB02> {[ umacron, Umacron, greater ]};
key <AB03> {[ c, C, endash ]};
key <AB08> {[ ccaron, Ccaron, doublelowquotemark ]};
key <AB09> {[ f, F, leftdoublequotemark ]};
key <AB10> {[ eogonek, Eogonek, backslash ]};
key <SPCE> {[ space, space, nobreakspace ]};
include "kpdl(comma)"
include "level3(ralt_switch)"
};
// Lithuanian keymap based on the old LST 1205-92 standard (also known as IBM layout).
// https://web.archive.org/web/20060629123341/http://www.kada.lt/litwin/Kbdlta.gif
// "Programmer mode" is implemented partially: just the symbols that are missing on
// the first two levels are available via AltGr (instead of via a dead tilde key).
// Originally by Piter PUNK <piterpk@terra.com.br>, 2006.
partial alphanumeric_keys modifier_keys
xkb_symbols "ibm" {
include "latin"
name[Group1]="Lithuanian (IBM)";
key <TLDE> {[ grave, asciitilde, acute ]};
key <AE01> {[ exclam, 1 ]};
key <AE02> {[ quotedbl, 2, at ]};
key <AE03> {[ slash, 3, numbersign ]};
key <AE04> {[ semicolon, 4, dollar ]};
key <AE05> {[ colon, 5, percent ]};
key <AE06> {[ comma, 6, asciicircum ]};
key <AE07> {[ period, 7, ampersand ]};
key <AE08> {[ question, 8, asterisk ]};
key <AE09> {[ parenleft, 9, braceleft ]};
key <AE10> {[ parenright, 0, braceright ]};
key <AE11> {[ underscore, minus, endash ]};
key <AE12> {[ plus, equal ]};
key <AD01> {[ aogonek, Aogonek, q, Q ]};
key <AD02> {[ zcaron, Zcaron, w, W ]};
key <AD03> {[ e, E, EuroSign ]};
key <AD11> {[ iogonek, Iogonek, bracketleft, braceleft ]};
key <AD12> {[ doublelowquotemark, leftdoublequotemark, bracketright, braceright ]};
key <AC10> {[ uogonek, Uogonek, semicolon, colon ]};
key <AC11> {[ eabovedot, Eabovedot, apostrophe, quotedbl ]};
key <LSGT> {[ less, greater, endash ]};
key <AB01> {[ z, Z, guillemotleft, guillemotright]};
key <AB02> {[ umacron, Umacron, x, X ]};
key <AB08> {[ ccaron, Ccaron, comma, less ]};
key <AB09> {[ scaron, Scaron, period, greater ]};
key <AB10> {[ eogonek, Eogonek, slash, question ]};
key <SPCE> {[ space, space, nobreakspace, none ]};
include "level3(ralt_switch)"
};
// LEKP and LEKPa layouts 1.0
// For more info visit http://lekp.info
// Created by Tautrimas Pajarskas, 2007
// Made by Ernestas Lukoševičius, 2007
// Minor cleanup by Rimas Kudelis, 2010
partial alphanumeric_keys modifier_keys
xkb_symbols "lekp" {
name[Group1]="Lithuanian (LEKP)";
key <TLDE> {[ grave, asciitilde, acute ]};
key <AE01> {[ slash, numbersign, bar ]};
key <AE02> {[ backslash, at, section ]};
key <AE03> {[ period, braceleft ]};
key <AE04> {[ comma, braceright ]};
key <AE05> {[ f, F ]};
key <AE06> {[ exclam, endash ]};
key <AE07> {[ w, W ]};
key <AE08> {[ uogonek, Uogonek ]};
key <AE09> {[ iogonek, Iogonek ]};
key <AE10> {[ parenleft, doublelowquotemark, registered ]};
key <AE11> {[ parenright, leftdoublequotemark, copyright ]};
key <AE12> {[ colon, ampersand, trademark ]};
key <AD01> {[ q, Q, EuroSign ]};
key <AD02> {[ g, G, 7 ]};
key <AD03> {[ r, R, 8 ]};
key <AD04> {[ l, L, 9 ]};
key <AD05> {[ d, D, percent ]};
key <AD06> {[ ccaron, Ccaron ]};
key <AD07> {[ j, J ]};
key <AD08> {[ u, U, period ]};
key <AD09> {[ eabovedot, Eabovedot, minus ]};
key <AD10> {[ eogonek, Eogonek, slash ]};
key <AD11> {[ question, bracketleft, division ]};
key <AD12> {[ equal, bracketright ]};
key <AC01> {[ a, A, 0 ]};
key <AC02> {[ k, K, 4 ]};
key <AC03> {[ s, S, 5 ]};
key <AC04> {[ t, T, 6 ]};
key <AC05> {[ m, M, dollar ]};
key <AC06> {[ p, P ]};
key <AC07> {[ n, N ]};
key <AC08> {[ e, E, comma ]};
key <AC09> {[ i, I, plus ]};
key <AC10> {[ o, O, asterisk ]};
key <AC11> {[ y, Y, multiply ]};
key <BKSL> {[ apostrophe, underscore ]};
key <LSGT> {[ semicolon, quotedbl, sterling ]};
key <AB01> {[ z, Z, asciicircum ]};
key <AB02> {[ x, X, 1 ]};
key <AB03> {[ c, C, 2 ]};
key <AB04> {[ v, V, 3 ]};
key <AB05> {[ zcaron, Zcaron ]};
key <AB06> {[ scaron, Scaron ]};
key <AB07> {[ b, B, degree ]};
key <AB08> {[ umacron, Umacron, less ]};
key <AB09> {[ aogonek, Aogonek, greater ]};
key <AB10> {[ h, H ]};
include "capslock(backspace)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys modifier_keys
xkb_symbols "lekpa" {
include "lt(lekp)"
name[Group1]="Lithuanian (LEKPa)";
key <AE01> {[ slash, quotedbl, bar ]};
key <AE03> {[ period, braceleft, numbersign ]};
key <AE04> {[ comma, braceright, sterling ]};
key <AE05> {[ f, F, ampersand ]};
key <AE12> {[ colon, semicolon, trademark ]};
key <LSGT> {[ less, greater, bar ]};
};
// Samogitian (žemaiťiu/žemaičių) layout, based on the Lithuanian standard layout.
// Long vowels are made by combining: pressing the grave key (`) after the vowel.
// Special letters (ëůȧťď and Latvian ģŗļķ) are obtained with AltGr plus the base letter.
//
// Added by Arnas Udovičius <zordsdavini@gmail.com>, 2020.
partial alphanumeric_keys modifier_keys
xkb_symbols "sgs" {
include "lt(basic)"
name[Group1]="Samogitian";
key <TLDE> {[ U0304, asciitilde, grave, acute ]};
key <AD01> {[ q, Q, ediaeresis, Ediaeresis ]};
key <AD02> {[ w, W, U016F, U016E ]};
key <AD04> {[ r, R, rcedilla, Rcedilla ]};
key <AD05> {[ t, T, tcaron, Tcaron ]};
key <AC01> {[ a, A, U0227, U0226 ]};
key <AC03> {[ d, D, dcaron, Dcaron ]};
key <AC05> {[ g, G, gcedilla, Gcedilla ]};
key <AC08> {[ k, K, kcedilla, Kcedilla ]};
key <AC09> {[ l, L, lcedilla, Lcedilla ]};
};
// Lithuanian "Ratise" keymap, by Algirdas Buckus <algirdasbuckus@gmail.com>.
// Last changed on 2020-12-24.
partial alphanumeric_keys modifier_keys
xkb_symbols "ratise" {
name[Group1]="Lithuanian (Ratise)";
key <TLDE> { [ plus, section, grave, acute ] };
key <AE01> { [ exclam, currency, rightsinglequotemark, exclamdown ] };
key <AE02> { [ colon, at, 0x10027E8, 0x1002190 ] }; // MATHEMATICAL LEFT ANGLE BRACKET; LEFTWARDS ARROW
key <AE03> { [ period, numbersign, 0x10027E9, 0x1002192 ] }; // MATHEMATICAL RIGHT ANGLE BRACKET; RIGHTWARDS ARROW
key <AE04> { [ asterisk, dollar, rightdoublequotemark, sterling ] };
key <AE05> { [ underscore, percent, ellipsis, permille ] };
key <AE06> { [ emdash, bar, asciicircum, brokenbar ] };
key <AE07> { [ equal, ampersand, 7, notequal ] };
key <AE08> { [ comma, less, 8, lessthanequal ] };
key <AE09> { [ semicolon, greater, 9, greaterthanequal ] };
key <AE10> { [ slash, backslash, division, 0x1002016 ] }; // DOUBLE VERTICAL LINE
key <AE11> { [ w, W, Greek_OMEGA, ssharp ] };
key <AE12> { [ question, asciitilde, 0x1002248, questiondown ] }; // ALMOST EQUAL TO
key <TAB> { [ Tab,ISO_Left_Tab, Multi_key ] }; // AltGr+Tab is Compose
key <AD01> { [ umacron, Umacron, leftsinglequotemark, 0x100203A ] }; // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
key <AD02> { [ eabovedot, Eabovedot, bracketleft, dead_abovering ] };
key <AD03> { [ y, Y, bracketright, dead_circumflex ] };
key <AD04> { [ o, O, leftdoublequotemark, guillemotright ] };
key <AD05> { [ q, Q, 0x1000301, 0x1002191 ] }; // COMBINING ACUTE ACCENT; UPWARDS ARROW
key <AD06> { [ j, J, EuroSign, yen ] };
key <AD07> { [ n, N, 4, notsign ] };
key <AD08> { [ k, K, 5, dagger ] };
key <AD09> { [ g, G, 6, enfilledcircbullet ] };
key <AD10> { [ b, B, multiply, infinity ] };
key <AD11> { [ c, C, cent, copyright ] };
key <AD12> { [ f, F, 0x1002044, trademark ] }; // FRACTION SLASH
key <AC01> { [ u, U, apostrophe, dead_macron ] };
key <AC02> { [ e, E, parenleft, dead_grave ] };
key <AC03> { [ i, I, parenright, dead_acute ] };
key <AC04> { [ a, A, quotedbl, dead_diaeresis ] };
key <AC05> { [ h, H, 0x1000303, dead_tilde ] }; // COMBINING TILDE ACCENT
key <AC06> { [ l, L, lstroke, Lstroke ] };
key <AC07> { [ r, R, 1, onesuperior ] };
key <AC08> { [ t, T, 2, twosuperior ] };
key <AC09> { [ s, S, 3, threesuperior ] };
key <AC10> { [ p, P, 0x1002212, paragraph ] }; // MINUS SIGN
key <AC11> { [ zcaron, Zcaron, minus, dead_cedilla ] };
key <BKSL> { [ z, Z, degree, registered ] };
key <LSGT> { [ minus, endash, 0x1000307, 0x1002011 ] }; // COMBINING DOT ABOVE, NON-BREAKING HYPHEN
key <AB01> { [ uogonek, Uogonek, singlelowquotemark, 0x1002039 ] }; // SINGLE LEFT-POINTING ANGLE QUOTATION MARK
key <AB02> { [ eogonek, Eogonek, braceleft, dead_breve ] };
key <AB03> { [ iogonek, Iogonek, braceright, dead_caron ] };
key <AB04> { [ aogonek, Aogonek, doublelowquotemark, guillemotleft ] };
key <AB05> { [ x, X, 0x1000300, 0x1002193 ] }; // COMBINING GRAVE ACCENT; DOWNWARDS ARROW
key <AB06> { [ v, V, squareroot, 0x10025CA ] }; // LOZENGE
key <AB07> { [ m, M, 0, mu ] };
key <AB08> { [ d, D, period, doubledagger ] };
key <AB09> { [ scaron, Scaron, comma, periodcentered ] };
key <AB10> { [ ccaron, Ccaron, plus, plusminus ] };
key <SPCE> { [ space, space, space, nobreakspace ] };
include "level3(ralt_switch)"
};
// EXTRAS:
partial alphanumeric_keys modifier_keys
xkb_symbols "us_dvorak" {
include "us(dvorak)"
name[Group1]="Lithuanian (Dvorak)";
key <AE01> {[ 1, exclam, aogonek, Aogonek ]};
key <AE02> {[ 2, at, ccaron, Ccaron ]};
key <AE03> {[ 3, numbersign, eogonek, Eogonek ]};
key <AE04> {[ 4, dollar, eabovedot, Eabovedot ]};
key <AE05> {[ 5, percent, iogonek, Iogonek ]};
key <AE06> {[ 6, asciicircum, scaron, Scaron ]};
key <AE07> {[ 7, ampersand, uogonek, Uogonek ]};
key <AE08> {[ 8, asterisk, umacron, Umacron ]};
key <AE09> {[ 9, parenleft, doublelowquotemark, parenleft ]};
key <AE10> {[ 0, parenright, leftdoublequotemark, parenright ]};
key <AD12> {[ equal, plus, zcaron, Zcaron ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/lt(sun_type6)"
};

557
nixos/xkb/symbols/lv Normal file
View File

@@ -0,0 +1,557 @@
// Keyboard layouts for Latvia.
// Latvian keymap version 1.3
// Copyright (C) Dmitry Golubev <lastguru@mail.ru>, 2003-2004
//
// Permission to use, copy, modify, distribute, and sell this software and its
// documentation for any purpose is hereby granted without fee, provided that
// the above copyright notice appear in all copies and that both that
// copyright notice and this permission notice appear in supporting
// documentation, and that the name of the copyright holder(s) not be used in
// advertising or publicity pertaining to distribution of the software without
// specific, written prior permission. The copyright holder(s) makes no
// representations about the suitability of this software for any purpose. It
// is provided "as is" without express or implied warranty.
//
// THE COPYRIGHT HOLDER(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
// EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
// PERFORMANCE OF THIS SOFTWARE.
default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
name[Group1]= "Latvian";
key <TLDE> {[ grave, asciitilde, acute, asciitilde ]};
key <AE01> {[ 1, exclam, onesuperior, exclamdown ]};
key <AE02> {[ 2, at, twosuperior, oneeighth ]};
key <AE03> {[ 3, numbersign, threesuperior, sterling ]};
key <AE04> {[ 4, dollar, EuroSign, cent ]};
key <AE05> {[ 5, percent, onehalf, threeeighths ]};
key <AE06> {[ 6, asciicircum, threequarters, fiveeighths ]};
key <AE07> {[ 7, ampersand, braceleft, seveneighths ]};
key <AE08> {[ 8, asterisk, bracketleft, trademark ]};
key <AE09> {[ 9, parenleft, bracketright, plusminus ]};
key <AE10> {[ 0, parenright, braceright, degree ]};
key <AE11> {[ minus, underscore, backslash, questiondown ]};
key <AE12> {[ equal, plus, endash, emdash ]};
key <AD01> {[ q, Q, q, Q ]};
key <AD02> {[ w, W, w, W ]};
key <AD03> {[ e, E, emacron, Emacron ]};
key <AD04> {[ r, R, rcedilla, Rcedilla ]};
key <AD05> {[ t, T, t, T ]};
key <AD06> {[ y, Y, y, Y ]};
key <AD07> {[ u, U, umacron, Umacron ]};
key <AD08> {[ i, I, imacron, Imacron ]};
key <AD09> {[ o, O, omacron, Omacron ]};
key <AD10> {[ p, P, p, P ]};
key <AD11> {[ bracketleft, braceleft, guillemotleft, leftdoublequotemark ]};
key <AD12> {[ bracketright, braceright, guillemotright, rightdoublequotemark ]};
key <AC01> {[ a, A, amacron, Amacron ]};
key <AC02> {[ s, S, scaron, Scaron ]};
key <AC03> {[ d, D, d, D ]};
key <AC04> {[ f, F, f, F ]};
key <AC05> {[ g, G, gcedilla, Gcedilla ]};
key <AC06> {[ h, H, h, H ]};
key <AC07> {[ j, J, j, J ]};
key <AC08> {[ k, K, kcedilla, Kcedilla ]};
key <AC09> {[ l, L, lcedilla, Lcedilla ]};
key <AC10> {[ semicolon, colon, semicolon, colon ]};
key <AC11> {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]};
key <AB01> {[ z, Z, zcaron, Zcaron ]};
key <AB02> {[ x, X, x, X ]};
key <AB03> {[ c, C, ccaron, Ccaron ]};
key <AB04> {[ v, V, v, V ]};
key <AB05> {[ b, B, b, B ]};
key <AB06> {[ n, N, ncedilla, Ncedilla ]};
key <AB07> {[ m, M, m, M ]};
key <AB08> {[ comma, less, U2022, multiply ]}; // bullet
key <AB09> {[ period, greater, periodcentered, division ]};
key <AB10> {[ slash, question, slash, abovedot ]};
key <BKSL> {[ backslash, bar, grave, breve ]};
key <SPCE> {[ space, space, space, space ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys modifier_keys
xkb_symbols "apostrophe" {
include "lv(basic)"
name[Group1]= "Latvian (apostrophe)";
key <AC11> {[ISO_Level3_Latch, quotedbl, apostrophe, quotedbl]};
key <SPCE> {[space, space, apostrophe]};
modifier_map Mod5 { <AC11> };
};
partial alphanumeric_keys modifier_keys
xkb_symbols "apostrophe-deadquotes" {
include "lv(basic)"
name[Group1]= "Latvian (apostrophe, dead quotes)";
key <AC11> {[ISO_Level3_Latch, ISO_Level3_Latch, apostrophe, quotedbl]};
key <SPCE> {[space, space, apostrophe, quotedbl]};
modifier_map Mod5 { <AC11> };
};
partial alphanumeric_keys modifier_keys
xkb_symbols "tilde" {
include "lv(basic)"
name[Group1]= "Latvian (tilde)";
key <TLDE> {[ISO_Level3_Latch, asciitilde, grave, acute]};
key <SPCE> {[space, space, asciitilde]};
modifier_map Mod5 { <TLDE> };
};
partial alphanumeric_keys modifier_keys
xkb_symbols "fkey" {
include "lv(basic)"
name[Group1]= "Latvian (F)";
key <AC04> {[ISO_Level3_Latch, ISO_Level3_Latch, f, F]};
key <SPCE> {[space, space, f, F]};
modifier_map Mod5 { <AC04> };
};
// Four somewhat ergonomic layouts.
// See https://odo.lv/LatvianKeyboard
// and https://odo.lv/LatvianKeyboard5.
// Latvian Adapted keyboard layout by Valdis Vītoliņš.
// https://odo.lv/xwiki/bin/download/Main/LatvianKeyboard/Adapted.png
partial alphanumeric_keys modifier_keys
xkb_symbols "adapted" {
include "lv(basic)"
name[Group1]= "Latvian (adapted)";
key <AE02> {[ 2, Ccaron, at, twosuperior ]};
key <AE03> {[ 3, ccaron, numbersign, threesuperior ]};
key <AE04> {[ 4, Zcaron, dollar, EuroSign ]};
key <AE05> {[ 5, zcaron, percent, onehalf ]};
key <AD01> {[ scaron, Scaron, q, Q ]};
key <AD02> {[ emacron, Emacron, w, W ]};
key <AD03> {[ e, E, e, E ]};
key <AD06> {[ amacron, Amacron, y, Y ]};
key <AD07> {[ u, U, u, U ]};
key <AD08> {[ i, I, i, I ]};
key <AD11> {[ umacron, Umacron, bracketleft, braceleft ]};
key <AD12> {[ ncedilla, Ncedilla, bracketright, braceright ]};
key <AC01> {[ a, A, a, A ]};
key <AC02> {[ s, S, s, S ]};
key <AC05> {[ g, G, g, G ]};
key <AC08> {[ k, K, k, K ]};
key <AC09> {[ l, L, l, L ]};
key <AC10> {[ imacron, Imacron, semicolon, colon ]};
key <AB01> {[ z, Z, z, Z ]};
key <AB02> {[ kcedilla, Kcedilla, x, X ]};
key <AB03> {[ c, C, c, C ]};
key <AB06> {[ n, N, n, N ]};
key <AB08> {[ comma, gcedilla, less, multiply ]};
key <AB09> {[ period, Gcedilla, greater, division ]};
key <AB10> {[ lcedilla, Lcedilla, slash, question ]};
};
// Latvian Ergonomic (ŪGJRMV) keyboard layout by Valdis Vītoliņš.
// https://odo.lv/xwiki/bin/download/Main/LatvianKeyboard/Ergonomic.png
partial alphanumeric_keys modifier_keys
xkb_symbols "ergonomic" {
include "lv(apostrophe)"
name[Group1]= "Latvian (ergonomic, ŪGJRMV)";
key <AE02> {[ 2, at, gcedilla, Gcedilla ]};
key <AE11> {[ minus, underscore, endash, emdash ]};
key <AE12> {[ f, F, equal, plus ]};
key <AD01> {[ umacron, Umacron, q, Q ]};
key <AD02> {[ g, G, g, G ]};
key <AD03> {[ j, J, j, J ]};
key <AD04> {[ r, R, rcedilla, Rcedilla ]};
key <AD05> {[ m, M, m, M ]};
key <AD06> {[ v, V, w, W ]};
key <AD07> {[ n, N, y, Y ]};
key <AD08> {[ z, Z, z, Z ]};
key <AD09> {[ emacron, Emacron, emacron, Emacron ]};
key <AD10> {[ ccaron, Ccaron, ccaron, Ccaron ]};
key <AD11> {[ zcaron, Zcaron, bracketleft, braceleft ]};
key <AD12> {[ h, H, bracketright, braceright ]};
key <AC01> {[ scaron, Scaron, scaron, Scaron ]};
key <AC02> {[ u, U, u, U ]};
key <AC03> {[ s, S, s, S ]};
key <AC04> {[ i, I, i, I ]};
key <AC05> {[ l, L, l, L ]};
key <AC06> {[ d, D, d, D ]};
key <AC07> {[ a, A, a, A ]};
key <AC08> {[ t, T, t, T ]};
key <AC09> {[ e, E, e, E ]};
key <AC10> {[ c, C, c, C ]};
key <AC11> {[ ISO_Level3_Latch, quotedbl, apostrophe, quotedbl ]};
key <AC12> {[ kcedilla, Kcedilla, slash, backslash ]};
key <LSGT> {[ gcedilla, Gcedilla, gcedilla, Gcedilla ]};
key <AB01> {[ ncedilla, Ncedilla, ncedilla, Ncedilla ]};
key <AB02> {[ b, B, x, X ]};
key <AB03> {[ imacron, Imacron, imacron, Imacron ]};
key <AB04> {[ k, K, k, K ]};
key <AB05> {[ p, P, p, P ]};
key <AB06> {[ o, O, omacron, Omacron ]};
key <AB07> {[ amacron, Amacron, amacron, Amacron ]};
key <AB08> {[ comma, semicolon, less, multiply ]};
key <AB09> {[ period, colon, greater, division ]};
key <AB10> {[ lcedilla, Lcedilla, question, slash ]};
};
// Latvian Modern keyboard layout by Valdis Vītoliņš.
// https://odo.lv/xwiki/bin/download/Recipes/LatvianKeyboard/Modern.png
partial alphanumeric_keys modifier_keys
xkb_symbols "modern" {
name[Group1]= "Latvian (Modern Latin)";
key <TLDE> {[ grave, asciitilde, acute, copyright ]};
key <AE01> {[ 1, exclam, onesuperior, exclamdown ]};
key <AE02> {[ 2, at, twosuperior, oneeighth ]};
key <AE03> {[ 3, numbersign, threesuperior, sterling ]};
key <AE04> {[ 4, dollar, EuroSign, cent ]};
key <AE05> {[ 5, percent, onehalf, threeeighths ]};
key <AE06> {[ 6, asciicircum, threequarters, fiveeighths ]};
key <AE07> {[ 7, ampersand, braceleft, seveneighths ]};
key <AE08> {[ 8, asterisk, bracketleft, trademark ]};
key <AE09> {[ 9, parenleft, bracketright, plusminus ]};
key <AE10> {[ 0, parenright, braceright, degree ]};
key <AE11> {[ minus, underscore, backslash, questiondown ]};
key <AE12> {[ equal, plus, endash, emdash ]};
key <AD01> {[ emacron, Emacron, emacron, Emacron ]};
key <AD02> {[ o, O, omacron, Omacron ]};
key <AD03> {[ amacron, Amacron, amacron, Amacron ]};
key <AD04> {[ p, P, question, P ]};
key <AD05> {[ b, B, exclam, B ]};
key <AD06> {[ j, J, emdash, J ]};
key <AD07> {[ d, D, endash, D ]};
key <AD08> {[ imacron, Imacron, imacron, Imacron ]};
key <AD09> {[ l, L, lcedilla, Lcedilla ]};
key <AD10> {[ g, G, gcedilla, Gcedilla ]};
key <AD11> {[ bracketleft, braceleft, guillemotleft, leftdoublequotemark ]};
key <AD12> {[ bracketright, braceright, guillemotright, rightdoublequotemark ]};
key <AC01> {[ e, E, e, E ]};
key <AC02> {[ u, U, umacron, Umacron ]};
key <AC03> {[ a, A, a, A ]};
key <AC04> {[ n, N, ncedilla, Ncedilla ]};
key <AC05> {[ k, K, kcedilla, Kcedilla ]};
key <AC06> {[ ISO_Level3_Latch, quotedbl, apostrophe, quotedbl ]};
key <AC07> {[ s, S, scaron, Scaron ]};
key <AC08> {[ i, I, i, I ]};
key <AC09> {[ t, T, t, T ]};
key <AC10> {[ r, R, rcedilla, Rcedilla ]};
key <AC11> {[ m, M, m, M ]};
key <BKSL> {[ slash, question, backslash, bar ]};
key <LSGT> {[ q, Q, q, Q ]};
key <AB01> {[ x, X, q, Q ]};
key <AB02> {[ z, Z, zcaron, Zcaron ]};
key <AB03> {[ c, C, ccaron, Ccaron ]};
key <AB04> {[ v, V, bar, V ]};
key <AB05> {[ w, W, backslash, W ]};
key <AB06> {[ f, F, period, F ]};
key <AB07> {[ y, Y, U0233, U0232 ]};
key <AB08> {[ h, H, U1E29, U1E28 ]};
key <AB09> {[ comma, semicolon, less, multiply ]};
key <AB10> {[ period, colon, greater, division ]};
key <SPCE> {[ space, space, apostrophe ]};
modifier_map Mod5 { <AC06> };
include "level3(ralt_switch)"
};
partial alphanumeric_keys modifier_keys
xkb_symbols "modern-cyr" {
name[Group1]= "Latvian (Modern Cyrillic)";
key <TLDE> {[ grave, asciitilde, acute, copyright ]};
key <AE01> {[ 1, exclam, onesuperior, exclamdown ]};
key <AE02> {[ 2, at, twosuperior, oneeighth ]};
key <AE03> {[ 3, numbersign, threesuperior, sterling ]};
key <AE04> {[ 4, dollar, EuroSign, cent ]};
key <AE05> {[ 5, percent, onehalf, threeeighths ]};
key <AE06> {[ 6, asciicircum, threequarters, fiveeighths ]};
key <AE07> {[ 7, ampersand, braceleft, seveneighths ]};
key <AE08> {[ 8, asterisk, bracketleft, trademark ]};
key <AE09> {[ 9, parenleft, bracketright, plusminus ]};
key <AE10> {[ 0, parenright, braceright, degree ]};
key <AE11> {[ minus, underscore, backslash, questiondown ]};
key <AE12> {[ equal, plus, endash, emdash ]};
key <AD01> {[ U044D, U042D, U0454, U0404 ]};
key <AD02> {[ U043E, U041E ]};
key <AD03> {[ U044F, U042F, U0458, U0408 ]};
key <AD04> {[ U043F, U041F, question ]};
key <AD05> {[ U0431, U0411, exclam ]};
key <AD06> {[ U0439, U0419, emdash ]};
key <AD07> {[ U0434, U0414, U0452, U0402 ]};
key <AD08> {[ U0456, U0406, U0457, U0407 ]};
key <AD09> {[ U043B, U041B, U0459, U0409 ]};
key <AD10> {[ U0433, U0413, U0491, U0490 ]};
key <AD11> {[ bracketleft, braceleft, guillemotleft, leftdoublequotemark ]};
key <AD12> {[ bracketright, braceright, guillemotright, rightdoublequotemark ]};
key <AC01> {[ U0435, U0415, U0451, U0401 ]};
key <AC02> {[ U0443, U0423, U044E, U042E ]};
key <AC03> {[ U0430, U0410 ]};
key <AC04> {[ U043D, U041D, U045A, U040A ]};
key <AC05> {[ U043A, U041A, U045C, U040C ]};
key <AC06> {[ ISO_Level3_Latch, quotedbl, apostrophe, quotedbl ]};
key <AC07> {[ U0441, U0421, U0448, U0428 ]};
key <AC08> {[ U0438, U0418 ]};
key <AC09> {[ U0442, U0422, U045B, U040B ]};
key <AC10> {[ U0440, U0420, U0453, U0403 ]};
key <AC11> {[ U043C, U041C ]};
key <BKSL> {[ slash, question, backslash, bar ]};
key <LSGT> {[ U0457, U0407, U0458, U0408 ]};
key <AB01> {[ U044C, U042C, U044A, U042A ]};
key <AB02> {[ U0437, U0417, U0436, U0416 ]};
key <AB03> {[ U0446, U0426, U0447, U0427 ]};
key <AB04> {[ U0432, U0412, U0455, U0405 ]};
key <AB05> {[ U0449, U0429, U045F, U040F ]};
key <AB06> {[ U0444, U0424, U0301 ]};
key <AB07> {[ U044B, U042B, U045E, U040E ]};
key <AB08> {[ U0445, U0425, U04BB, U04BA ]};
key <AB09> {[ comma, semicolon, less, multiply ]};
key <AB10> {[ period, colon, greater, division ]};
key <SPCE> {[ space, space, apostrophe ]};
modifier_map Mod5 { <AC06> };
include "level3(ralt_switch)"
};
// EXTRAS:
// The US-Dvorak and US-Colemak-compatible layouts were
// added by Aldis Berjoza <aldis@bsdroot.lv>, April 2011.
// US Dvorak-compatible Latvian layout
// https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard
partial alphanumeric_keys modifier_keys
xkb_symbols "dvorak" {
name[Group1]= "Latvian (Dvorak)";
key <TLDE> {[ asciitilde, grave, acute, asciitilde ]};
key <AE01> {[ 1, exclam, onesuperior, exclamdown ]};
key <AE02> {[ 2, at, twosuperior, oneeighth ]};
key <AE03> {[ 3, numbersign, threesuperior, sterling ]};
key <AE04> {[ 4, dollar, EuroSign, cent ]};
key <AE05> {[ 5, percent, onehalf, threeeighths ]};
key <AE06> {[ 6, asciicircum, threequarters, fiveeighths ]};
key <AE07> {[ 7, ampersand, braceleft, seveneighths ]};
key <AE08> {[ 8, asterisk, bracketleft, trademark ]};
key <AE09> {[ 9, parenleft, bracketright, plusminus ]};
key <AE10> {[ 0, parenright, braceright, degree ]};
key <AE11> {[ bracketleft, braceleft, leftdoublequotemark, guillemotleft ]};
key <AE12> {[ bracketright, braceright, rightdoublequotemark, guillemotright ]};
key <AD01> {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]};
key <AD02> {[ comma, less, guillemotleft, multiply ]};
key <AD03> {[ period, greater, guillemotright, division ]};
key <AD04> {[ p, P, p, P ]};
key <AD05> {[ y, Y, y, Y ]};
key <AD06> {[ f, F, f, F ]};
key <AD07> {[ g, G, gcedilla, Gcedilla ]};
key <AD08> {[ c, C, ccaron, Ccaron ]};
key <AD09> {[ r, R, rcedilla, Rcedilla ]};
key <AD10> {[ l, L, lcedilla, Lcedilla ]};
key <AD11> {[ slash, question, slash, abovedot ]};
key <AD12> {[ equal, plus, endash, emdash ]};
key <AC01> {[ a, A, amacron, Amacron ]};
key <AC02> {[ o, O, omacron, Omacron ]};
key <AC03> {[ e, E, emacron, Emacron ]};
key <AC04> {[ u, U, umacron, Umacron ]};
key <AC05> {[ i, I, imacron, Imacron ]};
key <AC06> {[ d, D, d, D ]};
key <AC07> {[ h, H, h, H ]};
key <AC08> {[ t, T, t, T ]};
key <AC09> {[ n, N, ncedilla, Ncedilla ]};
key <AC10> {[ s, S, scaron, Scaron ]};
key <AC11> {[ minus, underscore, backslash, questiondown ]};
key <AB01> {[ semicolon, colon, semicolon, colon ]};
key <AB02> {[ q, Q, q, Q ]};
key <AB03> {[ j, J, j, J ]};
key <AB04> {[ k, K, kcedilla, Kcedilla ]};
key <AB05> {[ x, X, x, X ]};
key <AB06> {[ b, B, b, B ]};
key <AB07> {[ m, M, m, M ]};
key <AB08> {[ w, W, w, W ]};
key <AB09> {[ v, V, v, V ]};
key <AB10> {[ z, Z, zcaron, Zcaron ]};
key <BKSL> {[ backslash, bar, grave, breve ]};
key <SPCE> {[ space, space, space, space ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys modifier_keys
xkb_symbols "ykeydvorak" {
include "lv(dvorak)"
name[Group1]= "Latvian (Dvorak, with Y)";
key <AD05> {[ISO_Level3_Latch, ISO_Level3_Latch, y, Y]};
key <SPCE> {[space, space, y, Y]};
modifier_map Mod5 { <AD05> };
};
partial alphanumeric_keys modifier_keys
xkb_symbols "minuskeydvorak" {
include "lv(dvorak)"
name[Group1]= "Latvian (Dvorak, with minus)";
key <AC11> {[ISO_Level3_Latch, ISO_Level3_Latch, minus, underscore]};
key <SPCE> {[space, space, minus, underscore]};
modifier_map Mod5 { <AC11> };
};
// US Programmer Dvorak-compatible Latvian layout
// https://www.kaufmann.no/roland/dvorak/
partial alphanumeric_keys modifier_keys
xkb_symbols "dvorakprogr" {
include "lv(dvorak)"
name[Group1]= "Latvian (programmer Dvorak)";
key <TLDE> {[ dollar, asciitilde, EuroSign, cent ]};
key <AE01> {[ ampersand, percent, acute, asciitilde ]};
key <AE02> {[ bracketleft, 7, onesuperior, twosuperior ]};
key <AE03> {[ braceleft, 5, guillemotleft, leftdoublequotemark ]};
key <AE04> {[ braceright, 3, guillemotright, rightdoublequotemark ]};
key <AE05> {[ parenleft, 1, onehalf, threeeighths ]};
key <AE06> {[ equal, 9, threequarters, fiveeighths ]};
key <AE07> {[ asterisk, 0, degree, copyright ]};
key <AE08> {[ parenright, 2, endash, emdash ]};
key <AE09> {[ plus, 4, plusminus, section ]};
key <AE10> {[ bracketright, 6, registered, trademark ]};
key <AE11> {[ exclam, 8, exclam, exclamdown ]};
key <AE12> {[ numbersign, grave, Greek_alpha, Greek_beta ]};
key <AD01> {[ semicolon, colon, semicolon, colon ]};
key <AD12> {[ at, asciicircum, at, asciicircum ]};
key <AB01> {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys modifier_keys
xkb_symbols "ykeydvorakprogr" {
include "lv(dvorakprogr)"
name[Group1]= "Latvian (programmer Dvorak, with Y)";
key <AD05> {[ISO_Level3_Latch, ISO_Level3_Latch, y, Y]};
key <SPCE> {[space, space, y, Y]};
modifier_map Mod5 { <AD05> };
};
partial alphanumeric_keys modifier_keys
xkb_symbols "minuskeydvorakprogr" {
include "lv(dvorakprogr)"
name[Group1]= "Latvian (programmer Dvorak, with minus)";
key <AC11> {[ISO_Level3_Latch, ISO_Level3_Latch, minus, underscore]};
key <SPCE> {[space, space, minus, underscore]};
modifier_map Mod5 { <AC11> };
};
// Colemak-compatible Latvian layout
// https://colemak.com/
partial alphanumeric_keys modifier_keys
xkb_symbols "colemak" {
include "lv(basic)"
name[Group1]= "Latvian (Colemak)";
key <AD03> {[ f, F, f, F ]};
key <AD04> {[ p, P, p, P ]};
key <AD05> {[ g, G, gcedilla, Gcedilla ]};
key <AD06> {[ j, J, j, J ]};
key <AD07> {[ l, L, lcedilla, Lcedilla ]};
key <AD08> {[ u, U, umacron, Umacron ]};
key <AD09> {[ y, Y, y, Y ]};
key <AD10> {[ semicolon, colon, semicolon, colon ]};
key <AC02> {[ r, R, rcedilla, Rcedilla ]};
key <AC03> {[ s, S, scaron, Scaron ]};
key <AC04> {[ t, T, t, T ]};
key <AC05> {[ d, D, d, D ]};
key <AC07> {[ n, N, ncedilla, Ncedilla ]};
key <AC08> {[ e, E, emacron, Emacron ]};
key <AC09> {[ i, I, imacron, Imacron ]};
key <AC10> {[ o, O, omacron, Omacron ]};
key <AB06> {[ k, K, kcedilla, Kcedilla ]};
include "level3(ralt_switch)"
};
partial alphanumeric_keys modifier_keys
xkb_symbols "apostrophecolemak" {
include "lv(colemak)"
name[Group1]= "Latvian (Colemak, with apostrophe)";
key <AC11> {[ISO_Level3_Latch, quotedbl, apostrophe, quotedbl]};
key <SPCE> {[space, space, apostrophe]};
modifier_map Mod5 { <AC11> };
};
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/lv(sun_type6)"
};

356
nixos/xkb/symbols/ma Normal file
View File

@@ -0,0 +1,356 @@
// Keyboard layouts for Morocco.
// Arabic AZERTY with modern Latin digits
default partial alphanumeric_keys
xkb_symbols "arabic" {
include "ara(azerty)"
name[Group1]="Arabic (Morocco)";
};
// French AZERTY keyboard used when typing French
partial alphanumeric_keys
xkb_symbols "french" {
include "fr(basic)"
name[Group1]="French (Morocco)";
};
// Clavier unicode tifinaghe de base réalisé par l'IRCAM (Institut Royal de la Culture Amazighe du Maroc) http://www.ircam.ma/
// Support des lettres unicode tifinaghe-IRCAM, néotifinaghes & touarègues.
// Les caractères tifinaghes sont accessibles en SHIFT positions pour le niveau 2, en ALTGR positions pour le niveau 3
// Polices tifinaghes Unicode à télécharger depuis :
// http://www.ircam.ma/documents/policesclavierunicode/hapaxber.ttf (licence non libre, libre téléchargement et distribution uniquement)
// Minihowto ici: http://perso.menara.ma/~kebdani/tamazgha/gnu_amazigh.html
partial alphanumeric_keys
xkb_symbols "tifinagh" {
name[Group1]="Berber (Morocco, Tifinagh)";
key <TLDE> { [ twosuperior, NoSymbol ] };
key <AE01> { [ ampersand, 1 ] };
key <AE02> { [ NoSymbol, 2, asciitilde ] };
key <AE03> { [ quotedbl, 3, numbersign ] };
key <AE04> { [apostrophe, 4, braceleft ] };
key <AE05> { [ parenleft, 5, bracketleft ] };
key <AE06> { [ minus, 6, bar ] };
key <AE07> { [ NoSymbol , 7 ] };
key <AE08> { [underscore, 8, backslash ] };
key <AE09> { [NoSymbol, 9, asciicircum ] };
key <AE10> { [ NoSymbol , 0, at ] };
key <AE11> { [parenright, degree, bracketright ] };
key <AE12> { [ equal, plus, braceright ] };
key <AD01> { [ 0x1002d30 ] };
key <AD02> { [ 0x1002d63, 0x1002d65 ] };
key <AD03> { [ 0x1002d3b, NoSymbol,0x10020ac ] };
key <AD04> { [ 0x1002d54, 0x1002d55 ] };
key <AD05> { [ 0x1002d5c, 0x1002d5f ] };
key <AD06> { [ 0x1002d62 ] };
key <AD07> { [ 0x1002d53 ] };
key <AD08> { [ 0x1002d49 ] };
key <AD09> { [ 0x1002d44 ] };
key <AD10> { [ 0x1002d43 ] };
key <AD11> { [ 0x1002d6f ] };
key <AD12> { [ dollar, sterling, currency ] };
key <AC01> { [ 0x1002d47 ] };
key <AC02> { [ 0x1002d59, 0x1002d5a ] };
key <AC03> { [ 0x1002d37, 0x1002d39 ] };
key <AC04> { [ 0x1002d3c ] };
key <AC05> { [ 0x1002d33, 0x1002d33] };
key <AC06> { [ 0x1002d40 ] };
key <AC07> { [ 0x1002d4a ] };
key <AC08> { [ 0x1002d3d, 0x1002d3d ] };
key <AC09> { [ 0x1002d4d ] };
key <AC10> { [ 0x1002d4e ] };
key <AC11> { [ NoSymbol , percent ] };
key <BKSL> { [ asterisk, mu ] };
key <AB01> { [ 0x1002d61 ] };
key <AB02> { [ 0x1002d45 ] };
key <AB03> { [ 0x1002d5b ] };
key <AB04> { [ 0x1002d56 ] };
key <AB05> { [ 0x1002d31 ] };
key <AB06> { [ 0x1002d4f ] };
key <AB07> { [ comma, question ] };
key <AB08> { [ semicolon, period ] };
key <AB09> { [ colon, slash ] };
key <AB10> { [ exclam, section ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "tifinagh-phonetic" {
include "ma(tifinagh)"
name[Group1]="Berber (Morocco, Tifinagh phonetic)";
key <AD01> {[ U2d30 ]};
key <AD02> {[ U2d63, U2d65 ]};
key <AD03> {[ U2d3b, any, U20ac ]};
key <AD04> {[ U2d54, U2d55 ]};
key <AD05> {[ U2d5c, U2d5f ]};
key <AD06> {[ U2d62 ]};
key <AD07> {[ U2d53 ]};
key <AD08> {[ U2d49 ]};
key <AD09> {[ U2d44 ]};
key <AD10> {[ U2d43 ]};
key <AC01> {[ U2d47 ]};
key <AC02> {[ U2d59, U2d5a ]};
key <AC03> {[ U2d37, U2d39 ]};
key <AC04> {[ U2d3c ]};
key <AC05> {[ U2d33 ]};
key <AC06> {[ U2d40 ]};
key <AC07> {[ U2d4a ]};
key <AC08> {[ U2d3d ]};
key <AC09> {[ U2d4d ]};
key <AC10> {[ U2d4e ]};
key <AB01> {[ U2d61, U2d6f ]};
key <AB02> {[ U2d45 ]};
key <AB03> {[ U2d5b ]};
key <AB04> {[ U2d56 ]};
key <AB05> {[ U2d31 ]};
key <AB06> {[ U2d4f ]};
include "level3(ralt_switch)"
};
// Clavier unicode tifinaghe étendu réalisé par l'IRCAM (Institut Royal de la Culture Amazighe du Maroc) http://www.ircam.ma/
// Support des lettres unicode tifinaghe-IRCAM, néotifinaghes & touarègues.
// Les caractères tifinaghes sont accessibles en SHIFT positions pour le niveau 2, en ALTGR positions pour le niveau 3
// Polices tifinaghes Unicode à télécharger depuis :
// http://www.ircam.ma/documents/policesclavierunicode/hapaxber.ttf (licence non libre, libre téléchargement et distribution uniquement)
// Minihowto ici: http://perso.menara.ma/~kebdani/tamazgha/gnu_amazigh.html
partial alphanumeric_keys
xkb_symbols "tifinagh-extended" {
name[Group1]="Berber (Morocco, Tifinagh extended)";
key <TLDE> { [ twosuperior,0x100200C ] };
key <AE01> { [ ampersand, 1 ] };
key <AE02> { [0x1002d52, 2, asciitilde ] };
key <AE03> { [ quotedbl, 3, numbersign ] };
key <AE04> { [apostrophe, 4, braceleft ] };
key <AE05> { [ parenleft, 5, bracketleft ] };
key <AE06> { [ minus, 6, bar ] };
key <AE07> { [ 0x1002d64 , 7 ] };
key <AE08> { [underscore, 8, backslash ] };
key <AE09> { [ 0x1002014, 9, asciicircum ] };
key <AE10> { [ 0x100200d, 0, at ] };
key <AE11> { [parenright, degree, bracketright ] };
key <AE12> { [ equal, plus, braceright ] };
key <AD01> { [ 0x1002d30, 0x1002d36 ] };
key <AD02> { [ 0x1002d63, 0x1002d65 ] };
key <AD03> { [ 0x1002d3b, 0x1002d57, 0x10020ac ] };
key <AD04> { [ 0x1002d54, 0x1002d55 ] };
key <AD05> { [ 0x1002d5c, 0x1002d5f ] };
key <AD06> { [ 0x1002d62, 0x1002d42 ] };
key <AD07> { [ 0x1002d53, 0x1002d4c ] };
key <AD08> { [ 0x1002d49, 0x1002d58 ] };
key <AD09> { [ 0x1002d44, 0x1002d5d ] };
key <AD10> { [ 0x1002d43, 0x1002d5e ] };
key <AD11> { [ 0x1002d6f, 0x1002d60 ] };
key <AD12> { [ dollar, sterling, currency ] };
key <AC01> { [ 0x1002d47, 0x1002d48 ] };
key <AC02> { [ 0x1002d59, 0x1002d5a ] };
key <AC03> { [ 0x1002d37, 0x1002d39 ] };
key <AC04> { [ 0x1002d3c, 0x1002d35 ] };
key <AC05> { [ 0x1002d33, 0x1002d33 ] };
key <AC06> { [ 0x1002d40, 0x1002d41 ] };
key <AC07> { [ 0x1002d4a, 0x1002d4b ] };
key <AC08> { [ 0x1002d3d, 0x1002d3d ] };
key <AC09> { [ 0x1002d4d, 0x1002d38 ] };
key <AC10> { [ 0x1002d4e, 0x1002d3a ] };
key <AC11> { [ 0x1002d51, percent ] };
key <BKSL> { [ asterisk, mu ] };
key <AB01> { [ 0x1002d61, 0x1002d3e ] };
key <AB02> { [ 0x1002d45, 0x1002d46 ] };
key <AB03> { [ 0x1002d5b, 0x1002d3f ] };
key <AB04> { [ 0x1002d56, 0x1002d34 ] };
key <AB05> { [ 0x1002d31, 0x1002d32 ] };
key <AB06> { [ 0x1002d4f, 0x1002d50 ] };
key <AB07> { [ comma, question ] };
key <AB08> { [ semicolon, period ] };
key <AB09> { [ colon, slash ] };
key <AB10> { [ exclam, section ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "tifinagh-extended-phonetic" {
include "ma(tifinagh-extended)"
name[Group1]="Berber (Morocco, Tifinagh extended phonetic)";
key <AD01> {[ U2d30 ]};
key <AD02> {[ U2d63, U2d65 ]};
key <AD03> {[ U2d3b, any, U20ac ]};
key <AD04> {[ U2d54, U2d55 ]};
key <AD05> {[ U2d5c, U2d5f ]};
key <AD06> {[ U2d62 ]};
key <AD07> {[ U2d53 ]};
key <AD08> {[ U2d49 ]};
key <AD09> {[ U2d44 ]};
key <AD10> {[ U2d43 ]};
key <AC01> {[ U2d47 ]};
key <AC02> {[ U2d59, U2d5a ]};
key <AC03> {[ U2d37, U2d39 ]};
key <AC04> {[ U2d3c ]};
key <AC05> {[ U2d33 ]};
key <AC06> {[ U2d40 ]};
key <AC07> {[ U2d4a ]};
key <AC08> {[ U2d3d ]};
key <AC09> {[ U2d4d ]};
key <AC10> {[ U2d4e ]};
key <AB01> {[ U2d61 ]};
key <AB02> {[ U2d45 ]};
key <AB03> {[ U2d5b ]};
key <AB04> {[ U2d56 ]};
key <AB05> {[ U2d31 ]};
key <AB06> {[ U2d4f ]};
include "level3(ralt_switch)"
};
// Tifinagh keyboard; improved from the IRCAM layout to make all
// tifinagh chars in unicode accessible (in shift positions for most
// touareg letters; in altgr position for spirants.
partial alphanumeric_keys
xkb_symbols "tifinagh-alt" {
name[Group1]="Berber (Morocco, Tifinagh alt.)";
key <TLDE> { [ twosuperior, asciitilde ] };
key <AE01> { [ ampersand, 1 ] };
key <AE02> { [asciitilde, 2, asciitilde ] };
key <AE03> { [ quotedbl, 3, numbersign ] };
key <AE04> { [apostrophe, 4, braceleft ] };
key <AE05> { [ parenleft, 5, bracketleft ] };
key <AE06> { [ minus, 6, bar ] };
key <AE07> { [ grave, 7, grave ] };
key <AE08> { [underscore, 8, backslash ] };
key <AE09> { [asciicircum, 9, asciicircum ] };
key <AE10> { [ at, 0, at ] };
key <AE11> { [parenright, degree, bracketright ] };
key <AE12> { [ equal, plus, braceright ] };
key <AD01> { [ 0x1002d30 ] };
key <AD02> { [ 0x1002d63, 0x1002d65, 0x1002d64 ] };
key <AD03> { [ 0x1002d3b ] };
key <AD04> { [ 0x1002d54, 0x1002d55 ] };
key <AD05> { [ 0x1002d5c, 0x1002d5f, 0x1002d5d ] };
key <AD06> { [ 0x1002d62 ] };
key <AD07> { [ 0x1002d53 ] };
key <AD08> { [ 0x1002d49 ] };
key <AD09> { [ 0x1002d44 ] };
key <AD10> { [ 0x1002d43, 0x1002d52 ] };
key <AD11> { [ dead_circumflex ] };
key <AD12> { [ dollar, sterling ] };
key <AC01> { [ 0x1002d47, 0x1002d48 ] };
key <AC02> { [ 0x1002d59, 0x1002d5a ] };
key <AC03> { [ 0x1002d37, 0x1002d39, 0x1002d38, 0x1002d3a ] };
key <AC04> { [ 0x1002d3c ] };
key <AC05> { [ 0x1002d33, 0x1002d36, 0x1002d34, 0x1002d35 ] };
key <AC06> { [ 0x1002d40, 0x1002d42, 0x1002d41 ] };
key <AC07> { [ 0x1002d4a, 0x1002d4c, 0x1002d4b ] };
key <AC08> { [ 0x1002d3d, 0x1002d3e, 0x1002d3f ] };
key <AC09> { [ 0x1002d4d ] };
key <AC10> { [ 0x1002d4e ] };
key <AC11> { [ percent ] };
key <BKSL> { [ asterisk, mu ] };
key <AB01> { [ 0x1002d61, 0x1002d6f, 0x1002d60 ] };
key <AB02> { [ 0x1002d45, 0x1002d46 ] };
key <AB03> { [ 0x1002d5b, 0x1002d5e ] };
key <AB04> { [ 0x1002d56, 0x1002d57, 0x1002d58 ] };
key <AB05> { [ 0x1002d31, 0x1002d31, 0x1002d32 ] };
key <AB06> { [ 0x1002d4f, 0x1002d50, 0x1002d51 ] };
key <AB07> { [ comma, question ] };
key <AB08> { [ semicolon, period ] };
key <AB09> { [ colon, slash ] };
key <AB10> { [ exclam, section ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "tifinagh-alt-phonetic" {
include "ma(tifinagh-alt)"
name[Group1]="Berber (Morocco, Tifinagh phonetic, alt.)";
key <AD01> {[ U2d30 ]};
key <AD02> {[ U2d63, U2d65, U2d64 ]};
key <AD03> {[ U2d3b ]};
key <AD04> {[ U2d54, U2d55 ]};
key <AD05> {[ U2d5c, U2d5f, U2d5d ]};
key <AD06> {[ U2d62 ]};
key <AD07> {[ U2d53 ]};
key <AD08> {[ U2d49 ]};
key <AD09> {[ U2d44 ]};
key <AD10> {[ U2d43, U2d52 ]};
key <AC01> {[ U2d47, U2d48 ]};
key <AC02> {[ U2d59, U2d5a ]};
key <AC03> {[ U2d37, U2d39, U2d38, U2d3a ]};
key <AC04> {[ U2d3c ]};
key <AC05> {[ U2d33, U2d36, U2d34, U2d35 ]};
key <AC06> {[ U2d40, U2d42, U2d41 ]};
key <AC07> {[ U2d4a, U2d4c, U2d4b ]};
key <AC08> {[ U2d3d, U2d3e, U2d3f ]};
key <AC09> {[ U2d4d ]};
key <AC10> {[ U2d4e ]};
key <AB01> {[ U2d61, U2d6f, U2d60 ]};
key <AB02> {[ U2d45, U2d46 ]};
key <AB03> {[ U2d5b, U2d5e ]};
key <AB04> {[ U2d56, U2d57, U2d58 ]};
key <AB05> {[ U2d31, U2d31, U2d32 ]};
key <AB06> {[ U2d4f, U2d50, U2d51 ]};
include "level3(ralt_switch)"
};
// Latin Tarifit keyboard. Used by the riffian community
// Tarifit characters are accessed using ALTGR
partial alphanumeric_keys
xkb_symbols "rif" {
// Tarifit keyboard (QWERTY varient)
// By Ilyahoo Proshel <ip@ipshel.com> 2021
// Only "ʷ ɛ ṭ ḍ γ ḥ ẓ ṣ" are supported by Rif Community.
include "us"
name[Group1]= "Tarifit";
key <AD02> {[ w, W, U02B7 ]}; // ʷ
key <AD03> {[ e, E, U025B, U0190 ]}; // e E ɛ Ɛ
key <AD05> {[ t, T, U1E6D, U1E6C ]}; // t T ṭ Ṭ
key <AC02> {[ s, S, U1E63, U1E62 ]}; // s S ṣ Ṣ
key <AC03> {[ d, D, U1E0D, U1E0C ]}; // d D ḍ Ḍ
key <AC05> {[ g, G, U0263, U0194 ]}; // g G ɣ Ɣ
key <AC06> {[ h, H, U1E25, U1E24 ]}; // h H ḥ Ḥ
key <AB01> {[ z, Z, U1E93, U1E92 ]}; // z Z ẓ Ẓ
include "level3(ralt_switch)"
};

View File

@@ -0,0 +1,151 @@
//
// Keyboard modification for Apple keyboards
//
default partial modifier_keys
xkb_symbols "extended" {
key <KPEQ> { [ KP_Equal ] };
// The key in the PC's Insert position is sometimes engraved Help (at least
// in Switzerland and Great Britain), with Insert sometimes above. But in the
// US and Canada, it remains Insert. So this should probably be an XkbOption,
// but I have to do more research.
// Perhaps Help should be the primary symbol with Insert in the 1st shift-level
// key <INS> { [ Help, Insert ] };
// The keys next to F12, labeled F13, F14, & F15 generate codes that XFree86
// claims not to generate. I think they should be equivalent to the PC keys
// Print Screen / SysRq, Scroll Lock, and Pause. Linux kernel bug?
// key <PRSC> { [ F13 ] }; // should be keycode 93 or
// key <FK13> { [ F13 ] }; // should be keycode 118
// key <SCLK> { [ F14 ] }; // should be keycode 123 or
// key <FK14> { [ F14 ] }; // should be keycode 119
// key <PAUS> { [ F15 ] }; // should be keycode 127 or
// key <FK15> { [ F15 ] }; // should be keycode 120
};
partial modifier_keys
xkb_symbols "laptop" {
include "macintosh_vndr/apple(extended)"
// The real numlock key on the iBook (shared with F5) works internally to
// the keyboard. It illuminates the Num_Lock led and locks the fn-key to
// type only the keypad keys on the letter keys (U=4, I=5, O=6, P=*, etc.).
// The key in the Num_lock position is engraved with Clear.
override key <NMLK> { [ Clear ] };
// The key engraved Delete sends BKSP. To get Delete, use Shift-Delete
override key <BKSP> { [ BackSpace, Delete ] };
// These keyboards only generate a <RALT> when pressing fn+Alt. This makes
// it impossible to get to the third shift level on keys that are on
// the fn-keypad, so use the Enter key (right of <SPC>) for Mode_switch,
// and use fn+Enter (Apple's code for Menu) for KP_Enter.
replace key <KPEN> { [ ISO_Level3_Shift ] };
modifier_map Mod5 { ISO_Level3_Shift };
// Linux kernel bug with Menu on macs means this does not work yet
// replace key <MENU> { [ KP_Enter ] }; // should be keycode 117
};
partial modifier_keys
xkb_symbols "laptop_bad_switch" {
// Kept for backward compatibility
include "macintosh_vndr/apple(laptop)"
};
// Long Aluminium Keyboards
partial function_keys
xkb_symbols "alukbd" {
// The base is a inet PC keyboard
include "pc"
// Additional Fxx keys
key <FK13> { [ F13 ] };
key <FK14> { [ F14 ] };
key <FK15> { [ F15 ] };
key <FK16> { [ F16 ] };
key <FK17> { [ F17 ] };
key <FK18> { [ F18 ] };
key <FK19> { [ F19 ] };
// On aluminium keyboards, Num_Lock is replace by Clear
replace key <NMLK> { [ Clear ] };
// CAPS key is always Caps_Lock, even for JIS keyboards
replace key <CAPS> { [ Caps_Lock ] };
// F1..F12 are multimedia keys when used with the 'Fn' key
// Make those multimedia actions available via ISO_Level3_Shift too,
// it is useful when the Fn key is remapped to something else (e.g. Insert)
key <FK01> {
type= "FOUR_LEVEL_X",
symbols[Group1]= [ NoSymbol, XF86KbdBrightnessDown, NoSymbol, XF86_Switch_VT_1 ]
};
key <FK02> {
type= "FOUR_LEVEL_X",
symbols[Group1]= [ NoSymbol, XF86KbdBrightnessUp, NoSymbol, XF86_Switch_VT_2 ]
};
key <FK03> {
type= "FOUR_LEVEL_X",
symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_3 ]
};
key <FK04> {
type= "FOUR_LEVEL_X",
symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_4 ]
};
key <FK05> {
type= "FOUR_LEVEL_X",
symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_5 ]
};
key <FK06> {
type= "FOUR_LEVEL_X",
symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_6 ]
};
key <FK07> {
type= "FOUR_LEVEL_X",
symbols[Group1]= [ NoSymbol, XF86AudioPrev, NoSymbol, XF86_Switch_VT_7 ]
};
key <FK08> {
type= "FOUR_LEVEL_X",
symbols[Group1]= [ NoSymbol, XF86AudioPlay, NoSymbol, XF86_Switch_VT_8 ]
};
key <FK09> {
type= "FOUR_LEVEL_X",
symbols[Group1]= [ NoSymbol, XF86AudioNext, NoSymbol, XF86_Switch_VT_9 ]
};
key <FK10> {
type= "FOUR_LEVEL_X",
symbols[Group1]= [ NoSymbol, XF86AudioMute, NoSymbol, XF86_Switch_VT_10 ]
};
key <FK11> {
type= "FOUR_LEVEL_X",
symbols[Group1]= [ NoSymbol, XF86AudioLowerVolume, NoSymbol, XF86_Switch_VT_11 ]
};
key <FK12> {
type= "FOUR_LEVEL_X",
symbols[Group1]= [ NoSymbol, XF86AudioRaiseVolume, NoSymbol, XF86_Switch_VT_12 ]
};
};
// Aluminium Keyboard: make F13, F14, F15 PC-ish (Print, Scroll_Lock, Pause)
partial function_keys keypad_keys
xkb_symbols "alupckeys" {
key <FK13> {
type= "PC_ALT_LEVEL2",
symbols[Group1]= [ Print, Sys_Req ]
};
key <FK14> { [ Scroll_Lock ] };
key <FK15> {
type= "PC_CONTROL_LEVEL2",
symbols[Group1]= [ Pause, Break ]
};
override key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
};
partial
xkb_symbols "jp_oadg109a" {
replace key <AB11> { [ backslash, underscore ] };
};
partial
xkb_symbols "jp_pc106" {
replace key <AB11> { [ backslash, bar ] };
};

View File

@@ -0,0 +1,96 @@
//
// 03.01.2003
// Andreas Tobler <a.tobler@schweiz.ch>
// modified for Swiss German Apple Extended Keyboard II
default
partial alphanumeric_keys
xkb_symbols "extended" {
name[Group1]= "Switzerland - German, Mac";
key <AE01> { [ 1, plus, plusminus, infinity ] };
key <AE02> { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] };
key <AE03> { [ 3, asterisk, numbersign, less ] };
key <AE04> { [ 4, ccedilla, Ccedilla, slash ] };
key <AE05> { [ 5, percent, bracketleft ] };
key <AE06> { [ 6, ampersand, bracketright ] };
key <AE07> { [ 7, slash, bar, backslash ] };
key <AE08> { [ 8, parenleft, braceleft, Ograve ] };
key <AE09> { [ 9, parenright, braceright, Ocircumflex ] };
key <AE10> { [ 0, equal, notequal, Uacute ] };
key <AE11> { [ apostrophe, question, questiondown, NoSymbol ] };
key <AE12> { [ dead_circumflex,dead_grave, dead_acute, asciicircum ] };
key <AD01> { [ q, Q, oe, OE ] };
key <AD02> { [ w, W, Greek_SIGMA, Aacute ] };
key <AD03> { [ e, E, EuroSign, Ediaeresis ] };
key <AD04> { [ r, R, registered, Egrave ] };
key <AD05> { [ t, T, dagger, Icircumflex ] };
key <AD06> { [ z, Z, Greek_OMEGA, Iacute ] };
key <AD07> { [ u, U, degree, Ugrave ] };
key <AD08> { [ i, I, exclamdown, idotless ] };
key <AD09> { [ o, O, oslash, Oslash ] };
key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
key <AD11> { [ udiaeresis, egrave, section, ydiaeresis ] };
key <AD12> { [ dead_diaeresis, exclam, grave, apostrophe ] };
key <AC01> { [ a, A, aring, Aring ] };
key <AC02> { [ s, S, ssharp, U1E9E ] };
// ligature fl
key <AC03> { [ d, D, Greek_sigma, NoSymbol ] };
// partialderivative is not available here att
key <AC04> { [ f, F, function, doubledagger ] };
key <AC05> { [ g, G, at, comma ] };
key <AC06> { [ h, H, ordfeminine, periodcentered ] };
key <AC07> { [ j, J, masculine, eth ] };
key <AC08> { [ k, K, Greek_DELTA, macron ] };
key <AC09> { [ l, L, notsign, caret ] };
key <AC10> { [ odiaeresis, eacute, cent, breve ] };
key <AC11> { [ adiaeresis, agrave, ae, AE ] };
key <AB01> { [ y, Y, yen, Ydiaeresis ] };
key <AB02> { [ x, X, similarequal, trademark ] };
key <AB03> { [ c, C, copyright, NoSymbol ] };
key <AB04> { [ v, V, radical, diamond ] };
key <AB05> { [ b, B, integral, NoSymbol ] };
key <AB06> { [ n, N, dead_tilde, enopencircbullet ] };
// to be fixed att
key <AB07> { [ m, M, mu, dead_abovering ] };
// not sure att
key <AB08> { [ comma, semicolon, guillemotleft, guillemotright ] };
key <AB09> { [ period, colon, ellipsis, division ] };
key <AB10> { [ minus, underscore, hyphen, emdash ] };
key <TLDE> { [ section, degree, NoSymbol, NoSymbol ] };
// ligature fi // per mille
key <SPCE> { [ space, nobreakspace, nobreakspace ] };
key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] };
key <BKSL> { [ dollar, sterling, paragraph, enfilledcircbullet ] };
include "kpdl(comma)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "de" {
include "macintosh_vndr/ch(extended)"
};
partial alphanumeric_keys
xkb_symbols "fr" {
include "macintosh_vndr/ch(extended)"
name[Group1]= "Switzerland - French, Mac";
override key <AD11> {
[ egrave, udiaeresis, bracketleft ]
};
override key <AC10> {
[ eacute, odiaeresis ]
};
override key <AC11> {
[ agrave, adiaeresis, braceleft ]
};
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "macintosh_vndr/ch(fr)" // for consistent naming
};

View File

@@ -0,0 +1,94 @@
// olh@suse.de very close to MacOS map
default partial alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple US/ASCII
// keyboard and a simple German keyboard.
include "latin"
name[Group1]= "Germany - Mac";
key <TLDE> { [ dead_circumflex, degree, notsign ] };
key <AE01> { [ 1, exclam, exclamdown, at ] };
key <AE02> { [ 2, quotedbl, twosuperior ] };
key <AE03> { [ 3, section, threesuperior,sterling ] };
key <AE04> { [ 4, dollar, onequarter, currency ] };
key <AE05> { [ 5, percent, bracketleft ] };
key <AE06> { [ 6, ampersand, bracketright ] };
key <AE07> { [ 7, slash, bar, backslash ] };
key <AE08> { [ 8, parenleft, braceleft, asciitilde ] };
key <AE09> { [ 9, parenright, braceright ] };
key <AE10> { [ 0, equal, braceright, degree ] };
key <AE11> { [ ssharp, question, backslash, questiondown ] };
key <AE12> { [ dead_acute, dead_grave, dead_cedilla ] };
key <AD01> { [ q, Q, guillemotleft,guillemotright ] };
key <AD03> { [ e, E, EuroSign ] };
key <AD04> { [ r, R, registered ] };
key <AD05> { [ t, T ] };
key <AD06> { [ z, Z ] };
key <AD07> { [ u, U, diaeresis, Aacute ] };
key <AD08> { [ i, I, slash, Ucircumflex ] };
key <AD09> { [ o, O, oslash, Oslash ] };
key <AD11> { [ udiaeresis, Udiaeresis, periodcentered, degree ] };
key <AD12> { [ plus, asterisk, asciitilde ] };
key <AC01> { [ a, A, aring, Aring ] };
key <AC04> { [ f, F ] };
key <AC05> { [ g, G, copyright ] };
key <AC06> { [ h, H, ordfeminine ] };
key <AC09> { [ l, L, at ] };
key <AC10> { [ odiaeresis, Odiaeresis, dead_acute ] };
key <AC11> { [ adiaeresis, Adiaeresis, dead_circumflex ] };
key <LSGT> { [ less, greater, bar ] };
key <AB01> { [ y, Y, guillemotleft, less ] };
key <AB04> { [ v, V, doublelowquotemark, leftsinglequotemark ] };
key <AB05> { [ b, B, rightdoublequotemark, leftdoublequotemark ] };
key <AB06> { [ n, N, asciitilde ] };
key <AB07> { [ m, M, mu ] };
key <AB08> { [ comma, semicolon ] };
key <AB09> { [ period, colon, periodcentered, division ] };
key <AB10> { [ minus, underscore ] };
key <BKSL> { [ numbersign, apostrophe, dead_grave ] };
include "kpdl(comma)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "Sundeadkeys" {
// modify the default German layout to use Sun dead keys
include "macintosh_vndr/de(basic)"
name[Group1]= "Germany - Mac, Sun dead keys";
key <TLDE> {[ dead_circumflex, degree, notsign ]};
key <AE12> {[ dead_acute, dead_grave, dead_cedilla ]};
key <AD11> {[ udiaeresis, Udiaeresis, dead_diaeresis ]};
key <AD12> {[ plus, asterisk, dead_tilde, dead_macron ]};
key <AC10> {[ odiaeresis, Odiaeresis, dead_acute ]};
key <AC11> {[ adiaeresis, Adiaeresis, dead_circumflex ]};
key <BKSL> {[ numbersign, acute, dead_grave ]};
};
partial alphanumeric_keys
xkb_symbols "sundeadkeys" {
include "macintosh_vndr/de(Sundeadkeys)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
// modify the default German layout to not have any dead keys
include "macintosh_vndr/de(basic)"
name[Group1]= "Germany - Mac, no dead keys";
key <TLDE> { [ asciicircum, degree, notsign ] };
key <AE12> { [ acute, grave, cedilla ] };
key <AD11> { [ udiaeresis, Udiaeresis, diaeresis ] };
key <AD12> { [ plus, asterisk, asciitilde, macron ] };
key <AC10> { [ odiaeresis, Odiaeresis, acute ] };
key <AC11> { [ adiaeresis, Adiaeresis, asciicircum ] };
key <BKSL> { [ numbersign, apostrophe, grave ] };
};

View File

@@ -0,0 +1,66 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple en_US
// keyboard and a Danish keyboard with dead key support
// and all of ISO-8859-1 characters available.
include "latin"
name[Group1]= "Denmark - Mac";
key <TLDE> { [ onehalf, section, threequarters, paragraph ]};
key <LSGT> { [ less, greater, backslash, notsign ]};
key <SPCE> { [ space, space, nobreakspace, nobreakspace ]};
key <AE01> { [ 1, exclam, exclamdown, onesuperior ]};
key <AE02> { [ 2, quotedbl, at, twosuperior ]};
key <AE03> { [ 3, numbersign, sterling, threesuperior ]};
key <AE04> { [ 4, EuroSign, dollar, onequarter ]};
key <AE05> { [ 5, percent, NoSymbol, cent ]};
key <AE06> { [ 6, ampersand, yen, NoSymbol ]};
key <AE07> { [ 7, slash, braceleft, division ]};
key <AE08> { [ 8, parenleft, bracketleft, guillemotleft ]};
key <AE09> { [ 9, parenright, bracketright, guillemotright ]};
key <AE10> { [ 0, equal, braceright, degree ]};
key <AE11> { [ plus, question, plusminus, questiondown ]};
key <AE12> { [ dead_acute, dead_grave, bar, brokenbar ]};
key <AB03> { [ c, C, copyright, NoSymbol ]};
key <AB08> { [ comma, semicolon, dead_cedilla, dead_ogonek ]};
key <AB09> { [ period, colon, periodcentered, dead_abovedot ]};
key <AB10> { [ minus, underscore, hyphen, macron ]};
key <AC01> { [ a, A, ordfeminine, masculine ]};
key <AC03> { [ d, D, eth, ETH ]};
key <AC10> { [ ae, AE ]};
key <AC11> { [ oslash, Oslash ]};
key <AD03> { [ e, E, EuroSign, cent ]};
key <AD04> { [ r, R, registered, NoSymbol ]};
key <AD05> { [ t, T, thorn, THORN ]};
key <AD08> { [ i, I, NoSymbol, NoSymbol ]};
key <AD09> { [ o, O, oe, OE ]};
key <AD11> { [ aring, Aring ]};
key <AD12> { [ dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ]};
key <BKSL> { [ apostrophe, asterisk, dead_doubleacute, multiply ]};
include "eurosign(e)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "macintosh_vndr/dk(basic)"
name[Group1]= "Denmark - Mac, no dead keys";
key <AE12> { [ acute, grave, bar, ogonek ] };
key <AD12> { [ diaeresis, asciicircum, asciitilde, dead_macron ] };
};
partial alphanumeric_keys
xkb_symbols "macbookpro" {
include "level3(win_switch)"
include "macintosh_vndr/dk(basic)"
name[Group1]= "Denmark - Mac, MacBook Pro";
key <BKSL> { [apostrophe, asterisk, at, at ] };
key <TLDE> { [ dollar, section, dollar, dollar ] };
};

View File

@@ -0,0 +1,11 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
include "macintosh_vndr/se(basic)" // for consistent naming
name[Group1]= "Finland - Mac";
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "macintosh_vndr/se(basic)" // for consistent naming
name[Group1]= "Finland - Mac, no dead keys";
};

View File

@@ -0,0 +1,102 @@
// Marc.Shapiro@inria.fr 19-sep-1998
// modifications : Etienne Herlent <eherlent@linux-france.org> june 2000
// adapted to the new input layer :
// Martin Costabel <costabel@wanadoo.fr> 3-jan-2001
//////////////////////////////////////////////////////////////////
// Petites Modification le juillet 2005 par Bin Zhang <bb.zhang@free.fr> :
// 1) La ligne 83 : remplacer les deux "VoidSymbol" par oe et OE
// 2) La ligne 89 : remplacer "VoidSymbol" par "EuroSign"
// ( 1) et 2) fonctionnent sous UTF-8, mais pas sous iso-8859-1. )
// 3) Remplacer la ligne 148 par la ligne 149 pour que la touche Alt_L
// (la touche Apple-Pomme) fonctionne correctement sous Xorg, une idée
// motivée par http://www.linux-france.org/macintosh/clavier_gentoo.html
//////////////////////////////////////////////////////////////////
// This map is an almost-complete mapping of the standard French
// MacIntosh keyboard under Xwindows. I tried to remain as faithful
// as possible to the Mac meaning of each key. I did this entirely by
// hand and by intuition, relying on the Clavier (Keyboard?) Desktop
// Accessory for the Mac meaning of keys, and on reading keysymdef.h
// to intuit the corresponding X names. Lacking proper documentation,
// I may have made some mistakes.
// Entries marked CHECK are particularly uncertain
// Entries marked MISSING mark Mac characters for which I was unable
// to find a corresponding keysym. (Some for sure don't: e.g. the
// Apple mark and the oe/OE character; others I may have simply not
// found.)
default
xkb_symbols "extended" {
name[Group1]= "France - Mac";
key <TLDE> { [ at, numbersign, periodcentered, ydiaeresis ] };
key <AE01> { [ ampersand, 1, VoidSymbol, dead_acute ] }; // MISSING: Apple
key <AE02> { [ eacute, 2, ediaeresis, Eacute ] };
key <AE03> { [ quotedbl, 3, leftdoublequotemark, rightdoublequotemark ] };
key <AE04> { [ apostrophe, 4, leftsinglequotemark, rightsinglequotemark ] };
key <AE05> { [ parenleft, 5, braceleft, bracketleft ] };
key <AE06> { [ section, 6, paragraph, aring ] };
key <AE07> { [ egrave, 7, guillemotleft, guillemotright] };
key <AE08> { [ exclam, 8, exclamdown, Ucircumflex ] };
key <AE09> { [ ccedilla, 9, Ccedilla, Aacute ] };
key <AE10> { [ agrave, 0, oslash, Oslash ] };
key <AE11> { [ parenright, degree, braceright, bracketright ] };
key <AE12> { [ minus, underscore, emdash, endash ] };
key <AD01> { [ a, A, ae, AE ] };
key <AD02> { [ z, Z, Acircumflex, Aring ] };
key <AD03> { [ e, E, ecircumflex, Ecircumflex ] };
key <AD04> { [ r, R, registered, currency ] };
key <AD05> { [ t, T, dagger, trademark ] };
key <AD06> { [ y, Y, Uacute, Ydiaeresis ] };
key <AD07> { [ u, U, masculine, ordfeminine ] };
key <AD08> { [ i, I, icircumflex, idiaeresis ] };
key <AD09> { [ o, O, oe, OE ] };
key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
key <AD11> { [dead_circumflex,dead_diaeresis,ocircumflex, Ocircumflex ] };
key <AD12> { [ dollar, asterisk, EuroSign, yen ] };
key <AC01> { [ q, Q, doubledagger, Greek_OMEGA ] };
key <AC02> { [ s, S, Ograve, Greek_SIGMA ] };
key <AC03> { [ d, D, Greek_delta, Greek_DELTA ] };
key <AC04> { [ f, F, U0192, periodcentered ] }; // ƒ ·
key <AC05> { [ g, G, UFB01, UFB02 ] }; // fi fl
key <AC06> { [ h, H, Igrave, Icircumflex ] };
key <AC07> { [ j, J, Idiaeresis, Iacute ] };
key <AC08> { [ k, K, Egrave, Ediaeresis ] };
key <AC09> { [ l, L, notsign, bar ] };
key <AC10> { [ m, M, mu, Oacute ] };
key <AC11> { [ ugrave, percent, Ugrave, permille ] };
key <BKSL> { [ dead_grave, sterling, at, numbersign ] };
key <LSGT> { [ less, greater, lessthanequal, greaterthanequal] };
key <AB01> { [ w, W, U2039, U203A ] }; //
key <AB02> { [ x, X, similarequal, U2044 ] }; // ≃
key <AB03> { [ c, C, copyright, cent ] };
key <AB04> { [ v, V, diamond, radical ] }; // CHECK diamond
key <AB05> { [ b, B, ssharp, integral ] };
key <AB06> { [ n, N, dead_tilde, asciitilde ] };
key <AB07> { [ comma, question, infinity, questiondown ] };
key <AB08> { [ semicolon, period, ellipsis, periodcentered ] };
key <AB09> { [ colon, slash, division, backslash ] };
key <AB10> { [ equal, plus, notequal, plusminus ] };
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
include "level3(ralt_switch)"
};
xkb_symbols "nodeadkeys" {
include "macintosh_vndr/fr(extended)"
name[Group1]= "France - Mac, no dead keys";
key <AE01> { [ ampersand, 1, VoidSymbol, acute ] }; // MISSING: Apple
key <AD11> { [asciicircum,diaeresis,ocircumflex, Ocircumflex ] };
key <BKSL> { [ grave, sterling, at, numbersign ] };
key <AB06> { [ n, N, asciitilde, dead_tilde ] };
};

View File

@@ -0,0 +1,17 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple en_US
// keyboard and a very simple U.K. keyboard layout
include "macintosh_vndr/us"
name[Group1]= "United Kingdom - Mac";
key <AE02> { [ 2, at, EuroSign ] };
key <AE03> { [ 3, sterling, numbersign ] };
key <TLDE> { [ section, plusminus ] };
key <LSGT> { [ grave, asciitilde ] };
include "level3(ralt_switch)"
};

View File

@@ -0,0 +1,127 @@
//
// This file describes the differences between a Macintosh US Extended
// keymap and an Icelandic keyboard layout in the style of Mac OS and Mac OS X
//
// Copyright (C) 2004, 2006 Ævar Arnfjörð Bjarmason <avarab@gmail.com>
//
// Permission to use, copy, modify, distribute, and sell this software and its
// documentation for any purpose is hereby granted without fee, provided that
// the above copyright notice appear in all copies and that both that
// copyright notice and this permission notice appear in supporting
// documentation.
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.
//
// Except as contained in this notice, the name of a copyright holder shall
// not be used in advertising or otherwise to promote the sale, use or
// other dealings in this Software without prior written authorization of
// the copyright holder.
//
// = HISTORY
// * 2004-09-28:
// Initial cleanroom writing of the keymap, I just booted Mac OS X, opened
// TextEdit.app and wrote down what the value produced by each key was when I
// pressed it, a for a, A for shift + a, å for lalt + a etc and made the
// keymap from that information
//
// * 2006-01-14:
// Revised the comments in the file
//
// = NOTES
// * 20 characters in this keymap have no named character defined in
// include/keysymdef.h and as a result their Unicode code points in
// hexadecimal are listed here, these can be generated with the following
// perl command:
// $ perl -CA -e 'printf "U%x\n", ord shift' Æ
// and converted back like:
// $ perl -CO -le '$_=shift;s/[^a-f0-9]//ig;print chr hex' Uc6
// * The Apple logo appears twice on this keymap like the Mac OS and Mac OS X
// keymaps. In the MacRoman encoding it has the code point 0xF0 (240) but it
// has no assigned code point in Unicode, the code point Apple uses for it is
// U+F8FF (63743) which is in the BMP's Private Use Area (U+E000U+F8FF)
// * This keymap has only been tested on a PowerBook6,5 (iBook G4) but it
// should work on other Apple laptop models which use the same keyboard
// layout. It will probably work on standard sized keyboards with little or
// no modification but it might not support them fully, please report if
// you're able to get it running with such a keyboard
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Iceland - Mac";
//-- Row 5 (E) --//
key <TLDE> { [ sterling, section, UF8FF, apostrophe ] };
key <AE01> { [ 1, exclam, exclamdown, VoidSymbol ] };
key <AE02> { [ 2, quotedbl, at, VoidSymbol ] };
key <AE03> { [ 3, numbersign, U2122, sterling ] };
key <AE04> { [ 4, dollar, U00A2, EuroSign ] };
key <AE05> { [ 5, percent, permille, infinity ] };
key <AE06> { [ 6, ampersand, asciicircum, U2044 ] };
key <AE07> { [ 7, slash, backslash, U00F7 ] };
key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
key <AE09> { [ 9, parenright, bracketright, braceright ] };
key <AE10> { [ 0, equal, U2260, U2248 ] };
key <AE11> { [ odiaeresis, Odiaeresis, oslash, Oslash ] };
key <AE12> { [ minus, underscore, endash, emdash ] };
//-- Row 4 (D) --//
key <AD01> { [ q, Q, paragraph, VoidSymbol ] };
key <AD02> { [ w, W, U2211, VoidSymbol ] };
key <AD03> { [ e, E, dead_grave, VoidSymbol ] };
key <AD04> { [ r, R, registered, VoidSymbol ] };
key <AD05> { [ t, T, degree, VoidSymbol ] };
key <AD06> { [ y, Y, yen, VoidSymbol ] };
key <AD07> { [ u, U, dead_diaeresis, VoidSymbol ] };
key <AD08> { [ i, I, U0131, U00AA ] };
key <AD09> { [ o, O, dead_circumflex,U00BA ] };
key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
key <AD11> { [ eth, ETH, U201e, U201c ] };
key <AD12> { [ apostrophe, question, questiondown, U00B7 ] };
//-- Row 3 (C) --//
key <AC01> { [ a, A, aring, Aring ] };
key <AC02> { [ s, S, ssharp, abovedot ] };
key <AC03> { [ d, D, U2202, U2DA ] };
key <AC04> { [ f, F, U192, macron ] };
key <AC05> { [ g, G, copyright, breve ] };
key <AC06> { [ h, H, bar, VoidSymbol ] };
key <AC07> { [ j, J, U2206, U2dd ] };
key <AC08> { [ k, K, U00AC, VoidSymbol ] };
key <AC09> { [ l, L, U2026, caron ] };
key <AC10> { [ ae, AE, oe, OE ] };
key <AC11> { [ dead_acute, dead_diaeresis, U201A, U2018 ] };
key <BKSL> { [ plus, asterisk, U2022, plusminus ] };
//-- Row 2 (B) --//
key <LSGT> { [ less, greater, section, UF8FF ] };
key <AB01> { [ z, Z, U3A9, VoidSymbol ] };
key <AB02> { [ x, X, asciitilde, VoidSymbol ] };
key <AB03> { [ c, C, ccedilla, Ccedilla ] };
key <AB04> { [ v, V, U221A, U25CA ] };
key <AB05> { [ b, B, U222B, VoidSymbol ] };
key <AB06> { [ n, N, dead_tilde, VoidSymbol ] };
key <AB07> { [ m, M, U00B5, VoidSymbol ] };
key <AB08> { [ comma, semicolon, lessthanequal, guillemotleft ] };
key <AB09> { [ period, colon, greaterthanequal,guillemotright ] };
key <AB10> { [ thorn, THORN, U2019, U201d ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "macintosh_vndr/is(basic)" // for consistent naming
name[Group1]= "Iceland - Mac, no dead keys";
};

View File

@@ -0,0 +1,60 @@
default
xkb_symbols "extended" {
name[Group1]= "Italy - Mac";
key <LSGT> { [ less, greater ] };
key <TLDE> { [ at, numbersign, periodcentered ] };
key <AE01> { [ ampersand, 1, guillemotleft,guillemotright ] };
key <AE02> { [ quotedbl, 2 ] };
key <AE03> { [ apostrophe, 3 ] };
key <AE04> { [ parenleft, 4, braceleft, bracketleft ] };
key <AE05> { [ ccedilla, 5, Ccedilla, Iacute ] };
key <AE06> { [ egrave, 6, paragraph, periodcentered] };
key <AE07> { [ parenright, 7, braceright, bracketright ] };
key <AE08> { [ sterling, 8, infinity ] };
key <AE09> { [ agrave, 9, acute, Ocircumflex ] };
key <AE10> { [ eacute, 0, grave, Oacute ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus, notequal, plusminus ] };
key <AD01> { [ q, Q ] };
key <AD02> { [ z, Z ] };
key <AD03> { [ e, E, EuroSign ] };
key <AD04> { [ r, R, registered ] };
key <AD05> { [ t, T ] };
key <AD06> { [ y, Y, Uacute, ydiaeresis ] };
key <AD07> { [ u, U ] };
key <AD08> { [ i, I, icircumflex, idiaeresis ] };
key <AD09> { [ o, O ] };
key <AD10> { [ p, P ] };
key <AD11> { [ igrave, asciicircum ] };
key <AD12> { [ dollar, asterisk ] };
key <BKSL> { [ section, degree, at, numbersign ] };
key <AC01> { [ a, A, aring, Aring ] };
key <AC02> { [ s, S, ssharp, U1E9E ] };
key <AC03> { [ d, D ] };
key <AC04> { [ f, F ] };
key <AC05> { [ g, G ] };
key <AC06> { [ h, H, Igrave, Icircumflex ] };
key <AC07> { [ j, J, Idiaeresis, Iacute ] };
key <AC08> { [ k, K, Egrave, Ediaeresis ] };
key <AC09> { [ l, L, ssharp, bar ] };
key <AC10> { [ m, M, mu, Oacute ] };
key <AC11> { [ ugrave, percent, ae, AE ] };
key <AB01> { [ w, W ] };
key <AB02> { [ x, X ] };
key <AB03> { [ c, C, copyright, copyright ] };
key <AB04> { [ v, V ] };
key <AB05> { [ b, B ] };
key <AB06> { [ n, N, dead_tilde ] };
key <AB07> { [ comma, question, questiondown ] };
key <AB08> { [ semicolon, period ] };
key <AB09> { [ colon, slash, bar, backslash ] };
key <AB10> { [ ograve, exclam, exclamdown ] };
include "kpdl(dot)"
include "level3(ralt_switch)"
};

View File

@@ -0,0 +1,27 @@
// JIS symbol mapping for Apple Aluminium
// (Damien Ciabrini <damien.ciabrini@gmail.com>)
//
// The JIS version of the Aluminium Keyboard is made of
// QWERTY-like map for the latin part
// PC98-like map for the kana part
// EISU and KANA keys found on other Apple keyboards
default partial alphanumeric_keys
xkb_symbols "usmac" {
name[Group1] = "Japan - Macintosh, US map";
include "jp(common)"
key <JPCM> { [ KP_Separator ] };
key <AE13> { [ yen, bar ] };
replace key <AE10> { [ 0 ] };
replace key <AB11> { [ underscore ] };
replace key <CAPS> { [ Caps_Lock ] };
};
partial alphanumeric_keys
xkb_symbols "mac" {
name[Group1] = "Japan - Macintosh";
include "jp(kana)"
replace key <CAPS> { [ Caps_Lock ] };
};

View File

@@ -0,0 +1,35 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple mac_US
// keyboard and a very simple Spanish keyboard.
include "latin"
name[Group1]= "Latin American - Mac";
key <TLDE> { [ bracketleft, bracketright, braceleft, braceright ] };
key <LSGT> { [ less, greater, bracketleft, braceleft ] };
key <AE01> { [ 1, exclamdown ] };
key <AE02> { [ 2, exclam, at, oneeighth ] };
key <AE03> { [ 3, numbersign, guillemotleft, guillemotright ] };
key <AE04> { [ 4, dollar, yen, Icircumflex ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, slash, backslash, Idiaeresis ] };
key <AE07> { [ 7, ampersand, bar, Iacute ] };
key <AE08> { [ 8, asterisk, degree ] };
key <AE09> { [ 9, parenleft, sterling, Ocircumflex ] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus, plusminus ] };
key <AD11> { [ dead_grave, degree ] };
key <AD12> { [ dead_acute, dead_diaeresis, bar ] };
key <AB08> { [ comma, questiondown ] };
key <AB09> { [ period, question ] };
key <AB10> { [ ccedilla, Ccedilla ] };
key <AC10> { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] };
key <AC11> { [ semicolon, colon ] };
key <BKSL> { [ apostrophe, quotedbl ] };
include "level3(ralt_switch)"
};

View File

@@ -0,0 +1,9 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin"
name[Group1]= "Netherlands - Mac";
include "level3(ralt_switch)"
};

Some files were not shown because too many files have changed in this diff Show More