🚀 feat(kali): thanks to kalilinux.org

This commit is contained in:
Eshan Roy
2024-12-01 12:52:25 +05:30
parent 59d73ef931
commit 4f4507ec21
5352 changed files with 187554 additions and 0 deletions

View File

@@ -0,0 +1,370 @@
// Keyboard layouts for Dari, Pashto, and Southern Uzbek.
// Created by M. Emal Alekozai <memala@gmx.net> in February 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)"
};

View File

@@ -0,0 +1,153 @@
// Albanian keyboard layout, by Pablo Saratxaga <pablo@mandrakesoft.com>.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type3)"
name[Group1]="Albanian";
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 <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 <TLDE> { [ backslash, bar, notsign, notsign ] };
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, U2019 ] };
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, U00AD ] };
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, U0131 ] };
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, U00B5 ] };
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 (https://arberisht.wordpress.com/2019/09/13/an-xkb-layout-for-the-veqilharxhi-alphabet/)
// by Arbër Boriçi (illyriensis@protonmail.com)
// 2019-09-12
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)"
};

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> { type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Alt_R, Meta_R ] };
modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
// modifier_map Mod4 {};
};
// 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> { type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Control_R, Control_R ] };
key <LWIN> { [ Alt_L, Meta_L ] };
key <RWIN> { [ Alt_R, Meta_R ] };
key <LCTL> { [ Super_L ] };
key <RCTL> { [ Super_R ] };
modifier_map Control { <RALT>, <LALT> };
modifier_map Mod1 { <LWIN>, <RWIN> };
modifier_map Mod4 { <LCTL>, <RCTL> };
};
// Meta is mapped to the Super.
partial modifier_keys
xkb_symbols "meta_win" {
key <LALT> { [ Alt_L, Alt_L ] };
key <RALT> { type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Alt_R, Alt_R ] };
key <LWIN> { [ Meta_L ] };
key <RWIN> { [ Meta_R ] };
modifier_map Mod1 { Alt_L, Alt_R };
modifier_map Mod4 { <META>, Meta_L, Meta_R };
};
// Meta is mapped to the left Win key.
partial modifier_keys
xkb_symbols "left_meta_win" {
key <LALT> { [ Alt_L, Alt_L ] };
key <LWIN> { [ Meta_L ] };
modifier_map Mod1 { Alt_L };
modifier_map Mod4 { <META>, Meta_L };
};
// Hyper is mapped to the Super.
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 ] };
};
// Menu is mapped to the right Win key.
partial modifier_keys
xkb_symbols "menu_win" {
key <MENU> { [ Super_R ] };
};
// Layout for Tux key caps with additional right Alt key
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 { Alt_L, Alt_R, Meta_L, Meta_R };
modifier_map Mod4 { Super_L, Super_R };
};
// Swap the Alt and Super.
partial modifier_keys
xkb_symbols "swap_alt_win" {
include "altwin(swap_lalt_lwin)"
include "altwin(swap_ralt_rwin)"
};
// Swap the left Alt and Super.
partial modifier_keys
xkb_symbols "swap_lalt_lwin" {
key <LALT> { type[Group1] = "ONE_LEVEL",
symbols[Group1] = [ Super_L ] };
key <LWIN> { [ Alt_L, Meta_L ] };
};
// Swap the right Alt and Super.
hidden partial modifier_keys
xkb_symbols "swap_ralt_rwin" {
key <RALT> { type[Group1] = "ONE_LEVEL",
symbols[Group1] = [ Super_R ] };
key <RWIN> { [ Alt_R, Meta_R ] };
};
// Win 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> };
};

View File

@@ -0,0 +1,235 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Armenian";
key <TLDE> { [ Armenian_separation_mark, Armenian_exclam ] };
key <LSGT> { [ question, Armenian_hyphen ] };
key <BKSL> { [ guillemotright, guillemotleft ] };
key <AE01> { [ Armenian_fe, Armenian_FE ] };
key <AE02> { [ Armenian_dza, Armenian_DZA ] };
key <AE03> { [ Armenian_hyphen, 0x1002014 ] };
key <AE04> { [ comma, dollar ] };
key <AE05> { [ Armenian_full_stop, 0x1002026 ] };
key <AE06> { [ Armenian_question, percent ] };
key <AE07> { [ 0x1002024, Armenian_ligature_ew ] };
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 <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 <BKSL> { [ Armenian_sha, Armenian_SHA ] };
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, 0x100058f ] };
key <AE08> { [ Armenian_ra, Armenian_RA ] };
key <AE09> { [ Armenian_cha, Armenian_CHA ] };
key <AE10> { [ Armenian_tche, Armenian_TCHE ] };
key <AE11> { [ Armenian_hyphen, 0x1002015 ] };
key <AE12> { [ Armenian_zhe, Armenian_ZHE ] };
key <LatQ> { [ Armenian_ke, Armenian_KE ] };
key <LatW> { [ Armenian_vo, Armenian_VO ] };
key <LatE> { [ Armenian_yech, Armenian_YECH ] };
key <LatR> { [ Armenian_re, Armenian_RE ] };
key <LatT> { [ Armenian_tyun, Armenian_TYUN ] };
key <LatY> { [ Armenian_at, Armenian_AT ] };
key <LatU> { [ Armenian_vyun, Armenian_VYUN ] };
key <LatI> { [ Armenian_ini, Armenian_INI ] };
key <LatO> { [ Armenian_o, Armenian_O ] };
key <LatP> { [ Armenian_pe, Armenian_PE ] };
key <AD11> { [ Armenian_khe, Armenian_KHE ] };
key <AD12> { [ Armenian_tsa, Armenian_TSA ] };
key <LatA> { [ Armenian_ayb, Armenian_AYB ] };
key <LatS> { [ Armenian_se, Armenian_SE ] };
key <LatD> { [ Armenian_da, Armenian_DA ] };
key <LatF> { [ Armenian_fe, Armenian_FE ] };
key <LatG> { [ Armenian_gim, Armenian_GIM ] };
key <LatH> { [ Armenian_ho, Armenian_HO ] };
key <LatJ> { [ Armenian_hi, Armenian_HI ] };
key <LatK> { [ Armenian_ken, Armenian_KEN ] };
key <LatL> { [ Armenian_lyun, Armenian_LYUN ] };
key <AC10> { [ semicolon, Armenian_full_stop ] };
key <AC11> { [ Armenian_accent, 0x1000022 ] };
key <LatZ> { [ Armenian_za, Armenian_ZA ] };
key <LatX> { [ Armenian_ghat, Armenian_GHAT ] };
key <LatC> { [ Armenian_tso, Armenian_TSO ] };
key <LatV> { [ Armenian_vev, Armenian_VEV ] };
key <LatB> { [ Armenian_ben, Armenian_BEN ] };
key <LatN> { [ Armenian_nu, Armenian_NU ] };
key <LatM> { [ Armenian_men, Armenian_MEN ] };
key <AB08> { [ 0x100002C, 0x10000AB ] };
key <AB09> { [ 0x1002024, 0x10000BB ] };
key <AB10> { [ 0x100002F, Armenian_question ] };
};
partial alphanumeric_keys
xkb_symbols "phonetic-alt" {
include "am(phonetic)"
name[Group1]= "Armenian (alt. phonetic)";
key <AE08> { [ Armenian_re, Armenian_RE ] };
key <LatR> { [ 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 <LatE> { [ Armenian_e, Armenian_E ] };
key <LatR> { [ Armenian_re, Armenian_RE ] };
key <LatT> { [ Armenian_tyun, Armenian_TYUN ] };
key <LatY> { [ Armenian_yech, Armenian_YECH ] };
key <LatU> { [ Armenian_at, Armenian_AT ] };
key <LatI> { [ Armenian_ini, Armenian_INI ] };
key <LatO> { [ Armenian_vo, Armenian_VO ] };
key <LatP> { [ Armenian_pe, Armenian_PE ] };
key <AD11> { [ Armenian_cha, Armenian_CHA ] };
key <AD12> { [ Armenian_je, Armenian_JE ] };
key <BKSL> { [ apostrophe, Armenian_question ] };
key <LatA> { [ Armenian_ayb, Armenian_AYB ] };
key <LatS> { [ Armenian_se, Armenian_SE ] };
key <LatD> { [ Armenian_da, Armenian_DA ] };
key <LatF> { [ Armenian_fe, Armenian_FE ] };
key <LatG> { [ Armenian_gim, Armenian_GIM ] };
key <LatH> { [ Armenian_ho, Armenian_HO ] };
key <LatJ> { [ Armenian_tche, Armenian_TCHE ] };
key <LatK> { [ Armenian_ken, Armenian_KEN ] };
key <LatL> { [ Armenian_lyun, Armenian_LYUN ] };
key <AC10> { [ Armenian_to, Armenian_TO ] };
key <AC11> { [ Armenian_pyur, Armenian_PYUR ] };
key <LatZ> { [ Armenian_za, Armenian_ZA ] };
key <LatX> { [ Armenian_tso, Armenian_TSO ] };
key <LatC> { [ Armenian_ke, Armenian_KE ] };
key <LatV> { [ Armenian_vev, Armenian_VEV ] };
key <LatB> { [ Armenian_ben, Armenian_BEN ] };
key <LatN> { [ Armenian_nu, Armenian_NU ] };
key <LatM> { [ 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 <LatT> { [ Armenian_da, Armenian_DA ] };
key <LatP> { [ Armenian_ben, Armenian_BEN ] };
key <LatD> { [ Armenian_tyun, Armenian_TYUN ] };
key <LatG> { [ Armenian_ken, Armenian_KEN ] };
key <LatK> { [ Armenian_ke, Armenian_KE ] };
key <LatC> { [ Armenian_gim, Armenian_GIM ] };
key <LatV> { [ Armenian_vyun, Armenian_VYUN ] };
key <LatB> { [ 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 <LatG> { [ Armenian_ke, Armenian_KE ] };
key <LatC> { [ Armenian_gim, Armenian_GIM ] };
};

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 underscore
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 underscore
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 underscore
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 underscore
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
};

View File

@@ -0,0 +1,558 @@
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, NoSymbol ]}; // 1 ! ١
key <AE02> { [ 2, at, Arabic_2, NoSymbol ]}; // 2 @ ٢
key <AE03> { [ 3, numbersign, Arabic_3, NoSymbol ]}; // 3 # ٣
key <AE04> { [ 4, dollar, Arabic_4, NoSymbol ]}; // 4 $ ٤
key <AE05> { [ 5, percent, Arabic_5, U2030 ]}; // 5 % ٥
key <AE06> { [ 6, asciicircum, Arabic_6, NoSymbol ]}; // 6 ^ ٦
key <AE07> { [ 7, ampersand, Arabic_7, NoSymbol ]}; // 7 & ٧
key <AE08> { [ 8, asterisk, Arabic_8, NoSymbol ]}; // 8 * ٨
key <AE09> { [ 9, parenright, Arabic_9, NoSymbol ]}; // 9 ) ٩
key <AE10> { [ 0, parenleft, Arabic_0, NoSymbol ]}; // 0 ( ٠
key <AE11> { [ minus, underscore, endash, U2011 ]}; // - _ Non-Breaking-Hyphen
key <AE12> { [ equal, plus, notequal, U2248 ]}; // = + ≠ ≈
key <AD01> { [ Arabic_dad, Arabic_fatha, NoSymbol, U2066 ]}; // ‎ض‎ ‎◌َ LEFTTORIGHT ISOLATE
key <AD02> { [ Arabic_sad, Arabic_fathatan, NoSymbol, U2067 ]}; // ‎ص‎ ‎◌ً RIGHTTOLEFT ISOLATE
key <AD03> { [ Arabic_theh, Arabic_damma, NoSymbol, U2068 ]}; // ‎ث‎ ‎◌ُ FIRST STRONG ISOLATE
key <AD04> { [ Arabic_qaf, Arabic_dammatan, NoSymbol, U2069 ]}; // ‎ق‎ ‎◌ٌ POP DIRECTIONAL ISOLATE
key <AD05> { [ Arabic_feh, UFEF9, Arabic_veh, NoSymbol ]}; // ‎ف‎ ‎ﻹ ‎ڤ
key <AD06> { [ Arabic_ghain,Arabic_hamzaunderalef, NoSymbol, U202A ]}; // ‎غ‎ ‎إ‎ LEFT-TO-RIGHT-EMBEDDING
key <AD07> { [ Arabic_ain, grave, NoSymbol, U202B ]}; // ‎ع‎ ` RIGHT-TO-LEFT EMBEDDING
key <AD08> { [ Arabic_ha, division, NoSymbol, U202C ]}; // ه ÷ POP DIRECTIONAL FORMATTING
key <AD09> { [ Arabic_khah, multiply, NoSymbol, NoSymbol ]}; // ‎خ‎ ×
key <AD10> { [ Arabic_hah, Arabic_semicolon, NoSymbol, U200E ]}; // ‎ح‎ ؛ LEFT-TO-RIGHT MARK
key <AD11> { [ Arabic_jeem, less, Arabic_tcheh, U200F ]}; // ‎ج‎ < ‎چ‎ RIGHT-TO-LEFT MARK
key <AD12> { [ Arabic_dal, greater, NoSymbol, U061C ]}; // ‎د‎ > ARABIC LETTER MARK
key <AC01> { [ Arabic_sheen, Arabic_kasra, NoSymbol, NoSymbol ]}; // ‎ش‎ ‎◌ِ‎
key <AC02> { [ Arabic_seen, Arabic_kasratan, NoSymbol, NoSymbol ]}; // ‎س‎ ‎◌ٍ‎
key <AC03> { [ Arabic_yeh, bracketright, NoSymbol, NoSymbol ]}; // ‎ي‎ ]
key <AC04> { [ Arabic_beh, bracketleft, Arabic_peh, NoSymbol ]}; // ‎ب‎ [ ‎پ‎
key <AC05> { [ Arabic_lam, U0FEF7, NoSymbol, NoSymbol ]}; // ‎ل‎ ‎ﻷ‎
key <AC06> { [ Arabic_alef, Arabic_hamzaonalef, U0671, NoSymbol ]}; // ا ‎أ ‎ٱ‎
key <AC07> { [ Arabic_teh, Arabic_tatweel, NoSymbol, NoSymbol ]}; // ‎ت‎ ‎ـ‎
key <AC08> { [ Arabic_noon, Arabic_comma, U066B, NoSymbol ]}; // ‎ن‎ ‎،‎ ٫
key <AC09> { [ Arabic_meem, slash, NoSymbol, NoSymbol ]}; // ‎م‎ /
key <AC10> { [ Arabic_kaf, colon, Arabic_gaf, NoSymbol ]}; // ‎ك‎ : ‎گ‎
key <AC11> { [ Arabic_tah, quotedbl, U27E9, U200D ]}; // ‎ط‎ " ⟩ ZWJ
key <BKSL> { [ backslash, ellipsis, U27E8, U202F ]}; // \ … ⟨ NNBSP
key <LSGT> { [ bar, brokenbar, NoSymbol, NoSymbol ]}; // | ¦
key <AB01> { [Arabic_hamzaonyeh, asciitilde, guillemotright, U203A ]}; // ‎ئ‎ ~ »
key <AB02> { [ Arabic_hamza, Arabic_sukun, guillemotleft, U2039 ]}; // ‎ء‎ ◌ْ «
key <AB03> { [Arabic_hamzaonwaw, braceright, NoSymbol, NoSymbol ]}; // ‎ؤ }
key <AB04> { [ Arabic_ra, braceleft, NoSymbol, NoSymbol ]}; // ‎ر‎ {
key <AB05> { [ UFEFB, UFEF5, NoSymbol, NoSymbol ]}; // ‎ﻻ‎ ‎ﻵ‎
key <AB06> {[Arabic_alefmaksura, Arabic_maddaonalef, Arabic_superscript_alef, NoSymbol ]}; // ‎ى‎ ‎آ‎ ‎◌ٰ‎
key <AB07> { [Arabic_tehmarbuta, apostrophe, NoSymbol, NoSymbol ]}; // ‎ة‎ '
key <AB08> { [ Arabic_waw, comma, U066C, NoSymbol ]}; // ‎و‎ , ‎٬
key <AB09> { [ Arabic_zain, period, Arabic_jeh, NoSymbol ]}; // ‎ز‎ . ‎ژ‎
key <AB10> { [ Arabic_zah, Arabic_question_mark, U066D, U200C ]}; // ‎ظ‎ ‎؟‎ ٭ ZWNJ
include "level3(ralt_switch)"
};
// Synonym for the default
partial alphanumeric_keys
xkb_symbols "qwerty" {
include "ara(basic)"
name[Group1]= "Arabic (QWERTY)";
};
// 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.
// As this set of definitions is unlisted, it is not usable without parallel mapping on the numeric row in the ara(digits) layout which includes it.
partial hidden keypad_keys
xkb_symbols "digits_KP" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD";
key <KP7> { [ KP_Home, Arabic_7, 7, NoSymbol ] };
key <KP8> { [ KP_Up, Arabic_8, 8, NoSymbol ] };
key <KP9> { [ KP_Prior, Arabic_9, 9, NoSymbol ] };
key <KP4> { [ KP_Left, Arabic_4, 4, NoSymbol ] };
key <KP5> { [ KP_Begin, Arabic_5, 5, NoSymbol ] };
key <KP6> { [ KP_Right, Arabic_6, 6, NoSymbol ] };
key <KP1> { [ KP_End, Arabic_1, 1, NoSymbol ] };
key <KP2> { [ KP_Down, Arabic_2, 2, NoSymbol ] };
key <KP3> { [ KP_Next, Arabic_3, 3, NoSymbol ] };
key <KP0> { [ KP_Insert, Arabic_0, 0, NoSymbol ] };
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, NoSymbol ] };
key <AE02> { [ Arabic_2, at, 2, NoSymbol ] };
key <AE03> { [ Arabic_3, numbersign, 3, NoSymbol ] };
key <AE04> { [ Arabic_4, dollar, 4, NoSymbol ] };
key <AE05> { [ Arabic_5, Arabic_percent, 5, U0609 ] };
key <AE06> { [ Arabic_6, asciicircum, 6, NoSymbol ] };
key <AE07> { [ Arabic_7, ampersand, 7, NoSymbol ] };
key <AE08> { [ Arabic_8, asterisk, 8, NoSymbol ] };
key <AE09> { [ Arabic_9, parenright, 9, NoSymbol ] };
key <AE10> { [ Arabic_0, parenleft, 0, NoSymbol ] };
include "ara(digits_KP)"
};
// Synonym for the layout with the Latin-script and Arabic-script digits switched
partial alphanumeric_keys
xkb_symbols "qwerty_digits" {
include "ara(digits)"
name[Group1]= "Arabic (QWERTY, Eastern Arabic numerals)";
};
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, NoSymbol ] };
key <AE02> { [ eacute, Arabic_2, 2, NoSymbol ] };
key <AE03> { [ quotedbl, Arabic_3, 3, NoSymbol ] };
key <AE04> { [ apostrophe, Arabic_4, 4, NoSymbol ] };
key <AE05> { [ parenleft, Arabic_5, 5, NoSymbol ] };
key <AE06> { [ minus, Arabic_6, 6, NoSymbol ] };
key <AE07> { [ egrave, Arabic_7, 7, NoSymbol ] };
key <AE08> { [ underscore, Arabic_8, 8, NoSymbol ] };
key <AE09> { [ ccedilla, Arabic_9, 9, NoSymbol ] };
key <AE10> { [ agrave, Arabic_0, 0, NoSymbol ] };
};
// Arabic keyboard using Buckwalter transliteration
// http://www.qamus.org/transliteration.htm
// Martin Vidner
partial alphanumeric_keys
xkb_symbols "buckwalter" {
name[Group1]= "Arabic (Buckwalter)";
// ARABIC LETTER SUPERSCRIPT ALEF
key <TLDE> { [ 0x1000670, Arabic_shadda ] };
// Arabic_0 .. Arabic_9 do not work in Kate,
// Unicode never seems to work worse.
key <AE01> { [ 0x1000661, VoidSymbol ] };
key <AE02> { [ 0x1000662, VoidSymbol ] };
key <AE03> { [ 0x1000663, VoidSymbol ] };
key <AE04> { [ 0x1000664, Arabic_sheen ] };
key <AE05> { [ 0x1000665, Arabic_percent ] };
key <AE06> { [ 0x1000666, VoidSymbol ] };
key <AE07> { [ 0x1000667, Arabic_hamzaonwaw ] };
key <AE08> { [ 0x1000668, Arabic_thal ] };
// ORNATE LEFT PARENTHESIS
key <AE09> { [ 0x1000669, 0x100fd3e ] };
// ORNATE RIGHT PARENTHESIS
key <AE10> { [ 0x1000660, 0x100fd3f ] };
key <AE11> { [ minus, Arabic_tatweel ] };
key <AE12> { [ equal, plus ] };
key <AD01> { [ Arabic_qaf, VoidSymbol ] };
key <AD02> { [ Arabic_waw, Arabic_hamzaonwaw ] };
key <AD03> { [ VoidSymbol, Arabic_ain ] };
key <AD04> { [ Arabic_ra, VoidSymbol ] };
key <AD05> { [ Arabic_teh, Arabic_tah ] };
key <AD06> { [ Arabic_yeh, Arabic_alefmaksura ] };
key <AD07> { [ Arabic_damma, VoidSymbol ] };
key <AD08> { [ Arabic_kasra, Arabic_hamzaunderalef ] };
key <AD09> { [ Arabic_sukun, Arabic_hamzaonalef ] };
key <AD10> { [ Arabic_tehmarbuta, VoidSymbol ] };
// ARABIC LETTER ALEF WASLA
key <AD11> { [ VoidSymbol, 0x1000671 ] };
key <AD12> { [ VoidSymbol, 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, VoidSymbol ] };
key <AC06> { [ Arabic_ha, Arabic_hah ] };
key <AC07> { [ Arabic_jeem, VoidSymbol ] };
key <AC08> { [ Arabic_kaf, Arabic_kasratan ] };
key <AC09> { [ Arabic_lam, VoidSymbol ] };
key <AC10> { [ Arabic_semicolon, VoidSymbol ] };
key <AC11> { [ Arabic_hamza, VoidSymbol ] };
key <BKSL> { [ VoidSymbol, Arabic_maddaonalef ] };
key <AB01> { [ Arabic_zain, Arabic_zah ] };
key <AB02> { [ Arabic_khah, VoidSymbol ] };
key <AB03> { [ VoidSymbol, VoidSymbol ] };
key <AB04> { [ Arabic_theh, VoidSymbol ] };
key <AB05> { [ Arabic_beh, VoidSymbol ] };
key <AB06> { [ Arabic_noon, Arabic_dammatan ] };
key <AB07> { [ Arabic_meem, VoidSymbol ] };
key <AB08> { [ Arabic_comma, Arabic_hamzaunderalef ] };
// ARABIC FULL STOP (Urdu)
key <AB09> { [ 0x10006d4, Arabic_hamzaonalef ] };
key <AB10> { [ VoidSymbol, 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, U2030 ] };
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 is a layout that is compatible with macbooks
include "ara(digits)"
name[Group1]= "Arabic (Macintosh)";
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <TLDE> { [ Arabic_tatweel, VoidSymbol ] };
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, VoidSymbol ] };
key <AC06> { [ Arabic_alef, Arabic_maddaonalef ] };
key <AC07> { [ Arabic_teh, 0x1000671 ] };
key <AC08> { [ Arabic_noon, VoidSymbol ] };
key <AC09> { [ Arabic_meem, VoidSymbol ] };
key <AC10> { [ Arabic_kaf, colon ] };
key <AC11> { [ Arabic_semicolon, quotedbl ] };
key <BKSL> { [ backslash, bar ] };
key <LSGT> { [ Arabic_tatweel, VoidSymbol ] };
key <AB01> { [ Arabic_zah, VoidSymbol ] };
key <AB02> { [ Arabic_tah, VoidSymbol ] };
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 ] };
};
// 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, U0FEF7, 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, ellipsis, U27E8, U202F ]}; // \ … ⟨ NNBSP
key <LSGT> { [ bar, brokenbar, 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 keypad, pushing the Western digits to the third level accessible by the right alt key.
// As this set of definitions is unlisted, it is not usable without parallel mapping on the numeric row in the ara(basic_ext_digits) layout which includes it.
partial hidden keypad_keys
xkb_symbols "basic_ext_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.
// 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(basic_ext_digits_KP)"
};
// 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 instead of Arabic";
key.type[Group1]="TWO_LEVEL";
key <TLDE> { [ U1038F, NoSymbol ]}; // 𐎏
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, NoSymbol ]}; // 𐎝
key <AD02> { [ U10395, NoSymbol ]}; // 𐎕
key <AD03> { [ U10398, NoSymbol ]}; // 𐎘
key <AD04> { [ U10396, NoSymbol ]}; // 𐎖
key <AD05> { [ U10394, NoSymbol ]}; // 𐎔
key <AD06> { [ U10399, NoSymbol ]}; // 𐎙
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, NoSymbol ]}; // 𐎍
key <AC06> { [ U10380, NoSymbol ]}; // 𐎀
key <AC07> { [ U1039A, NoSymbol ]}; // 𐎚
key <AC08> { [ U10390, NoSymbol ]}; // 𐎐
key <AC09> { [ U1038E, slash ]}; // 𐎎 /
key <AC10> { [ U1038B, colon ]}; // 𐎋:
key <AC11> { [ U10389, quotedbl ]}; // 𐎉 "
key <BKSL> { [backslash, ellipsis ]}; // \ …
key <LSGT> { [ bar, endash ]}; // |
key <AB01> { [ U1039B, guillemotleft ]}; // 𐎛 «
key <AB02> { [ NoSymbol, guillemotright ]}; // »
key <AB03> { [ U1039C, braceleft ]}; // 𐎜 {
key <AB04> { [ U10397, braceright ]}; // 𐎗 }
key <AB05> { [ U1039F, U2039 ]}; // 𐎟
key <AB06> { [ question, U203A ]}; // ?
key <AB07> { [ U002BC, apostrophe ]}; // ʼ '
key <AB08> { [ U10386, comma ]}; // 𐎆 ,
key <AB09> { [ U10387, period ]}; // 𐎇 .
key <AB10> { [ U10391, periodcentered ]}; // 𐎑 ·
};
// 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, NoSymbol, NoSymbol ]};
key <AD01> { [ Arabic_dal, Arabic_thal, NoSymbol, U2066 ]};
key <AD02> { [ Arabic_sad, Arabic_dad, NoSymbol, U2067 ]};
key <AD05> { [ Arabic_feh, Arabic_shadda, Arabic_veh, NoSymbol ]};
key <AD06> { [ Arabic_hamza, Arabic_hamzaunderalef, NoSymbol, U202A ]};
key <AD07> { [ Arabic_ain, Arabic_ghain, NoSymbol, U202B ]};
key <AD08> { [ Arabic_ha, division, NoSymbol, U202C ]};
key <AD09> { [ Arabic_waw, Arabic_hamzaonwaw, NoSymbol, NoSymbol ]};
key <AD10> { [ Arabic_tehmarbuta, Arabic_semicolon, NoSymbol, U200E ]};
key <AD11> { [ bracketright, braceright, NoSymbol, U200F ]};
key <AD12> { [ bracketleft, braceleft, NoSymbol, U061C ]};
key <AC03> { [ Arabic_yeh, Arabic_fatha, NoSymbol, NoSymbol ]};
key <AC04> { [ Arabic_beh, Arabic_fathatan, Arabic_peh, NoSymbol ]};
key <AC05> { [ Arabic_lam, Arabic_maddaonalef,Arabic_superscript_alef, NoSymbol ]};
key <AC07> { [ Arabic_teh, Arabic_tatweel, NoSymbol, NoSymbol ]};
key <AC08> { [ Arabic_noon, multiply, U066B, NoSymbol ]};
key <AC09> { [ Arabic_meem, comma, NoSymbol, NoSymbol ]};
key <AC10> { [ Arabic_kaf, colon, Arabic_gaf, NoSymbol ]};
key <AC11> { [ apostrophe, quotedbl, U27E9, U200D ]};
key <BKSL> { [ backslash, bar, U27E8, U202F ]};
key <AB01> { [ Arabic_hamzaonyeh, NoSymbol, U203A, NoSymbol ]};
key <AB02> { [Arabic_alefmaksura, Arabic_sukun, U2039, NoSymbol ]};
key <AB03> { [ Arabic_tah, Arabic_zah, NoSymbol, NoSymbol ]};
key <AB04> { [ Arabic_ra, Arabic_zain, Arabic_jeh, NoSymbol ]};
key <AB05> { [ Arabic_khah, ellipsis, NoSymbol, NoSymbol ]};
key <AB06> { [ Arabic_hah, guillemotright, NoSymbol, NoSymbol ]};
key <AB07> { [ Arabic_jeem, guillemotleft, Arabic_tcheh, NoSymbol ]};
key <AB08> { [ Arabic_comma, greater, NoSymbol, NoSymbol ]};
key <AB09> { [ period, less, NoSymbol, NoSymbol ]};
key <AB10> { [ slash, Arabic_question_mark, U066D, U200C ]};
};

View File

@@ -0,0 +1,23 @@
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)";
};

View File

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

View File

@@ -0,0 +1,87 @@
// Symbols definition for a Azerbaijani keyboard layout.
// Based on 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 <TLDE> { [ grave, asciitilde ] };
key <AE02> { [ 2, quotedbl ] };
key <AE03> { [ 3, U2166 ] };
key <AE04> { [ 4, semicolon ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, colon ] };
key <AE07> { [ 7, question ] };
key <AE08> { [ 8, asterisk ] };
key <BKSL> { [ backslash, slash ] };
key <AD02> { [ udiaeresis, Udiaeresis ] };
key <AD08> { [ i, Iabovedot ] };
key <AD11> { [ odiaeresis, Odiaeresis ] };
key <AD12> { [ gbreve, Gbreve ] };
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 <AE02> {[ 2, quotedbl ] };
key <AE03> {[ 3, numbersign ] };
key <AE04> {[ 4, semicolon ] };
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 <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 ] };
};

View File

@@ -0,0 +1,34 @@
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)";
};

View File

@@ -0,0 +1,95 @@
//
// XKB symbol :: National Bangla/Bengali Standard Keyboard Layout for Bangladesh
// Ref: http://www.bcc.net.bd/keyboard/bsti_kb_specification.pdf
//
// Author: Jamil Ahmed <jamil at bengalinux.org>
// Created: 18-12-2005
// Last Updated: 08-01-2006
// Version: 6.01.3
//
// Issues:
// <AC08> Khanda-Ta is given U-09CE; But BCC had U-09BA
// <AC07> U-09BB is added though it is not allocated in Original Unicode
// <AE06> U-09B3 is added though it is not allocated in Original Unicode
// 3 Conjunct characters are not included
//
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Bangla";
key <ESC> { [ Escape ] };
// numbers
key <TLDE> { [ grave, asciitilde, voidsymbol, voidsymbol ] };
key <AE01> { [ 0x10009E7, exclam, 0x10009F4, voidsymbol ] };
key <AE02> { [ 0x10009E8, at, 0x10009F5, voidsymbol ] };
key <AE03> { [ 0x10009E9, numbersign, 0x10009F6, voidsymbol ] };
key <AE04> { [ 0x10009EA, dollar, 0x10009F3, 0x10009F2 ] };
key <AE05> { [ 0x10009EB, percent, 0x10009F7, voidsymbol ] };
key <AE06> { [ 0x10009EC, asciicircum, 0x10009F8, 0x10009B3 ] };
key <AE07> { [ 0x10009ED, ampersand, 0x1000902, voidsymbol ] };
key <AE08> { [ 0x10009EE, asterisk, voidsymbol, voidsymbol ] };
key <AE09> { [ 0x10009EF, parenleft, voidsymbol, voidsymbol ] };
key <AE10> { [ 0x10009E6, parenright, 0x10009F9, voidsymbol ] };
key <AE11> { [ minus, underscore, 0x100200C, voidsymbol ] };
key <AE12> { [ equal, plus, 0x100200D, voidsymbol ] };
key <BKSP> { [ BackSpace ] };
// tab, q to ]
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <AD01> { [ 0x1000999, 0x1000982, 0x10009E2, 0x10009E3 ] };
key <AD02> { [ 0x10009AF, 0x10009DF, voidsymbol, voidsymbol ] };
key <AD03> { [ 0x10009A1, 0x10009A2, 0x10009C4, voidsymbol ] };
key <AD04> { [ 0x10009AA, 0x10009AB, voidsymbol, voidsymbol ] };
key <AD05> { [ 0x100099F, 0x10009A0, voidsymbol, voidsymbol ] };
key <AD06> { [ 0x100099A, 0x100099B, voidsymbol, voidsymbol ] };
key <AD07> { [ 0x100099C, 0x100099D, voidsymbol, voidsymbol ] };
key <AD08> { [ 0x10009B9, 0x100099E, 0x10009BD, voidsymbol ] };
key <AD09> { [ 0x1000997, 0x1000998, voidsymbol, voidsymbol ] };
key <AD10> { [ 0x10009DC, 0x10009DD, voidsymbol, voidsymbol ] };
key <AD11> { [ bracketleft, braceleft, voidsymbol, voidsymbol ] };
key <AD12> { [ bracketright, braceright, voidsymbol, voidsymbol ] };
key <RTRN> { [ Return ] };
// caps, a to '
// key <CAPS> { [ Caps_Lock ] };
key <AC01> { [ 0x10009C3, 0x10009D7, 0x100098B, 0x10009E0 ] };
key <AC02> { [ 0x10009C1, 0x10009C2, 0x1000989, 0x100098A ] };
key <AC03> { [ 0x10009BF, 0x10009C0, 0x1000987, 0x1000988 ] };
key <AC04> { [ 0x10009AC, 0x10009AD, 0x10009F0, 0x10009F1 ] };
key <AC05> { [ 0x10009CD, 0x1000964, 0x1000965, voidsymbol ] };
key <AC06> { [ 0x10009BE, 0x1000985, 0x1000986, voidsymbol ] };
key <AC07> { [ 0x1000995, 0x1000996, 0x10009BB, voidsymbol ] };
key <AC08> { [ 0x10009A4, 0x10009A5, 0x10009CE, voidsymbol ] };
key <AC09> { [ 0x10009A6, 0x10009A7, 0x100098C, 0x10009E1 ] };
key <AC10> { [ semicolon, colon, voidsymbol, voidsymbol ] };
key <AC11> { [ apostrophe, quotedbl, voidsymbol, voidsymbol ] };
// shift, z to /
// key <LFSH> { [ Shift_L ] };
key <AB01> { [ 0x1000981, 0x1000983, 0x10009FA, voidsymbol ] };
key <AB02> { [ 0x10009CB, 0x10009CC, 0x1000993, 0x1000994 ] };
key <AB03> { [ 0x10009C7, 0x10009C8, 0x100098F, 0x1000990 ] };
key <AB04> { [ 0x10009B0, 0x10009B2, voidsymbol, voidsymbol ] };
key <AB05> { [ 0x10009A8, 0x10009A3, voidsymbol, voidsymbol ] };
key <AB06> { [ 0x10009B8, 0x10009B7, voidsymbol, voidsymbol ] };
key <AB07> { [ 0x10009AE, 0x10009B6, voidsymbol, voidsymbol ] };
key <AB08> { [ comma, less, voidsymbol, voidsymbol ] };
key <AB09> { [ period, greater, 0x10009BC, voidsymbol ] };
key <AB10> { [ slash, question, voidsymbol, voidsymbol ] };
key <BKSL> { [ backslash, bar, voidsymbol, voidsymbol ] };
// third level with right-Alt
include "level3(ralt_switch)"
};
//
// XKB symbol :: Probhat Bangla/Bengali Keyboard Layout
// Ref: www.ankurbangla.org/images/probhat_layout.png
//
xkb_symbols "probhat" {
include "in(ben_probhat)"
name[Group1]= "Bangla (Probhat)";
};

View File

@@ -0,0 +1,183 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin"
name[Group1]="Belgian";
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 ] }; // o O œ Œ
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 <TLDE> { [twosuperior, threesuperior, notsign, notsign ] };
key <BKSL> { [ mu, sterling, dead_grave, dead_breve ] };
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] };
key <LSGT> { [ less, greater, backslash, backslash ] };
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" {
// First row
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, 0x1002014 ] }; // ' 4 ¸ — (tiret cadratin)
key <AE05> { [ parenleft, 5, dead_caron, 0x1002013 ] }; // ( 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, Ooblique ] }; // ) ° ø Ø
key <AE12> { [ minus, underscore, 0x1002011, plusminus ] }; // - _ - (tiret insécable) ±
// Second row
key <AD11> { [ dead_circumflex, dead_diaeresis, bracketleft, dead_abovering ] }; // ^ ̈ [ ˚
key <AD12> { [ dollar, asterisk, bracketright, dead_ogonek ] }; // $ * ] ̨
// Third row
key <AC09> { [ l, L, dead_stroke ] };
key <BKSL> { [ mu, sterling, dead_grave, dead_macron ] }; // µ £ ` ̄
// Fourth row
key <LSGT> { [ less, greater, backslash, notequal ] }; // < > \ ≠
key <AB10> { [ equal, plus, dead_tilde, 0x1002212 ] }; // = + ~
};
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.)";
// First row
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 ] }; // - _ - ±
// Second row
key <AD12> { [ dollar, asterisk, bracketright, dead_cedilla ] }; // $ * ] ¸
// Third row
key <AC09> { [ l, L, l, L ] }; // l L l L
key <BKSL> { [ mu, sterling, dead_grave, dead_circumflex ] }; // µ £ ` ^
// Fourth row
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 <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 azerty Belgium 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)"
};

View File

@@ -0,0 +1,319 @@
//////////////////////////////////////////////////////////////////////////
// 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
// "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
// "bekl" - the enhanced variant of the Bulgarian BDS keyboard, proposed
// in May 2020.
// "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" modified according to the
// 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 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 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" {
name[Group1]= "Bulgarian (enhanced)";
key <TLDE> {[ parenleft, parenright, bracketleft, bracketright ]};
key <AE01> {[ 1, exclam ]};
key <AE02> {[ 2, question, U0040, U0040 ]};
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, U02BC ]};
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 ]};
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 ]};
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> {[ U0463, U0462 ]};
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 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, U2030, U2030 ]};
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 ]};
};

View File

@@ -0,0 +1,308 @@
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 <AD11> { [ apostrophe, grave ] };
key <AC10> { [ ccedilla, Ccedilla, acute, doubleacute ] };
key <AC11> { [ asciitilde, asciicircum ] };
key <AB10> { [ semicolon, colon, dead_belowdot, 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, 0x10000AA ] };
key <BKSL> { [ bracketright, braceright, 0x10000BA ] };
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)"
};
//
// 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, 0x01002030 ] };
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, Ooblique ] };
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, 0x01000259, 0x0100018F ] };
key <AB03> { [ j, J, 0x01000292, 0x010001B7 ] };
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, 0x01002030 ] };
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, Ooblique ] };
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, 0x01000292, 0x010001B7 ] };
key <AB04> { [ b, B, guillemotleft, 0x01002039 ] };
key <AB05> { [ k, K, guillemotright, 0x0100203A ] };
key <AB06> { [ q, Q, 0x01000259, 0x0100018F ] };
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)"
};

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 ] };
};

View File

@@ -0,0 +1,87 @@
//
// Dzongkha / Tibetan layout for Bhutanese keyboard
//
/////////////////////////////////////////////////////////////////
//
// Based on the official layout for Dzongkha
// approved by the Department of Information Technology &
// Dzongkha Development Authority of the Government of Bhutan
//
// Copyright (C) 2004, Gregory Mokhin <mokhin@bog.msu.ru>
/////////////////////////////////////////////////////////////////
// Version 0.97 2004-01-09 Layout map provided by Chris Fynn
// Version 1.0 2004-07-29 Some correction by Pema Geyleg <pema_geyleg@druknet.bt>
/////////////////////////////////////////////////////////////////
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Dzongkha";
key <TLDE> { [ 0x1000F09, 0x1000F0A, 0x1000F6C, 0x1000F6D ] };
// numbers e.a.
key <AE01> { [ 0x1000F21, 0x1000F04, 1, exclam ] };
key <AE02> { [ 0x1000F22, 0x1000F05, 2, at ] };
key <AE03> { [ 0x1000F23, 0x1000F06, 3, numbersign ] };
key <AE04> { [ 0x1000F24, 0x1000F48, 4, dollar ] };
key <AE05> { [ 0x1000F25, 0x1000F70, 5, percent ] };
key <AE06> { [ 0x1000F26, 0x1000F08, 6, 0x1000F01 ] };
key <AE07> { [ 0x1000F27, 0x1000F38, 7, ampersand ] };
key <AE08> { [ 0x1000F28, 0x1000F34, 8, asterisk ] };
key <AE09> { [ 0x1000F29, 0x1000F3C, 9, parenleft ] };
key <AE10> { [ 0x1000F20, 0x1000F3D, 0, parenright ] };
key <AE11> { [ 0x1000F14, 0x1000F7F, minus, underscore ] };
key <AE12> { [ 0x1000F0D, 0x1000F11, equal, plus ] };
// consonants ( ka kha ga nga )
key <AD01> { [ 0x1000F40, 0x1000F90, 0x1000F88, VoidSymbol ] };
key <AD02> { [ 0x1000F41, 0x1000F91, 0x1000F89, VoidSymbol ] };
key <AD03> { [ 0x1000F42, 0x1000F92, 0x1000F6E, 0x1000F6F] };
key <AD04> { [ 0x1000F44, 0x1000F94, 0x1000F83, 0x1000F82 ] };
// vowels ( i u e o )
key <AD05> { [ 0x1000F72, 0x1000F80, 0x1000F1A, VoidSymbol ] };
key <AD06> { [ 0x1000F74, 0x1000F84, 0x1000F1B, VoidSymbol ] };
key <AD07> { [ 0x1000F7A, 0x1000F7B, 0x1000F1C, VoidSymbol ] };
key <AD08> { [ 0x1000F7C, 0x1000F7D, 0x1000F1D, 0x1000F17 ] };
// consonants ( ca cha ja nya )
key <AD09> { [ 0x1000F45, 0x1000F95, 0x1000F1E, 0x1000F18 ] };
key <AD10> { [ 0x1000F46, 0x1000F96, 0x1000F1F, 0x1000F19 ] };
key <AD11> { [ 0x1000F47, 0x1000F97, bracketleft, 0x1000F3E ] };
key <AD12> { [ 0x1000F49, 0x1000F99, bracketright, 0x1000F3F ] };
// consonants ( ta tha da na pa pha ba ma tsa tsha dza wa )
key <AC01> { [ 0x1000F4F, 0x1000F9F, 0x1000F4A, 0x1000F9A ] };
key <AC02> { [ 0x1000F50, 0x1000FA0, 0x1000F4B, 0x1000F9B ] };
key <AC03> { [ 0x1000F51, 0x1000FA1, 0x1000F4C, 0x1000F9C ] };
key <AC04> { [ 0x1000F53, 0x1000FA3, 0x1000F4E, 0x1000F9E ] };
key <AC05> { [ 0x1000F54, 0x1000FA4, 0x1002039, guillemotleft ] };
key <AC06> { [ 0x1000F55, 0x1000FA5, 0x100203A, guillemotright ] };
key <AC07> { [ 0x1000F56, 0x1000FA6, 0x1000F37, 0x1000F35 ] };
key <AC08> { [ 0x1000F58, 0x1000FA8, 0x1000F7E, VoidSymbol ] };
key <AC09> { [ 0x1000F59, 0x1000FA9, 0x1000F39, VoidSymbol ] };
key <AC10> { [ 0x1000F5A, 0x1000FAA, colon, semicolon ] };
key <AC11> { [ 0x1000F5B, 0x1000FAB, apostrophe, quotedbl ] };
// TODO: BKSL and LSGT are from gb layout, are there any variants?
key <BKSL> { [ 0x1000F5D, 0x1000FAD, backslash, 0x1000FBA ] };
key <LSGT> { [ 0x1000F0D, 0x1000F11, 0x1000F10, 0x1000F0F ] };
// consonants ( zha za 'a ya ra la sha sa ha a )
key <AB01> { [ 0x1000F5E, 0x1000FAE, 0x1000F13, 0x1000F36 ] };
key <AB02> { [ 0x1000F5F, 0x1000FAF, 0x1000FBE, 0x1000FBF ] };
key <AB03> { [ 0x1000F60, 0x1000F71, 0x1000F03, 0x1000FB0 ] };
key <AB04> { [ 0x1000F61, 0x1000FB1, 0x1000F12, 0x1000FBB ] };
key <AB05> { [ 0x1000F62, 0x1000FB2, 0x1000F6A, 0x1000FBC ] };
key <AB06> { [ 0x1000F63, 0x1000FB3, 0x1000F8A, 0x1000F8B ] };
key <AB07> { [ 0x1000F64, 0x1000FB4, 0x1000F65, 0x1000FB5 ] };
key <AB08> { [ 0x1000F66, 0x1000FB6, comma, less ] };
key <AB09> { [ 0x1000F67, 0x1000FB7, period, greater ] };
key <AB10> { [ 0x1000F68, 0x1000FB8, slash, question ] };
// space
key <SPCE> { [ 0x1000F0B, space, 0x1000F0C, nobreakspace ] };
include "level3(ralt_switch)"
};

View File

@@ -0,0 +1,19 @@
default partial alphanumeric_keys
xkb_symbols "tswana" {
include "us"
name[Group1]= "Tswana";
key <TLDE> {[ grave, asciitilde, 0x01000300, 0x01000303 ]}; // COMBINING GRAVE ACCENT, COMBINING TILDE
key <AE06> {[ 6, asciicircum, 0x01000302 ]}; // COMBINING CIRCUMFLEX ACCENT
key <AE08> {[ 8, asterisk, 0x01000307, 0x01000323 ]}; // COMBINING DOT ABOVE, COMBINING DOT BELOW
key <AE09> {[ 9, parenleft, 0x01000306 ]}; // COMBINING BREVE
key <AE10> {[ 0, parenright, 0x0100030c ]}; // COMBINING CARON
key <AE11> {[ minus, underscore, 0x01000304, 0x01000331 ]}; // COMBINING MACRON, COMBINING MACRON BELOW
key <AC10> {[ semicolon, colon, 0x01000324, 0x01000324 ]}; // COMBINING DIAERESIS BELOW
key <AC11> {[apostrophe, quotedbl, 0x01000301, 0x01000308 ]}; // COMBINING ACUTE ACCENT, COMBINING DIAERESIS
include "level3(ralt_switch)"
};

View File

@@ -0,0 +1,80 @@
// Belarusian standard keyboard, by Alexander Mikhailian <mikhailian@altern.org>.
// Reworked to use winkeys by default and russian keymap as base by Paul Lubetsky <vegeek@gmail.com>
// Added Belarusian-Russian and Russian-Belarusian variants, by Pavel Senchanka <pavel.senchanka@gmail.com>
// See freedesktop.org bug #23604
default partial alphanumeric_keys
xkb_symbols "basic" {
include "ru(winkeys)"
name[Group1]= "Belarusian";
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 <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 ] };
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 language 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 is it 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)"
};

View File

@@ -0,0 +1,483 @@
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 ] };
key <AD04> { [ r, R ] };
key <AD05> { [ t, T ] };
key <AD06> { [ y, Y ] };
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, Ooblique ] };
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 ] };
};
partial
xkb_symbols "multi" {
include "ca(fr)"
name[Group1] = "Canadian (intl., 1st part)";
key <TLDE> { [ slash, backslash, bar ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, dollar ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, question ] };
key <AE07> { [ 7, ampersand, braceleft ] };
key <AE08> { [ 8, asterisk, braceright ] };
key <AE09> { [ 9, parenleft, bracketleft ] };
key <AE10> { [ 0, parenright, bracketright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus, notsign ] };
key <AD09> { [ o, O ] };
key <AD10> { [ p, P ] };
key <AD11> { [dead_circumflex, dead_diaeresis, dead_grave ] };
key <AD12> { [ ccedilla, Ccedilla, asciitilde ] };
key <AC10> { [ semicolon, colon, degree ] };
key <AC11> { [ egrave, Egrave ] };
key <BKSL> { [ agrave, Agrave ] };
key <LSGT> { [ ugrave, Ugrave ] };
key <AB01> { [ z, Z, guillemotleft ] };
key <AB02> { [ x, X, guillemotright ] };
key <AB08> { [ comma, apostrophe, less ] };
key <AB09> { [ period, quotedbl, greater ] };
key <AB10> { [ eacute, Eacute ] };
};
partial
xkb_symbols "multi-2gr" {
name[Group1] = "Canadian (intl., 2nd part)";
key <TLDE> { [ NoSymbol, hyphen ] };
key <AE01> { [ onesuperior, exclamdown ] };
key <AE02> { [ twosuperior, NoSymbol ] };
key <AE03> { [ threesuperior, sterling ] };
key <AE04> { [ onequarter, currency ] };
key <AE05> { [ onehalf,threeeighths ] };
key <AE06> { [ threequarters, fiveeighths ] };
key <AE07> { [ NoSymbol,seveneighths ] };
key <AE08> { [ NoSymbol, trademark ] };
key <AE09> { [ NoSymbol, plusminus ] };
key <AE11> { [ NoSymbol, questiondown] };
key <AE12> { [ dead_cedilla, dead_ogonek ] };
key <AD01> { [ NoSymbol, Greek_OMEGA ] };
key <AD02> { [ lstroke, Lstroke ] };
key <AD03> { [ oe, OE ] };
key <AD04> { [ paragraph, registered ] };
key <AD05> { [ tslash, Tslash ] };
key <AD06> { [ leftarrow, yen ] };
key <AD07> { [ downarrow, uparrow ] };
key <AD08> { [ rightarrow, idotless ] };
key <AD09> { [ oslash, Ooblique ] };
key <AD10> { [ thorn, THORN ] };
key <AD11> { [ NoSymbol, dead_abovering ] };
key <AD12> { [ dead_tilde, dead_macron ] };
key <AC01> { [ ae, AE ] };
key <AC02> { [ ssharp, section ] };
key <AC03> { [ eth, ETH ] };
key <AC04> { [ NoSymbol, ordfeminine ] };
key <AC05> { [ eng, ENG ] };
key <AC06> { [ hstroke, Hstroke ] };
key <AC07> { [ U0133, U0132 ] };
key <AC08> { [ kra, NoSymbol ] };
key <AC09> { [ U0140, U013F ] };
key <AC10> { [ dead_acute, dead_doubleacute ] };
key <AC11> { [ NoSymbol, dead_caron ] };
key <BKSL> { [ NoSymbol, dead_breve ] };
key <LSGT> { [ NoSymbol, brokenbar ] };
key <AB03> { [ cent, copyright ] };
key <AB04> { [ leftdoublequotemark, leftsinglequotemark ] };
key <AB05> { [ rightdoublequotemark, rightsinglequotemark ] };
key <AB06> { [ U0149, U266A ] };
key <AB07> { [ mu, masculine ] };
key <AB08> { [ Greek_horizbar, multiply ] };
key <AB09> { [ periodcentered, division ] };
key <AB10> { [ NoSymbol, dead_abovedot ] };
};
// Inuktitut keyboard layout, by Pablo Saratxaga <pablo@mandrakesoft.com>.
alphanumeric_keys
xkb_symbols "ike" {
name[Group1]= "Inuktitut";
key <AE01> { [ 0x01001595, 1 ] };
key <AE02> { [ 0x01001449, 2 ] };
key <AE03> { [ 0x01001550, 3 ] };
key <AE04> { [ 0x01001483, 4 ] };
key <AE05> { [ 0x01001466, 5 ] };
key <AE06> { [ 0x01001585, 6 ] };
key <AE07> { [ 0x010014bb, 7 ] };
key <AE08> { [ 0x010014d0, 8 ] };
key <AE09> { [ 0x010014ea, 9 ] };
key <AE10> { [ 0x0100153e, 0 ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ 0x0100155d, equal ] };
key <AD01> { [ 0x0100158f, 0x0100148b ] };
key <AD02> { [ 0x01001403, 0x01001431 ] };
key <AD03> { [ 0x0100157f, 0x01001546 ] };
key <AD04> { [ 0x0100146d, 0x01001596 ] };
key <AD05> { [ 0x0100144e, 0x01001671 ] };
key <AD06> { [ 0x010014ef, 0x01001673 ] };
key <AD07> { [ 0x010014a5, 0x01001675 ] };
key <AD08> { [ 0x010014c2, 0x010015a4 ] };
key <AD09> { [ 0x010014d5, 0x010015a0 ] };
key <AD10> { [ 0x01001528, 0x010015a6 ] };
key <AD11> { [ 0x010014a1, 0x01001505 ] };
key <AD12> { [ dead_abovedot, 0x0100141e] };
key <AC01> { [ 0x01001591, 0x0100148d ] };
key <AC02> { [ 0x01001405, 0x01001433 ] };
key <AC03> { [ 0x01001581, 0x01001548 ] };
key <AC04> { [ 0x0100146f, 0x01001555 ] };
key <AC05> { [ 0x01001450, parenleft ] };
key <AC06> { [ 0x010014f1, parenright ] };
key <AC07> { [ 0x010014a7, 0x0100152a ] };
key <AC08> { [ 0x010014c4, 0x01001557 ] };
key <AC09> { [ 0x010014d7, 0x010015a2 ] };
key <AC10> { [ semicolon, colon ] };
key <AC11> { [ apostrophe, quotedbl ] };
key <AB01> { [ 0x01001593, 0x01001490 ] };
key <AB02> { [ 0x0100140a, 0x01001438 ] };
key <AB03> { [ 0x01001583, 0x0100154b ] };
key <AB04> { [ 0x01001472, question ] };
key <AB05> { [ 0x01001455, 0x0100157c ] };
key <AB06> { [ 0x010014f4, 0x010014c7 ] };
key <AB07> { [ 0x010014aa, 0x010014da ] };
key <AB08> { [ comma, less ] };
key <AB09> { [ period, greater ] };
key <AB10> { [ 0x0100152d, 0x01001559 ] };
key <TLDE> { [ 0x0100157b, 0x01001575 ] };
key <LSGT> { [ 0x01001579, 0x01001577 ] };
key <BKSL> { [ backslash, bar ] };
};
partial
xkb_symbols "multix" {
name[Group1] = "Canadian (intl.)";
key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";
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, cent, NoSymbol, onequarter, currency ]};
key <AE05> {[ 5, percent, currency, NoSymbol, onehalf, threeeighths ]};
key <AE06> {[ 6, question, notsign, 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, NoSymbol, 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, Ooblique ]};
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, U1E9E ]};
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.type[group1]="FOUR_LEVEL_SEMIALPHABETIC";
key <AB01> {[ z, Z, guillemotleft, NoSymbol ]};
key <AB02> {[ x, X, guillemotright, NoSymbol ]};
key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";
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 <AB08> {[ comma, apostrophe, less, NoSymbol, Greek_horizbar, multiply ]};
key <AB09> {[ period, quotedbl, greater, NoSymbol, periodcentered, division ]};
key <AB10> {[ eacute, Eacute, dead_acute, NoSymbol, NoSymbol, dead_abovedot ]};
include "nbsp(level3s)"
modifier_map Control{ Control_L };
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, VoidSymbol ] };
key <AD03> { [ e, E, EuroSign, VoidSymbol] };
key <AB09> { [ period, period, 0x1002010 ] };
key <I219> { [ guillemotleft, guillemotright, degree, VoidSymbol ] };
};
partial alphanumeric_keys
xkb_symbols "eng" {
include "us(basic)"
name[Group1] = "English (Canada)";
key <LSGT> { [ backslash, bar, VoidSymbol, VoidSymbol ] };
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "kut" {
// Ejective U0313 and acute accents are taken from shs layout.
include "ca(shs)"
name[Group1]= "Kutenai";
// Alveolar Click
key <AD05> { [ t, T,U01C2 ,U01C2 ] };
//Cent sign
key <AB03> { [ c, C,U00A2,U00A2 ] };
//Mid dot
key <AB09> { [ period, greater,U00B7 ] };
//Glottal stop
key <AB10> { [ slash, question, U0294 ] };
//COMBINING COMMA ABOVE RIGHT
key <AC11> { [ apostrophe, quotedbl, U0315,U0315 ] };
//MODIFIER LETTER RIGHT HALF RING
key <AC10> { [ semicolon, colon,U02BE,U02BE ] };
};
// 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)"
};

View File

@@ -0,0 +1,88 @@
default hidden partial modifier_keys
xkb_symbols "capslock" {
replace key <CAPS> { [ Caps_Lock ] };
modifier_map Lock { Caps_Lock };
};
hidden partial modifier_keys
xkb_symbols "shiftlock" {
replace key <CAPS> { [ Shift_Lock ] };
modifier_map Shift { Shift_Lock };
};
hidden partial modifier_keys
xkb_symbols "grouplock" {
replace key <CAPS> { [ ISO_Next_Group, Caps_Lock ] };
};
hidden partial modifier_keys
xkb_symbols "groupshift" {
key <CAPS> {
type[Group1] = "PC_ALT_LEVEL2",
[ Mode_switch, Caps_Lock ]
};
};
hidden partial modifier_keys
xkb_symbols "swapescape" {
key <CAPS> { [ Escape ] };
key <ESC> { [ Caps_Lock ] };
};
hidden partial modifier_keys
xkb_symbols "escape" {
key <CAPS> { [ Escape ] };
};
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 "backspace" {
key <CAPS> { [ BackSpace ] };
};
hidden partial modifier_keys
xkb_symbols "super" {
key <CAPS> { [ Super_L ] };
modifier_map Mod4 { <CAPS> };
};
hidden partial modifier_keys
xkb_symbols "hyper" {
key <CAPS> { [ Hyper_L ] };
modifier_map Mod4 { <CAPS> };
};
hidden partial modifier_keys
xkb_symbols "menu" {
key <CAPS> { [ Menu ] };
};
hidden partial modifier_keys
xkb_symbols "numlock" {
key <CAPS> { [ Num_Lock ] };
};
// This changes the <CAPS> key to become a Control modifier,
// but it will still produce the Caps_Lock keysym.
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 ] };
};

View File

@@ -0,0 +1,65 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "French (Democratic Republic of the Congo)";
key.type[Group1] = "FOUR_LEVEL";
// GRAVE, TILDE, COMBINING TILDE
key <TLDE> { [ grave, asciitilde, 0x01000303 ] };
key <AE01> { [ ampersand, 1, numbersign ] };
key <AE02> { [0x01000301, 2, at ] };
key <AE03> { [0x01000300, 3, guillemotleft ] };
key <AE04> { [ parenleft, 4, bracketleft ] };
key <AE05> { [ braceleft, 5, less ] };
key <AE06> { [ braceright, 6, greater ] };
key <AE07> { [parenright, 7, bracketright ] };
key <AE08> { [0x01000302, 8, guillemotright ] };
key <AE09> { [0x0100030c, 9, 0x0100030D ] };
key <AE10> { [0x01000308, 0, at ] };
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, 0x01000289, 0x01000244 ] };
key <AD08> { [ i, I, 0x01000268, 0x01000197 ] };
key <AD09> { [ o, O, oslash, Ooblique ] };
key <AD10> { [ p, P ] };
key <AD11> { [0x0100025B, 0x01000190, 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> { [0x01000254, 0x01000186 ] };
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, 0x0100014B, 0x0100014A ] };
key <AB07> { [ comma, question, 0x01000327 ] };
key <AB08> { [ semicolon, period ] };
key <AB09> { [ colon, slash ] };
key <AB10> { [ exclam, apostrophe, 0x01002019 ] };
key <BKSL> { [ quotedbl, backslash, bar ] };
// SPACE, SPACE, NO-BREAK SPACE, NARROW NO_BREAK SPACE
key <SPCE> { [ space, space, nobreakspace, 0x0100202F ] };
include "level3(ralt_switch)"
};

View File

@@ -0,0 +1,187 @@
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" {
// modify the basic Swiss German layout not to have any dead keys
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" {
// modify the basic Swiss French layout not to have any dead keys
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 ] };
};
// Copied from macintosh_vndr/ch
// 03.01.2003
// Andreas Tobler <a.tobler@schweiz.ch>
// modified for Swiss German Apple Extended Keyboard II
partial alphanumeric_keys
xkb_symbols "de_mac" {
name[Group1]= "German (Switzerland, Macintosh)";
key <AE01> { [ 1, plus, plusminus, infinity ] };
key <AE02> { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] };
key <AE03> { [ 3, asterisk, numbersign, leftcaret ] };
// not displayed here
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, Ooblique ] };
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 "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)"
};

View File

@@ -0,0 +1,489 @@
// ========== Cameroon Keyboards ==========
// ----------------------------------------------------------------------------
// This comment was added by <fotang at mmuock dot org>, on 18-Jun-2016:
//
// All comments below this one, were in the original cm file;they do not
// apply to the Mmuock keyboard which is defined towards the end of this file.
// ----------------------------------------------------------------------------
// ****** For Instructions, see "Use of Cameroon Keyboards" section below ******
// The XKB versions of these 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 is officially a bilingual country, using French and English, but there are over 270 minority languages.
// * Cameroon Français is an exact copy of the French France keyboard intended for AZERTY users.
// * Cameroon is an exact copy of the Basic US Keyboard. I can not currently name this "Cameroon English" due to a limitation of XKB.
// * 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.
// * Cameroon Dvorak is described below.
// ===== Use of Cameroon Keyboards =====
// == Fonts ==
// These keyboards are fully Unicode (5.1), so we recommend using a good unicode font for diacritics to position correctly. Recommended fonts are: ttf-sil-charis, ttf-sil-doulos, ttf-sil-gentium and ttf-sil-andika (All of which are free for Linux, Mac, and Windows).
// == Cameroon AZERTY ==
// Cameroon AZERTY uses the French France (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 (and/or Shift) 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.
// == 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 (and/or Shift) 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.
// == Cameroon Dvorak ==
// Cameroon Dvorak is uses a similar system to Cameroon QWERTY.
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]="English (Cameroon)";
key <TLDE> { [ 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 <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, U003F ] };
key <BKSL> { [ backslash, bar ] };
};
partial alphanumeric_keys
xkb_symbols "french"
{
include "latin"
name[Group1]="French (Cameroon)";
key <AE01> { [ ampersand, 1, onesuperior, exclamdown ] };
key <AE02> { [ eacute, 2, asciitilde, oneeighth ] };
key <AE03> { [ quotedbl, 3, numbersign, sterling ] };
key <AE04> { [apostrophe, 4, braceleft, dollar ] };
key <AE05> { [ parenleft, 5, bracketleft, threeeighths ] };
key <AE06> { [ minus, 6, bar, fiveeighths ] };
key <AE07> { [ egrave, 7, grave, seveneighths ] };
key <AE08> { [underscore, 8, backslash, trademark ] };
key <AE09> { [ ccedilla, 9, asciicircum, plusminus ] };
key <AE10> { [ agrave, 0, at, degree ] };
key <AE11> { [parenright, degree, bracketright, questiondown ] };
key <AE12> { [ equal, plus, braceright, dead_ogonek ] };
key <AD01> { [ a, A, ae, AE ] };
key <AD02> { [ z, Z, guillemotleft, less ] };
key <AD03> { [ e, E, EuroSign, cent ] };
key <AD11> { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] };
key <AD12> { [ dollar, sterling, currency, dead_macron ] };
key <AC01> { [ q, Q, at, Greek_OMEGA ] };
key <AC10> { [ m, M, mu, masculine ] };
key <AC11> { [ ugrave, percent, dead_circumflex, dead_caron] };
key <TLDE> { [twosuperior, asciitilde, notsign, notsign ] };
key <BKSL> { [ asterisk, mu, dead_grave, dead_breve ] };
key <AB01> { [ w, W, lstroke, Lstroke ] };
key <AB07> { [ comma, U003F, dead_acute, dead_doubleacute ] };
key <AB08> { [ semicolon, period, U2022, multiply ] }; // bullet
key <AB09> { [ colon, slash, periodcentered, division ] };
key <AB10> { [ exclam, section, dead_belowdot, dead_abovedot ] };
include "level3(ralt_switch)"
};
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, U0259, U018F ] }; // SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER 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
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, KP_Multiply, 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)"
};
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, U0259, U018F ] }; // SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER 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"
{
include "us(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, U0259, U018F ] }; // SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER 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> { [ KP_1, exclam, U00BC ] }; // 1, EXCLAMATION POINT, ONE QUARTER
key <AE02> { [ KP_2, at, U00BD ] }; // 2, AT SYMBOL, ONE HALF
key <AE03> { [ KP_3, numbersign, U00BE ] }; // 3, NUMBER SIGN, THREE QUARTERS
key <AE04> { [ KP_4, dollar, NoSymbol, U20AC ] }; // 4, DOLLAR, , EURO SIGN
key <AE05> { [ KP_5, percent ] }; // 5, PERCENT
key <AE06> { [ KP_6, asciicircum ] }; // 6, CARET
key <AE07> { [ KP_7, ampersand ] }; // 7, AMPERSAND
key <AE08> { [ KP_8, asterisk, NoSymbol, multiply ] }; // 8, ASTERISK, , MULTIPLY
key <AE09> { [ KP_9, parenleft, leftsinglequotemark, leftdoublequotemark ] }; // 9, LEFT PARENTHESIS, LEFT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK
key <AE10> { [ KP_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> {
symbols[Group1] = [ ISO_Level3_Latch, colon, semicolon, colon ]};
modifier_map Mod5 { ISO_Level3_Latch };
};
partial modifier_keys
xkb_symbols "exclamation_switch" {
key <AB10> {
symbols[Group1] = [ ISO_Level3_Latch, U00A7, exclam, U00A7 ]
};
modifier_map Mod5 { ISO_Level3_Latch };
};
partial modifier_keys
xkb_symbols "semicolon_switch_dvorak" {
key <AB01> {
symbols[Group1] = [ ISO_Level3_Latch, colon, semicolon, colon ]
};
modifier_map Mod5 { ISO_Level3_Latch };
};
// ------- begin Mmuock alphabet layout ------------------------------------------
// This layout is used 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
//
// CHANGES v 1.0:
// 2014-07-06 corrected shifted level3 of <AC11> to quotedbl
// CHANGES v 1.1:
// 2015-05-23 1- added dead_tilde to key <TILDE>; this is needed to produce
// the letter <ñ> which was totally missing from the keyboard
// 2- added letter <dz> to <AB01>; the letter had been missing.
// 3- if we're not re-defining particular symbols from the included
// latin layout, then maintain the original latin mappings.
// Previously, we had set them to NoSymbol. Now, we want to
// keep the original latin mappings except for those few that we
// want to overwrite for our own keyboard.
//
// CHANGES v 1.2:
// 2016-06-17 1- added dead keys dead_macron, dead_acute, and dead_grave for
// tones 1, 3, and 4, for compatibility with the Keyman version.
// 2- rearranged combining diacritics for tones 0 to 5 such that
// the diacritics are on consequetive keys (AC01 to AC05).
// 3- moved tone 8 to level 3 of AE12.
// 4- moved layout definition out of the EXTRAS section.
// 5- for a cleaner keyboard,
// replaced ṭhe included latin layout with us(basic).
//
//
// NOTES:
// 0. This map is based on the Latin alphabet layout for the US keyboard.
//
// 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 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)"
include "level3(ralt_switch)"
name[Group1]= "Mmuock";
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, Ooblique, 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 <TLDE> { [ dead_grave, dead_tilde, grave, asciitilde ] };
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 ] };
key <BKSL> { [ ae, AE, backslash, bar ] };
include "cm(solidus_switch)"
};
// use slash as special key for switching to level3
partial modifier_keys
xkb_symbols "solidus_switch" {
key <AB10> {
symbols[Group1] = [ ISO_Level3_Latch, question, slash, dead_abovedot ]
};
modifier_map Mod5 { ISO_Level3_Latch };
};
// ------- end of Mmuock keyboard map --------------------------------------------

View File

@@ -0,0 +1,712 @@
//
// Default Chinese is the same as 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 ] }; // /: ---
};

View File

@@ -0,0 +1,89 @@
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 ] };
};
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 ] };
};

View File

@@ -0,0 +1,123 @@
// Eliminate CapsLock, making it another Ctrl.
partial modifier_keys
xkb_symbols "nocaps" {
replace key <CAPS> { [ Control_L, Control_L ] };
modifier_map Control { <CAPS>, <LCTL> };
};
// 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 ] };
replace key <LCTL> { [ Caps_Lock ] };
modifier_map Control { <CAPS> };
modifier_map Lock { <LCTL> };
};
// Swap the functions of the CapsLock key and the left Ctrl key,
// but make the Ctrl key a 'Hyper' modifier
partial modifier_keys
xkb_symbols "swapcaps_hyper" {
replace key <CAPS> { [ Control_L ] };
replace key <LCTL> { [ Hyper_L ] };
modifier_map Control { <CAPS> };
modifier_map Mod3 { <LCTL> };
};
// Set CapsLock to left Ctrl and left Ctrl to switch layout.
partial modifier_keys
xkb_symbols "swapcaps_and_switch_layout" {
replace key <CAPS> { [ Control_L ] };
replace key <LCTL> { [ ISO_Next_Group ] };
modifier_map Control { <CAPS> };
modifier_map Lock { <LCTL> };
};
// 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 ] };
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> { symbols[Group1]= [ Alt_R ] };
modifier_map Mod1{ <RCTL> };
};
// Menu key functions as another right Ctrl.
partial modifier_keys
xkb_symbols "menu_rctrl" {
replace key <MENU> { [ Control_R, Control_R ] };
modifier_map Control { Control_L, <MENU> };
};
// Right Alt key functions as another right Ctrl.
partial modifier_keys
xkb_symbols "ralt_rctrl" {
replace key <RALT> { type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Control_R, Control_R ] };
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 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> };
};

View File

@@ -0,0 +1,483 @@
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.
// 2001 by Kamil Toman <ktoman@email.cz>
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 <AC12> { [ EuroSign, dead_diaeresis, NoSymbol, NoSymbol ] };
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" {
// Use <BKSL> instead of <LSGT> (useful for keyboards without <LSGT> key).
include "cz(basic)"
name[Group1]= "Czech (with <\|> key)";
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.
// 2011 by Lukáš Mojžíš <lmojzis@grenames.cz>
include "cz(basic)"
name[Group1]= "Czech (QWERTY)";
key <AB01> { [ z, Z, degree, NoSymbol ] };
key <AC10> { [ uring, quotedbl, semicolon, colon ] };
key <AC11> { [ section, exclam, apostrophe, ssharp ] };
key <AD06> { [ y, Y, NoSymbol, NoSymbol ] };
key <AD11> { [ uacute, slash, bracketleft, braceleft ] };
key <AD12> { [parenright, parenleft, bracketright, braceright ] };
key <AE09> { [ iacute, 9, parenleft, dead_acute ] };
key <AE10> { [ eacute, 0, parenright, dead_doubleacute ] };
};
xkb_symbols "qwerty_bksl" {
// Use <BKSL> instead of <LSGT> (useful for keyboards without <LSGT> key).
include "cz(qwerty)"
name[Group1]= "Czech (QWERTY, extended backslash)";
key <BKSL> { [ backslash, bar, slash, NoSymbol ] };
};
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 usually used as the second group,
// it contains accented characters only, no 'latin' set.
// 2008 by Milan Vancura <mvancura@suse.cz>
name[Group1]= "Czech (UCW, only accented letters)";
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 ] };
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 <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 ] };
};
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 <AB03> { [ j, J, eacute, Eacute ] };
key <AB04> { [ k, K, uacute, Uacute ] };
key <AB10> { [ z, Z, zcaron, Zcaron ] };
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 <AD05> { [ y, Y, yacute, Yacute ] };
key <AD08> { [ c, C, ccaron, Ccaron ] };
key <AD09> { [ r, R, rcaron, Rcaron ] };
include "level3(ralt_switch)"
};
// phonetic layout for Russian letters on an CZ (QWERTY) keyboard
// originaly created by Pavel Sorejs <sorejs@gmail.com>
partial alphanumeric_keys
xkb_symbols "rus" {
include "cz(qwerty)"
name[Group1]= "Russian (Czech, phonetic)";
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 <AB08> { [ comma, question ] };
key <AB09> { [ period, exclam ] };
key <AB10> { [ minus, slash ] };
key <AC11> { [ semicolon, colon ] };
key <LSGT> { [ bar, brokenbar ] };
key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
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 <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 <BKSL> { [ backslash, brokenbar ] };
include "level3(ralt_switch)"
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/cz(sun_type6)"
};
xkb_symbols "prog" {
// cz-prog 1.0 2019-05-15 by Viktor Grešák <vgresak@gmail.com> and Tomáš Hudec <Tommy.Hudec@gmail.com>
//
// Programmer keyboard. Based on the US layout with accented Czech letters and dead keys.
// Using AltGr and a key from the 1st row generates original level 2 US key as level 3 except TLDE and AE12.
// Using AltGr+Shift on accented letters generates its uppercase variant.
// Using AltGr or AltGr+Shift on letters which have accent in Czech but are not on the 1st row directly accessible generate accented letters,
// i.e. [d, D], [t, T], [n, N], [o, O] generate with AltGr and AltGr+Shift: [dcaron, Dcaron], [tcaron, Tcaron], [ncaron, Ncaron], [oacute, Oacute].
// Other Czech letters besides alphanumeric keys (like uacute, uring) are generated using AltGr.
name[Group1]="Czech (programming)";
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 <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 <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 <AE01> { [ plus, 1, exclam, NoSymbol ] };
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 <BKSL> { [ backslash, bar, dead_diaeresis ] };
key <BKSP> { [ BackSpace, BackSpace ] };
key <CAPS> { [ Caps_Lock ] };
key <COMP> { [ Menu, Multi_key ] };
key <LALT> { [ Alt_L, Meta_L ] };
key <LCTL> { [ Control_L ] };
key <LFSH> { [ Shift_L ] };
key <LWIN> { [ Super_L ] };
key <RALT> { [ ISO_Level3_Shift ] };
key <RCTL> { [ Control_R ] };
key <RTRN> { [ Return ] };
key <RTSH> { [ Shift_R ] };
key <RWIN> { [ Super_R ] };
key <SPCE> { [ space ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <TLDE> { [ grave, asciitilde ] };
include "level3(ralt_switch)"
};
xkb_symbols "typo" {
// cz-typo 1.0 2019-05-15 by Viktor Grešák <vgresak@gmail.com> and Tomáš Hudec <Tommy.Hudec@gmail.com>
//
// Contains typographic symbols in third and fourth level.
// It is intended to be used in conjuction with other existing layout, e.g. setxkbmap -symbols "pc+cz(basic)+cz(typo)+inet(evdev)"
name[Group1]="Czech (typographic)";
key <AB01> { [ NoSymbol, NoSymbol, degree, U2300 ] };
key <AB02> { [ NoSymbol, NoSymbol, multiply, U22C5 ] };
key <AB03> { [ NoSymbol, NoSymbol, ampersand, copyright ] };
key <AB04> { [ NoSymbol, NoSymbol, at, ordfeminine ] };
key <AB05> { [ NoSymbol, NoSymbol, enfilledcircbullet, enopencircbullet ] };
key <AB07> { [ NoSymbol, NoSymbol, U203A, U2039 ] };
key <AB08> { [ NoSymbol, NoSymbol, doublelowquotemark, leftdoublequotemark ] };
key <AB09> { [ NoSymbol, NoSymbol, ellipsis, rightdoublequotemark ] };
key <AB10> { [ NoSymbol, NoSymbol, endash, emdash ] };
key <AC04> { [ NoSymbol, NoSymbol, UFB00, UFB05 ] };
key <AC06> { [ NoSymbol, NoSymbol, U2010, U2011 ] };
key <AC07> { [ NoSymbol, NoSymbol, guillemotright, guillemotleft ] };
key <AC08> { [ NoSymbol, NoSymbol, dagger, doubledagger ] };
key <AC09> { [ NoSymbol, NoSymbol, UFB02, UFB04 ] };
key <AC11> { [ NoSymbol, NoSymbol, NoSymbol, UFB03 ] };
key <AD04> { [ NoSymbol, NoSymbol, U2030, registered ] };
key <AD06> { [ NoSymbol, NoSymbol, leftarrow ] };
key <AD07> { [ NoSymbol, NoSymbol, downarrow, uparrow ] };
key <AD08> { [ NoSymbol, NoSymbol, rightarrow, UFB01 ] };
key <AD10> { [ NoSymbol, NoSymbol, minutes, seconds ] };
key <AE01> { [ NoSymbol, NoSymbol, NoSymbol, rightsinglequotemark ] };
key <AE11> { [ NoSymbol, NoSymbol, underscore, U2212 ] };
key <SPCE> { [ space, space, space, nobreakspace ] };
key <TLDE> { [ NoSymbol, NoSymbol, singlelowquotemark, leftsinglequotemark ] };
};
xkb_symbols "coder" {
// US layout with Czech chars 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)"
};
xkb_symbols "prog_typo" {
// cz-prog-typo 1.0 2019-06-17 by Viktor Grešák <vgresak@gmail.com> and Tomáš Hudec <Tommy.Hudec@gmail.com>
//
// Programmer + Typographic keyboard. Based on the US layout with accented Czech letters and dead keys.
// Using AltGr and a key from the 1st row generates original level 2 US key as level 3 except TLDE and AE12.
// Using AltGr+Shift on accented letters generates its uppercase variant.
// Using AltGr or AltGr+Shift on letters which have accent in Czech but are not on the 1st row directly accessible generate accented letters,
// i.e. [d, D], [t, T], [n, N], [o, O] generate with AltGr and AltGr+Shift: [dcaron, Dcaron], [tcaron, Tcaron], [ncaron, Ncaron], [oacute, Oacute].
// Other Czech letters besides alphanumeric keys (like uacute, uring) are generated using AltGr.
//
// Contains typographic symbols in third and fourth level.
include "cz(prog)"
include "cz(typo)"
name[Group1]="Czech (programming, typographic)";
};

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 "symbols/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 ] };
};

View File

@@ -0,0 +1,85 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type2)"
name[Group1]="Danish";
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, Ooblique, dead_circumflex, dead_caron ] };
key <TLDE> { [ onehalf, section, threequarters, paragraph ] };
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 <AC10> { [ ae, AE, acute, doubleacute ] };
key <AC11> { [ oslash, Ooblique, asciicircum, caron ] };
key <BKSL> { [apostrophe, asterisk, doubleacute, multiply ] };
key <AB08> { [ comma, semicolon, cedilla, ogonek ] };
key <AB09> { [ period, colon, periodcentered, abovedot ] };
};
partial alphanumeric_keys
xkb_symbols "winkeys" {
include "dk(basic)"
name[Group1] = "Danish (Windows)";
include "eurosign(5)"
};
// Copied from macintosh_vndr/dk
partial alphanumeric_keys
xkb_symbols "mac" {
include "dk"
name[Group1]= "Danish (Macintosh)";
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
key <AB10> { [ minus, underscore, hyphen, macron ] };
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)"
};

View File

@@ -0,0 +1,189 @@
// Tamazight en caractères latin
// 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 "la" {
include "fr(oss)"
name[Group1]="Berber (Algeria, Latin)";
key <AD02> { [ z, Z, 0x1001E93, 0x1001E92 ] }; // z Z ẓ Ẓ
key <AD04> { [ r, R, 0x1001E5B, 0x1001E5A ] }; // r R ṛ Ṛ
key <AD05> { [ t, T, 0x1001E6D, 0x1001E6C ] }; // t T ṭ Ṭ
key <AD09> { [ o, O, 0x100025B, 0x1000190 ] }; // o O ɛ Ɛ
key <AC02> { [ s, S, 0x1001E63, 0x1001E62 ] }; // s s ṣ Ṣ
key <AC03> { [ d, D, 0x1001E0D, 0x1001E0C ] }; // d D ḍ Ḍ
key <AC05> { [ g, G, 0x10001E7, 0x10001E6 ] }; // g G ǧ Ǧ
key <AC06> { [ h, H, 0x1001E25, 0x1001E24 ] }; // h H ḥ Ḥ
key <AB03> { [ c, C, 0x100010D, 0x100010C ] }; // c C č Č
key <AB04> { [ v, V, 0x1000263, 0x1000194 ] }; // v V ɣ Ɣ
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "azerty-deadkeys" {
// Kabyle keyboard with dead keys
// 2020 by Louis Gostiaux <louis.gostiaux@free.fr>
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 ] }; // ʷ
key <AB08> { [ semicolon, period, dead_belowdot, dead_caron] };
// dead-below dot for ḍ,ṭ,ẓ,ḥ and dead-caron for č and ǧ
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "qwerty-gb-deadkeys" {
// Kabyle keyboard, uk international with dead keys
// 2020 by Louis Gostiaux <louis.gostiaux@free.fr>
include "gb(intl)"
name[Group1]= "Kabyle (QWERTY, UK, with dead keys)";
key <AC01> { [ a, A, U025B, U0190 ]}; // a A ɛ Ɛ
key <AD01> { [ q, Q, U0263, U0194 ] }; // q Q ɣ Ɣ
key <AB01> { [ z, Z, U2D63 ] }; // ⵣ
key <AD02> { [ w, W, U02B7 ] }; // ʷ
key <AB09> { [ period, greater , dead_belowdot, dead_caron] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "qwerty-us-deadkeys" {
// Kabyle keyboard, us international with dead keys
// 2020 by Louis Gostiaux <louis.gostiaux@free.fr>
include "us(intl)"
name[Group1]= "Kabyle (QWERTY, US, with dead keys)";
key <AC01> { [ a, A, U025B, U0190 ] }; // a A ɛ Ɛ
key <AD01> { [ q, Q, U0263, U0194 ] }; // q Q ɣ Ɣ
key <AB01> { [ z, Z, U2D63 ] }; // ⵣ
key <AD02> { [ w, W, U02B7 ] }; // ʷ
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)";
// First row
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, 0x1002014 ] }; // ' 4 { — (tiret cadratin)
key <AE05> { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ (tiret demi-cadratin)
key <AE06> { [ minus, 6, bar, 0x1002011 ] }; // - 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 ] }; // = + } ±
// Second row
key <AD01> { [ 0x1002D30 ] }; // ⴰ
key <AD02> { [ 0x1002D63, 0x1002D65, 0x1002D64 ] }; // ⵣ ⵥ ⵤ
key <AD03> { [ 0x1002D3B, 0x1002D66 ] }; // ⴻ ⵦ
key <AD04> { [ 0x1002D54, 0x1002D55 ] }; //
key <AD05> { [ 0x1002D5C, 0x1002D5F, 0x1002D5D ] }; // ⵜ ⵟ
key <AD06> { [ 0x1002D62 ] }; // ⵢ
key <AD07> { [ 0x1002D53 ] }; // ⵓ
key <AD08> { [ 0x1002D49 ] }; // ⵉ
key <AD09> { [ 0x1002D44, 0x1002D67 ] }; // ⵄ ⵧ
key <AD10> { [ 0x1002D43 ] }; // ⵃ
key <AD11> { [ 0x1002D6F ] }; // ⵯ
key <AD12> { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø
// Third row
key <AC01> { [ 0x1002D47, 0x1002D48 ] }; // ⵇ ⵈ
key <AC02> { [ 0x1002D59, 0x1002D5A ] }; // ⵙ ⵚ
key <AC03> { [ 0x1002D37, 0x1002D39, 0x1002D38, 0x1002D3A ] }; // ⴷ
key <AC04> { [ 0x1002D3C ] }; // ⴼ
key <AC05> { [ 0x1002D33, 0x1002D35, 0x1002D34, 0x1002D36 ] }; // ⴳ ⴵ ⴴ ⴶ
key <AC06> { [ 0x1002D40, 0x1002D41, 0x1002D42 ] }; // ⵀ ⵁ ⵂ
key <AC07> { [ 0x1002D4A, 0x1002D4B, 0x1002D4C ] }; // ⵊ ⵋ ⵌ Ü
key <AC08> { [ 0x1002D3D, 0x1002D3F, 0x1002D3E ] }; // ⴽ ⴿ ⴾ
key <AC09> { [ 0x1002D4D ] }; // ⵍ
key <AC10> { [ 0x1002D4E ] }; // ⵎ
key <AC11> { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù
key <BKSL> { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄
// Fourth row
key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥
key <AB01> { [ 0x1002D61 ] }; // ⵡ
key <AB02> { [ 0x1002D45, 0x1002D46 ] }; // ⵅ ⵆ
key <AB03> { [ 0x1002D5B, 0x1002D5E ] }; // ⵛ ⵞ
key <AB04> { [ 0x1002D56, 0x1002D57, 0x1002D58, 0x1002D60 ] }; // ⵖ ⵗ ⵘ ⵠ
key <AB05> { [ 0x1002D31, 0x1002D32, 0x1002D52 ] }; // ⴱ ⴲ ⵒ
key <AB06> { [ 0x1002D4F, 0x1002D50, 0x1002D51 ] }; //
key <AB07> { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ …
key <AB08> { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . ×
key <AB09> { [ colon, slash, division, 0x1002215 ] }; // : / ÷
key <AB10> { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡
include "level3(ralt_switch)"
};
// Arabic AZERTY with modern Latin digits
partial alphanumeric_keys
xkb_symbols "ar" {
include "ara(azerty)"
name[Group1]="Arabic (Algeria)";
};

View File

@@ -0,0 +1,106 @@
// Estonian keyboard layout, by Ville Hallik <ville@linux.ee>.
default partial alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple en_US
// keyboard and a very simple Estonian keyboard
// This layout conforms to both EVS8:1993 and EVS8:2000 standards
include "latin(type4)"
name[Group1]="Estonian";
key <AE03> { [ 3, numbersign, sterling, sterling ] };
key <AE04> { [ 4, currency, dollar, dollar ] };
key <AE11> { [ plus, question, backslash, questiondown ] };
key <AE12> { [dead_acute, dead_grave, grave, apostrophe ] };
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_caron ] };
key <TLDE> { [dead_caron, dead_tilde, notsign, notsign ] };
key <BKSL> { [apostrophe, asterisk, onehalf, dead_breve ] };
key <AB01> { [ z, Z, zcaron, Zcaron ] };
key <AB08> { [ comma, semicolon, less, multiply ] };
key <AB09> { [ period, colon, greater, division ] };
key <AB10> { [ minus, underscore, bar, abovedot ] };
include "level3(ralt_switch)"
include "eurosign(e)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
// Modifies the basic Estonian layout to eliminate all dead keys
include "ee(basic)"
name[Group1]="Estonian (no dead keys)";
key <TLDE> { [asciicircum,asciitilde ] };
key <AE12> { [apostrophe, grave ] };
key <AD11> { [udiaeresis, Udiaeresis, diaeresis, degree ] };
key <AD12> { [ otilde, Otilde, section, macron ] };
key <AC10> { [odiaeresis, Odiaeresis, acute, doubleacute ] };
key <AC11> { [adiaeresis, Adiaeresis, asciicircum, caron ] };
key <BKSL> { [apostrophe, asterisk, onehalf, breve ] };
key <AB10> { [ minus, underscore, dead_belowdot, abovedot ] };
};
// Dvorak with Estonian characters
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 "level3(ralt_switch)"
include "kpdl(comma)"
include "eurosign(5)"
};
// Estonian few characters on basic US keymap.
// by Elan Ruusamäe <glen@delfi.ee>
partial alphanumeric_keys
xkb_symbols "us" {
include "us(basic)"
name[Group1] = "Estonian (US)";
// ž, Ž
key <AB01> { [ z, Z, zcaron, Zcaron ] };
// ¢
key <AB03> { [ c, C, cent, cent ] };
// š, Š
key <AC02> { [ s, S, scaron, Scaron ] };
key <AC10> { [ semicolon, colon, odiaeresis, Odiaeresis ] };
key <AC11> { [ apostrophe, quotedbl, adiaeresis, Adiaeresis ] };
key <AD11> { [ bracketleft, braceleft, udiaeresis, Udiaeresis ] };
key <AD12> { [ bracketright, braceright, otilde, Otilde ] };
// £
key <AE03> { [ 3, numbersign, sterling, sterling ] };
include "level3(ralt_switch)"
include "eurosign(5)"
include "eurosign(e)"
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/ee(sun_type6)"
};

View File

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

View File

@@ -0,0 +1,150 @@
// Esperanto keyboard maps -- "Ekverto"
//
// Ekverto A ("legacy") (2004-01-10)
// Chusslove Illich (Ĉaslavo Iliĉo) <caslav.ilic@gmx.net>
//
// 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.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
key <AD01> { [ scircumflex, Scircumflex, q, Q ] };
key <AD02> { [ gcircumflex, Gcircumflex, w, W ] };
key <AB02> { [ ccircumflex, Ccircumflex, x, X ] };
key <AD06> { [ ubreve, Ubreve, y, Y ] };
key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
key <AD11> { [ jcircumflex, Jcircumflex, bracketleft, braceleft ] };
key <AD12> { [ hcircumflex, Hcircumflex, bracketright, braceright ] };
key <AD09> { [ o, O, braceleft, braceleft ] };
key <AD10> { [ p, P, braceright, 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 <AB06> { [ n, N, endash, endash ] };
key <AB07> { [ m, M, emdash, emdash ] };
key.type[Group1] = "FOUR_LEVEL";
key <AE05> { [ 5, percent, EuroSign, EuroSign ] };
include "level3(ralt_switch)"
};
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 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 ] };
};

View File

@@ -0,0 +1,255 @@
// Modified for a real Spanish keyboard by Jon Tombs.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type4)"
name[Group1]="Spanish";
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 <TLDE> { [ masculine, ordfeminine, backslash, backslash ] };
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 <AC10> { [ ntilde, Ntilde, asciitilde, doubleacute ] };
key <AC11> { [ acute, diaeresis, braceleft, caron ] };
key <BKSL> { [ ccedilla, Ccedilla, braceright, breve ] };
key <AB10> { [ minus, underscore, dead_belowdot, abovedot ] };
};
// Spanish 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 ] };
};
// Copied from macintosh_vndr/es
partial alphanumeric_keys
xkb_symbols "mac" {
include "es"
name[Group1]= "Spanish (Macintosh)";
};
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)"
};

View File

@@ -0,0 +1,75 @@
//
// 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> { [ 0x01001369, 0x01001372 ] }; // 1
key <AE02> { [ 0x0100136a, 0x01001373 ] }; // 2
key <AE03> { [ 0x0100136b, 0x01001374 ] }; // 3
key <AE04> { [ 0x0100136c, 0x01001375 ] }; // 4
key <AE05> { [ 0x0100136d, 0x01001376 ] }; // 5
key <AE06> { [ 0x0100136e, 0x01001377 ] }; // 6
key <AE07> { [ 0x0100136f, 0x01001378 ] }; // 7
key <AE08> { [ 0x01001370, 0x01001379 ] }; // 8
key <AE09> { [ 0x01001371, 0x0100137a ] }; // 9
key <AE10> { [ 0x0100137b, 0x0100137c ] }; // 0
key <AE11> { [ minus, underscore ] }; // -_
key <AE12> { [ equal, plus ] }; // =+
key <AD01> { [ 0x01001240, 0x01001250 ] }; // q
key <AD02> { [ 0x010012C8, VoidSymbol ] }; // w
key <AD03> { [ 0x0100FE69, 0x0100FE70 ] }; // dead e
key <AD04> { [ 0x01001228, VoidSymbol ] }; // r
key <AD05> { [ 0x01001270, 0x01001320 ] }; // t
key <AD06> { [ 0x010012E8, VoidSymbol ] }; // y
key <AD07> { [ 0x0100FE75, 0x0100FE76 ] }; // dead u
key <AD08> { [ 0x0100FE71, 0x0100FE72 ] }; // dead i
key <AD09> { [ 0x0100FE73, 0x0100FE74 ] }; // dead o
key <AD10> { [ 0x01001350, 0x01001330 ] }; // p
key <AD11> { [ 0x01001340, 0x01001338 ] }; // [
key <AD12> { [ 0x01001328, 0x01001280 ] }; // ]
key <AC01> { [ 0x0100FE67, 0x0100FE68 ] }; // dead a
key <AC02> { [ 0x01001230, 0x01001220 ] }; // s
key <AC03> { [ 0x010012F0, 0x010012F8 ] }; // d
key <AC04> { [ 0x01001348, VoidSymbol ] }; // f
key <AC05> { [ 0x01001308, 0x01001318 ] }; // g
key <AC06> { [ 0x01001200, 0x01001210 ] }; // h
key <AC07> { [ 0x01001300, VoidSymbol ] }; // j
key <AC08> { [ 0x010012A8, 0x010012B8 ] }; // k
key <AC09> { [ 0x01001208, VoidSymbol ] }; // l
key <AC10> { [ 0x01001362, 0x01001361 ] }; // :;
key <AC11> { [ 0x01001366, 0x01001365 ] }; // '"
key <AB01> { [ 0x010012D8, 0x010012E0 ] }; // z
key <AB02> { [ 0x010012A0, 0x010012D0 ] }; // x
key <AB03> { [ 0x01001278, 0x0100FE78 ] }; // c
key <AB04> { [ 0x01001238, 0x01001268 ] }; // v
key <AB05> { [ 0x01001260, VoidSymbol ] }; // b
key <AB06> { [ 0x01001290, 0x01001298 ] }; // n
key <AB07> { [ 0x01001218, VoidSymbol ] }; // m
key <AB08> { [ 0x01001363, VoidSymbol ] }; // <
key <AB09> { [ 0x01001364, VoidSymbol ] }; // >
key <AB10> { [ 0x01001367, question ] }; // ?
key <BKSL> { [ VoidSymbol, 0x01002010 ] }; // bksl
include "group(olpc)"
};

View File

@@ -0,0 +1,61 @@
// Based on <http://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, U1E9E ] };
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 ] };
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, 0x1002026 ] };
include "level3(ralt_switch)"
};

View File

@@ -0,0 +1,23 @@
// Most keyboards have the EuroSign engraved on the E key
partial
xkb_symbols "e" {
key <AD03> { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] };
};
// 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 ] };
};

View File

@@ -0,0 +1,360 @@
//
// X keyboard maps 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" {
// Macintosh keyboard for Finland based on Swedish(Macintosh) keyboard
include "se(mac)"
name[Group1]="Finnish (Macintosh)";
};
partial alphanumeric_keys
xkb_symbols "sun_type6" {
// #HW-SPECIFIC
// Sun Type 6/7 keyboard for Finland
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 <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 <TLDE> { [ backslash, dead_tilde ] };
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, ooblique, Ooblique ] };
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)"
};

View File

@@ -0,0 +1,48 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type2)"
name[Group1]= "Faroese";
key <TLDE> { [ onehalf, section, threequarters, paragraph ] };
key <LSGT> { [ less, greater, backslash, notsign ] };
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
key <AE05> { [ 5, percent, NoSymbol, cent ] };
key <AE06> { [ 6, ampersand, yen, NoSymbol ] };
key <AE11> { [ plus, question, plusminus, questiondown ] };
key <AE12> { [dead_acute, dead_grave, bar, brokenbar ] };
key <AB03> { [ c, C, copyright, NoSymbol ] };
key <AB10> { [ minus, underscore, hyphen, macron ] };
key <AC03> { [ d, D, eth, ETH ] };
key <AC10> { [ ae, AE ] };
key <AC11> { [ oslash, Ooblique ] };
key <AD08> { [ i, I ] };
key <AD11> { [ aring, Aring, dead_diaeresis, dead_circumflex ] };
key <AD12> { [ eth, ETH, dead_tilde, dead_caron ] };
key <BKSL> { [apostrophe, asterisk, dead_doubleacute, multiply ] };
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 <AC10> { [ ae, AE, acute, doubleacute ] };
key <AC11> { [ oslash, Ooblique, asciicircum, caron ] };
key <BKSL> { [apostrophe, asterisk, doubleacute, multiply ] };
key <AB08> { [ comma, semicolon, cedilla, ogonek ] };
key <AB09> { [ period, colon, periodcentered, abovedot ] };
};

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 };
};

View File

@@ -0,0 +1,296 @@
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 defined by
// the SVR4 European Language Supplement and sometimes also
// known as the IBM 166 layout.
include "latin"
name[Group1]="English (UK)";
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 <TLDE> { [ grave, notsign, bar, bar ] };
key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
key <LSGT> { [ backslash, bar, bar, brokenbar ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "intl" {
// Describes the differences between a very simple en_US
// keyboard and a very simple U.K. keyboard layout with
// dead keys. By Phil Jones (philjones1@blueyonder.co.uk)
// Includes the following keys:
// dead_grave
// dead_acute
// dead_circumflex
// dead_tilde
// dead_diaeresis
include "latin"
name[Group1]="English (UK, intl., with dead keys)";
key <AE02> { [ 2, dead_diaeresis, twosuperior, onehalf ] };
key <AE03> { [ 3, sterling, threesuperior, onethird ] };
key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
key <AE06> { [ 6, dead_circumflex, NoSymbol, onesixth ] };
key <AC11> { [ dead_acute, at, apostrophe, bar ] };
key <TLDE> { [ dead_grave, notsign, bar, 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 <AB03> { [ c, C, ccedilla, Ccedilla ] };
key <BKSL> { [ numbersign, asciitilde, dead_tilde, backslash ] };
key <LSGT> { [ backslash, bar, NoSymbol, NoSymbol ] };
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 <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 <TLDE> { [ grave, notsign, bar, bar ] };
key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
key <LSGT> { [ backslash, bar, bar, brokenbar ] };
include "level3(ralt_switch)"
};
// 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 <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 <TLDE> { [ grave, notsign, bar, bar ] };
key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
key <AB05> { [ backslash, bar, bar, brokenbar ] };
include "level3(ralt_switch)"
};
// 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 <AD01> { [ apostrophe, at ] };
key <AE02> { [ 2, quotedbl, twosuperior, NoSymbol ] };
key <AE03> { [ 3, sterling, threesuperior, NoSymbol ] };
key <BKSL> { [ numbersign, asciitilde ] };
key <LSGT> { [ backslash, bar ] };
key <TLDE> { [ grave, notsign, bar, 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] };
};
// Copied from macintosh_vndr/gb
partial alphanumeric_keys
xkb_symbols "mac" {
// Describes the differences between a very simple en_US
// keyboard and a very simple U.K. keyboard layout
include "latin"
name[Group1]= "English (UK, Macintosh)";
key <AE02> { [ 2, at, EuroSign ] };
key <AE03> { [ 3, sterling, numbersign ] };
key <TLDE> { [ section, plusminus ] };
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 <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 <TLDE> { [ section, plusminus, notsign, notsign ] }; //dead_grave
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 layout based on British keyboard
// Adopted 2016 by Aleksander Kowalski
include "latin"
name[Group1]="Polish (British keyboard)";
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 <TLDE>{ [ grave, notsign, bar, bar ]};
key <BKSL>{ [numbersign, asciitilde, dead_grave, dead_breve ]};
key <LSGT>{ [ backslash, bar, bar, brokenbar ]};
key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
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 <AC04> { [ f, F ] };
key <AB01> { [ z, Z, zabovedot, Zabovedot ] };
key <AB02> { [ x, X, zacute, Zacute ] };
key <AB03> { [ c, C, cacute, Cacute ] };
key <AB06> { [ n, N, nacute, Nacute ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "gla" {
// Describes the differences between a very simple en_US
// keyboard and a Scots Gaelic keyboard based on the Irish
// Gaelic layout. This is essentially a UK English layout
// but with grave accented characters available on
// AltGr+accent keys.
include "latin"
name[Group1]="Scottish Gaelic";
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 <TLDE> { [ grave, notsign, bar, bar ] };
key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
key <LSGT> { [ backslash, bar, bar, brokenbar ] };
key <AC01> { [ a, A, agrave, Agrave ] };
key <AD03> { [ e, E, egrave, Egrave ] };
key <AD08> { [ i, I, igrave, Igrave ] };
key <AD07> { [ u, U, ugrave, Ugrave ] };
key <AD09> { [ o, O, ograve, Ograve ] };
include "level3(ralt_switch)"
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/gb(sun_type6)"
};

View File

@@ -0,0 +1,267 @@
// Georgian Keyboard Layouts by Aiet Kolkhi <aietkolkhi@gmail.com>
// Full layout descriptions available at http://www.gakartuleba.org/layouts/
//
// This includes the following keyboard layouts: Georgian QWERTY; Georgian Ergonomic;
// Georgian MESS; Georgian AZERTY Tskapo; Georgian Russian.
//
// Layouts include Georgian Mkhedruli alphabeth; most layouts also include some special
// and ancient characters (like Fi, Yn, Elifi, Turned Gan and Ain). Layouts do not
// include Georgian Asomtavruli or Georgian Khutsuri alphabeths which are also present
// in Unicode.
//
// Georgian Typewriter no longer supported, as it is no longer used in Georgia.
//
// some layouts based on Georgian keyboard map, in the so called "latin" layout.
// 1999, Pablo Saratxaga <srtxg@chanae.alphanet.ch>
//
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, 0x010000ae ] };
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, 0x010000a9 ] };
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, 0x010000ae ] };
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)";
};

View File

@@ -0,0 +1,147 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
include "us"
name[Group1]= "English (Ghana)";
key <AE04> { [ 4, 0x010020B5, dollar, cent ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "akan" {
include "gh(basic)"
name[Group1]= "Akan";
key <AD01> { [ 0x0100025B, 0x01000190, q, Q ] };
key <AB02> { [ 0x01000254, 0x01000186, x, X ] };
};
partial alphanumeric_keys
xkb_symbols "ga" {
include "gh(basic)"
name[Group1]= "Ga";
key <AD01> { [ 0x0100025B, 0x01000190, q, Q ] };
key <AB02> { [ 0x01000254, 0x01000186, x, X ] };
key <AB03> { [ 0x0100014B, 0x0100014A, c, C ] };
};
partial alphanumeric_keys
xkb_symbols "ewe" {
include "gh(basic)"
name[Group1]= "Ewe";
key <AD01> { [ 0x0100025B, 0x01000190, q, Q ] };
key <AB03> { [ 0x0100014B, 0x0100014A, c, C ] };
key <AD11> { [ 0x01000254, 0x01000186, braceleft, braceleft ] };
key <AD12> { [ 0x0100028B, 0x010001B2, braceright, braceright ] };
key <BKSL> { [ 0x01000256, 0x01000189, backslash, backslash ] };
key <AC07> { [ 0x01000192, 0x01000191, j, J ] };
key <AC05> { [ g, G, 0x01000263, 0x01000194 ] };
};
partial alphanumeric_keys
xkb_symbols "fula" {
include "gh(basic)"
name[Group1]= "Fula";
key <AD01> { [ 0x01000071, 0x01000051, q, Q ] };
key <AD02> { [ udiaeresis, Udiaeresis, w, W ] };
key <AD03> { [ e, E, EuroSign, cent ] };
key <AD11> { [ 0x010001B4, 0x010001B3,bracketleft, braceleft ] };
key <AD12> { [ gcaron, Gcaron,bracketright, braceright] };
key <AC03> { [ 0x01000257, 0x0100018A, d, D ] };
key <AC10> { [ 0x01000131, 0x01000130, semicolon, colon ] };
key <AC11> { [ 0x010001DD, 0x0100018E,apostrophe, quotedbl ] };
key <AB01> { [ 0x01000272, 0x0100019D, 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 <AD03> { [ e, E, 0x0100025b, 0x01000190 ] };
key <AB03> { [ c, C, 0x01000254, 0x01000186 ] };
key <AC03> { [ d, D, 0x01000256, 0x01000189 ] };
key <AC04> { [ f, F, 0x01000192, 0x01000191 ] };
key <AC05> { [ g, G, 0x01000263, 0x01000194 ] };
key <AB06> { [ n, N, 0x0100014b, 0x0100014a ] };
key <AB01> { [ z, Z, 0x010001B6, 0x010001B5 ] };
key <AB04> { [ v, V, 0x0100028B, 0x010001B2 ] };
key <AE04> { [ 4, dollar, 0x010020B5, cent ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "avn" {
include "gh(basic)"
name[Group1]= "Avatime";
key <TLDE> { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; // combining grave; combining tilde
key <AE04> { [ 4, dollar, cent, 0x010020B5 ] }; // ¢, ₵
key <AE11> { [ minus, underscore, 0x01000304, 0x01000304 ] }; // combining macron
key <AD01> { [ 0x0100028B, 0x010001B2 ] }; // ʋ, Ʋ
key <AD07> { [ u, U, 0x0100028A, 0x010001B1 ] }; // ʊ, Ʊ
key <AD08> { [ i, I, 0x01000269, 0x01000196 ] }; // ɩ, Ɩ
key <AD11> { [ 0x0100025B, 0x01000190, bracketleft, braceleft ] }; // ɛ, Ɛ
key <AC03> { [ d, D, 0x01000256, 0x01000189 ] }; // ɖ, Ɖ
key <AC04> { [ f, F, 0x01000192, 0x01000191 ] }; // ƒ, Ƒ
key <AC07> { [ 0x0100014B, 0x0100014A ] }; // ŋ, Ŋ
key <AC11> { [ apostrophe, quotedbl, 0x01000301, 0x01000301 ] }; // combining acute
key <AB03> { [ 0x01000254, 0x01000186 ] }; // ɔ, Ɔ
include "level3(ralt_switch)"
};
// This keyboard layout fully imitates the 'Ghana Unicode' layout which is used in GILLBT on Windows with Keyman.
// However, in this layout a 3rd level key (R ALT) is used rather than dead keys.
// Also it has three additional features:
// 1) combining macron above: <R ALT> + <SHIFT> + <->
// 2) cent: <R ALT> + <4> or <R ALT> + <SHIFT> + <4>
// 3) ʊ/Ʊ: <R ALT> + <u>/<U>
partial alphanumeric_keys
xkb_symbols "gillbt" {
include "gh(basic)"
name[Group1]= "English (Ghana, GILLBT)";
key <TLDE> { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; // combining grave; combining tilde
key <AE04> { [ 4, dollar, cent, 0x010020B5 ] }; // ¢, ₵
key <AE06> { [ 6, asciicircum, 0x01000302, 0x01000302 ] }; // combining circumflex accent
key <AE11> { [ minus, underscore, 0x01000331, 0x01000304 ] }; // combining macron below; combining macron above
key <AE12> { [ 0x0100014B, 0x0100014A, equal, plus ] }; // ŋ, Ŋ
key <AD01> { [ 0x0100028B, 0x010001B2, q, Q ] }; // ʋ, Ʋ
key <AD03> { [ e, E, 0x010001DD, 0x0100018E ] }; // ǝ, Ǝ
key <AD07> { [ u, U, 0x0100028A, 0x010001B1 ] }; // ʊ, Ʊ
key <AD11> { [ 0x0100025B, 0x01000190, bracketleft, braceleft ] }; // ɛ, Ɛ
key <AD12> { [ 0x01000254, 0x01000186, bracketright, braceright ] }; // ɔ, Ɔ
key <AC03> { [ d, D, 0x01000256, 0x01000189 ] }; // ɖ, Ɖ
key <AC04> { [ f, F, 0x01000192, 0x01000191 ] }; // ƒ, Ƒ
key <AC05> { [ g, G, 0x01000263, 0x01000194 ] }; // ɣ, Ɣ
key <AC11> { [ apostrophe, quotedbl, 0x01000301, 0x01000301 ] }; // combining acute
key <AB01> { [ z, Z, 0x01000292, 0x010001B7 ] }; // ʒ, Ʒ
key <AB02> { [ 0x01000269, 0x01000196, x, X ] }; // ɩ, Ɩ
key <AB03> { [ c, C, 0x010000E7, 0x010000C7 ] }; // ç, Ç
include "level3(ralt_switch)"
};

View File

@@ -0,0 +1,60 @@
// Keyboard layout for N'Ko, by Denis Jacquerye.
// See https://bugs.freedesktop.org/11702.
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)"
};

View File

@@ -0,0 +1,276 @@
// Hellenic keyboard map for X.org
//
// Original version:
// Kostas Gewrgiou <gewrgiou@imbc.gr>
// Heavily modified and maintained by:
// Vasilis Vasaitis <vvas@hal.csd.auth.gr>
// Originally converted to single group form by:
// Ivan Pascal <pascal@info.tsu.ru>
// Final modifications for proper support of
// the Hellenic language by:
// Web Dolphins® <foo@foofootus.eu>
default partial alphanumeric_keys alternate_group
xkb_symbols "basic" {
include "gr(simple)"
name[Group1] = "Greek";
include "eurosign(e)"
include "eurosign(5)"
include "kpdl(comma)"
include "level3(ralt_switch)"
key <AB01> { [ NoSymbol, NoSymbol, U037D, U03FF ] };
key <AB02> { [ NoSymbol, NoSymbol, rightarrow, leftarrow ] };
key <AB03> { [ NoSymbol, NoSymbol, copyright ] };
key <AB04> { [ NoSymbol, NoSymbol, U03D6 ] };
key <AB05> { [ NoSymbol, NoSymbol, U03D0 ] };
key <AB06> { [ NoSymbol, NoSymbol, U0374, U0375 ] };
key <AB07> { [ NoSymbol, NoSymbol, U03FB, U03FA ] };
key <AB08> { [ NoSymbol, NoSymbol, guillemotleft ] };
key <AB09> { [ NoSymbol, NoSymbol, guillemotright, periodcentered ] };
key <AC03> { [ NoSymbol, NoSymbol, downarrow, uparrow ] };
key <AC04> { [ NoSymbol, NoSymbol, U03D5 ] };
key <AC05> { [ NoSymbol, NoSymbol, U03DD, U03DC ] };
key <AC07> { [ NoSymbol, NoSymbol, U037C, U03FE ] };
key <AC08> { [ NoSymbol, NoSymbol, U03DF, U03DE ] };
key <AC09> { [ NoSymbol, NoSymbol, U03F2, U03F9 ] };
key <AC10> { [ NoSymbol, NoSymbol, dead_acute, dead_psili ] };
key <AC11> { [ NoSymbol, NoSymbol, dead_grave, dead_dasia ] };
key <AD01> { [ NoSymbol, NoSymbol, periodcentered ] };
key <AD02> { [ NoSymbol, NoSymbol, U03DB, U03DA ] };
key <AD04> { [ NoSymbol, NoSymbol, registered, U03F1 ] };
key <AD06> { [ NoSymbol, NoSymbol, U03D2, U03D2 ] };
key <AD07> { [ NoSymbol, NoSymbol, U03D1, U03F4 ] };
key <AD08> { [ NoSymbol, NoSymbol, U037B, U03FD ] };
key <AD10> { [ NoSymbol, NoSymbol, U03E1, U03E0 ] };
key <AD11> { [ NoSymbol, NoSymbol, dead_tilde, dead_macron ] };
key <AD12> { [ NoSymbol, NoSymbol, dead_iota, dead_breve ] };
key <AE01> { [ NoSymbol, NoSymbol, NoSymbol, onesuperior ] };
key <AE02> { [ NoSymbol, NoSymbol, onehalf, twosuperior ] };
key <AE03> { [ NoSymbol, NoSymbol, sterling, threesuperior ] };
key <AE04> { [ NoSymbol, NoSymbol, onequarter, threequarters ] };
key <AE06> { [ NoSymbol, NoSymbol, U03F0 ] };
key <AE07> { [ NoSymbol, NoSymbol, U03D7, U03CF ] };
key <AE08> { [ NoSymbol, NoSymbol, U20AF ] };
key <AE10> { [ NoSymbol, NoSymbol, degree ] };
key <AE11> { [ NoSymbol, NoSymbol, plusminus ] };
};
partial alphanumeric_keys alternate_group
xkb_symbols "simple" {
include "gr(bare)"
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 <AD11> { [ bracketleft, braceleft ] }; // [ {
key <AD12> { [ bracketright, braceright ] }; // ] }
key <AC11> { [ apostrophe, quotedbl ] }; // ' "
key <AB08> { [ comma, less ] }; // , <
key <AB09> { [ period, greater ] }; // . >
key <AB10> { [ slash, question ] }; // / ?
key <BKSL> { [ backslash, bar ] }; // \ |
include "kpdl(comma)"
};
hidden partial alphanumeric_keys alternate_group
xkb_symbols "bare" {
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 <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 <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 <LSGT> { [ guillemotleft, guillemotright ] }; // « »
};
// ===========================================================================================
// Greek - Extended |
// ===========================================================================================
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━━┓
// │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + ┃Backspace ┃
// │ ` │ 1 │ 2 │ 3 £ │ 4 │ 5 € │ 6 │ 7 │ 8 │ 9 │ 0 ° │ - ± │ = ┃ ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━━━┫
// ┃ ┃ : │ Σ │ ΕΡΤΥ │ Θ │ ΙΟ │ Π │ { │ } ┃Enter ┃
// ┃Tab ┃ ; · │ ς │ ε € │ ρ ® │ τ │ υ │ θ │ ιο │ π │ [ │ ] ┃ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃Caps ┃ Α │ Σ │ Δ │ Φ │ Γ │ Η │ Ξ │ Κ │ Λ │ ¨ │ " │ | ┃ ┃
// ┃Lock ┃ ασ │ δ │ φ │ γ │ η │ ξ │ κ │ λ │ ´ │ ' │ \ ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━━━┫
// ┃ ┃ » │ ΖΧ │ Ψ │ Ω │ ΒΝΜ │ < │ > │ ? ┃ ┃
// ┃Shift ┃ « │ ζ │ χ │ ψ © │ ω │ β │ ν │ μ │ , « │ . » │ / ┃Shift ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴──┲━━┷━━━━┳┷━━━━━┻┳━━━━━━━┳━━━━━━┫
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┃Ctrl ┃Meta ┃Alt ┃ Space ┃AltGr ┃Meta ┃Menu ┃Ctrl ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹──────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━┛
partial alphanumeric_keys alternate_group
xkb_symbols "extended" {
include "gr(simple)"
name[Group1] = "Greek (extended)";
key.type[Group1] = "THREE_LEVEL";
key <TLDE> { [ NoSymbol, NoSymbol, U2015 ] }; // ―
key <AB01> { [ NoSymbol, NoSymbol, U00A7 ] }; // §
key <AE02> { [ NoSymbol, NoSymbol, U00B2 ] }; // ²
key <AE03> { [ NoSymbol, NoSymbol, U00B3 ] }; // ³
// for adding cubic sign £ symbol must move (like e.g. AE04 )
key <AE04> { [ NoSymbol, NoSymbol, sterling ] }; // £
key <AD06> { [ NoSymbol, NoSymbol, U00A5 ] }; // ¥
key <AE10> { [ NoSymbol, NoSymbol, degree ] }; // °
key <AE11> { [ NoSymbol, NoSymbol, plusminus ] }; // ±
key <AD01> { [ NoSymbol, NoSymbol, periodcentered ] }; // ·
key <AD04> { [ NoSymbol, NoSymbol, registered ] }; // ®
key <AB03> { [ NoSymbol, NoSymbol, copyright ] }; // ©
key <AB08> { [ NoSymbol, NoSymbol, guillemotleft ] }; // «
key <AB09> { [ NoSymbol, NoSymbol, guillemotright ] }; // »
include "level3(ralt_switch)"
include "eurosign(5)"
include "eurosign(e)"
};
partial alphanumeric_keys alternate_group
xkb_symbols "polytonic" {
include "gr(extended)"
name[Group1] = "Greek (polytonic)";
key.type[Group1] = "THREE_LEVEL";
key <AD11> { [ dead_tilde, dead_diaeresis, dead_macron ] }; // ~ ¨ ¯
key <AD12> { [ dead_iota, VoidSymbol, dead_breve ] }; // ͺ ˘
key <AE05> { type[Group1]="FOUR_LEVEL",
[ 5, percent, U2030, U2031 ] }; // ‰ ‱
key <AC02> { type[Group1]="FOUR_LEVEL",
[ Greek_sigma, Greek_SIGMA, U03DB, U03DA ] }; // Ϛ ϛ STIGMATA
key <AC04> { type[Group1]="FOUR_LEVEL",
[ Greek_phi, Greek_PHI, U03DD, U03DC ] }; // ϝ Ϝ
key <AD02> { type[Group1]="FOUR_LEVEL",
[ Greek_finalsmallsigma, Greek_SIGMA, U03D9, U03D8 ] }; // ϙ Ϙ
key <AC07> { type[Group1]="FOUR_LEVEL",
[ Greek_xi, Greek_XI, U03F3, U037F ] }; // ϳ Ϳ
key <AD10> { type[Group1]="FOUR_LEVEL",
[ Greek_pi, Greek_PI, U03D6, U03D5 ] }; // ϖ ϕ
key <AB05> { type[Group1]="FOUR_LEVEL",
[ Greek_beta, Greek_BETA, U03E1, U03E0 ] }; // ϡ Ϡ
key <AC10> { [ dead_acute, dead_psili ] }; // ´ ̓
key <AC11> { type[Group1]="FOUR_LEVEL",
[ dead_grave, dead_dasia, apostrophe, quotedbl ] };
key <AC08> { type[Group1]="FOUR_LEVEL",
[ Greek_kappa, Greek_KAPPA, U03D7, U03CF ] };
// κ Κ GREEK KAI SYMBOL
};
partial alphanumeric_keys alternate_group
xkb_symbols "nodeadkeys" {
include "gr(simple)"
name[Group1] = "Greek (no dead keys)";
key <AC10> { [ semicolon, colon ] }; // ; :
};
// Greek layout rearranged as Colemak
partial alphanumeric_keys alternate_group
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 ] };
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, U03D2 ] };
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 ] };
key <AC04> { [ Greek_tau, Greek_TAU ] };
key <AC05> { [ Greek_delta, Greek_DELTA, downarrow, uparrow ] };
key <AC06> { [ Greek_eta, Greek_ETA ] };
key <AC07> { [ Greek_nu, Greek_NU, U0374, U0375 ] };
key <AC08> { [ Greek_epsilon, Greek_EPSILON, EuroSign ] };
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)"
};

View File

@@ -0,0 +1,469 @@
// The right Alt key (while pressed) chooses the second keyboard group.
partial modifier_keys
xkb_symbols "switch" {
key <RALT> {
symbols[Group1] = [ Mode_switch, Multi_key ],
virtualMods= AltGr
};
};
// The left Alt key (while pressed) chooses the second keyboard group.
partial modifier_keys
xkb_symbols "lswitch" {
key <LALT> {
symbols[Group1] = [ Mode_switch, Multi_key ],
virtualMods= AltGr
};
};
// Either Win key (while pressed) chooses the second keyboard group.
partial modifier_keys
xkb_symbols "win_switch" {
include "group(lwin_switch)"
include "group(rwin_switch)"
};
// The left Win key (while pressed) chooses the second keyboard group.
// (Using this map, you should declare your keyboard as pc101 or pc102
// instead of pc104 or pc105.)
partial modifier_keys
xkb_symbols "lwin_switch" {
key <LWIN> {
symbols[Group1] = [ Mode_switch, Multi_key ],
virtualMods= AltGr
};
};
// The right Win key (while pressed) chooses the second keyboard group.
// (Using this map, you should declare your keyboard as pc101 or pc102
// instead of pc104 or pc105.)
partial modifier_keys
xkb_symbols "rwin_switch" {
key <RWIN> {
symbols[Group1] = [ Mode_switch, Multi_key ],
virtualMods= AltGr
};
};
// The right Menu key (while pressed) chooses the second keyboard group.
// while Shift+Menu acts as Menu.
partial modifier_keys
xkb_symbols "menu_switch" {
key <MENU> {
symbols[Group1] = [ Mode_switch, Menu ],
virtualMods= AltGr
};
};
// The right Ctrl key (while pressed) chooses the second keyboard group.
// (Needed mainly for the Canadian keyboard.)
partial modifier_keys
xkb_symbols "rctrl_switch" {
key <RCTL> {
symbols[Group1] = [ Mode_switch ]
};
};
// Pressing the right Alt key switches to the next group.
partial modifier_keys
xkb_symbols "toggle" {
virtual_modifiers AltGr;
key <RALT> {
symbols[Group1] = [ ISO_Next_Group ],
virtualMods= AltGr
};
};
// 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 ] };
key <RTSH> { [ Shift_R, ISO_Next_Group ] };
};
// Pressing Shift+Caps_Lock switches to the next group.
partial modifier_keys
xkb_symbols "shift_caps_toggle" {
key <CAPS> { [ Caps_Lock, ISO_Next_Group ] };
};
// Pressing Caps_Lock selects the first group,
// pressing Shift+Caps_Lock selects the last group.
partial modifier_keys
xkb_symbols "shift_caps_switch" {
key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
};
// toggle using win + space as combo
partial modifier_keys
xkb_symbols "win_space_toggle" {
key <SPCE> {
type="PC_SUPER_LEVEL2",
symbols[Group1]= [ space, ISO_Next_Group ],
symbols[Group2]= [ space, ISO_Next_Group ]
};
};
// Pressing the left Win key selects the first group,
// pressing the right Win or the Menu key selects the last group.
partial modifier_keys
xkb_symbols "win_menu_switch" {
virtual_modifiers AltGr;
key <LWIN> {
virtualMods= AltGr,
symbols[Group1] = [ ISO_First_Group ]
};
key <MENU> {
virtualMods= AltGr,
symbols[Group1] = [ ISO_Last_Group ]
};
key <RWIN> {
virtualMods= AltGr,
symbols[Group1] = [ ISO_Last_Group ]
};
};
// Pressing the left Ctrl key selects the first group,
// pressing the right Ctrl key selects the last group.
partial modifier_keys
xkb_symbols "lctrl_rctrl_switch" {
virtual_modifiers AltGr;
key <LCTL> {
virtualMods= AltGr,
symbols[Group1] = [ ISO_First_Group ]
};
key <RCTL> {
virtualMods= AltGr,
symbols[Group1] = [ ISO_Last_Group ]
};
};
//
// CTRL-SHIFT toggle section
//
partial modifier_keys
xkb_symbols "lctrl_lshift_toggle" {
key <LFSH> {
type[Group1]="PC_CONTROL_LEVEL2",
symbols[Group1] = [ Shift_L, ISO_Next_Group ]
};
key <LCTL> { [ Control_L, ISO_Next_Group ] };
};
partial modifier_keys
xkb_symbols "lctrl_lshift_toggle_rev" {
key <LFSH> {
type[Group1]="PC_CONTROL_LEVEL2",
symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
};
key <LCTL> { [ Control_L, ISO_Prev_Group ] };
};
partial modifier_keys
xkb_symbols "rctrl_rshift_toggle" {
key <RTSH> {
type[Group1]="PC_CONTROL_LEVEL2",
symbols[Group1] = [ Shift_R, ISO_Next_Group ]
};
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" {
virtual_modifiers Alt;
key <LALT> {
type[Group1]="PC_CONTROL_LEVEL2",
symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
virtualMods= Alt
};
key <LCTL> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1] = [ Control_L, ISO_Next_Group ]
};
};
partial modifier_keys
xkb_symbols "lctrl_lalt_toggle_rev" {
virtual_modifiers Alt;
key <LALT> {
type[Group1]="PC_CONTROL_LEVEL2",
symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
virtualMods= Alt
};
key <LCTL> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1] = [ Control_L, ISO_Prev_Group ]
};
};
partial modifier_keys
xkb_symbols "rctrl_ralt_toggle" {
virtual_modifiers Alt;
key <RALT> {
type[Group1]="PC_CONTROL_LEVEL2",
symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
virtualMods= Alt
};
key <RCTL> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1] = [ Control_R, ISO_Next_Group ]
};
};
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" {
virtual_modifiers Alt;
key <LALT> {
symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
virtualMods= Alt
};
key <LFSH> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1] = [ Shift_L, ISO_Next_Group ]
};
};
partial modifier_keys
xkb_symbols "lalt_lshift_toggle_rev" {
virtual_modifiers Alt;
key <LALT> {
symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
virtualMods= Alt
};
key <LFSH> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
};
};
partial modifier_keys
xkb_symbols "ralt_rshift_toggle" {
virtual_modifiers Alt;
key <RALT> {
symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
virtualMods= Alt
};
key <RTSH> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1] = [ Shift_R, ISO_Next_Group ]
};
};
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.
// (Using this map, you should declare your keyboard as
// pc101 or pc102 instead of pc104 or pc105.)
partial modifier_keys
xkb_symbols "lwin_toggle" {
virtual_modifiers AltGr;
key <LWIN> {
virtualMods= AltGr,
symbols[Group1] = [ ISO_Next_Group ]
};
};
// Pressing the right Win key switches to the next group.
// (Using this map, you should declare your keyboard as
// pc101 or pc102 instead of pc104 or pc105.)
partial modifier_keys
xkb_symbols "rwin_toggle" {
virtual_modifiers AltGr;
key <RWIN> {
virtualMods= AltGr,
symbols[Group1] = [ 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" {
virtual_modifiers LControl, RControl;
key <LCTL> {
type[Group1]="PC_CONTROL_LEVEL2",
symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
virtualMods= LControl
};
key <RCTL> {
type[Group1]="PC_CONTROL_LEVEL2",
symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
virtualMods= RControl
};
};
// Pressing both Alt switches to the next or previous group
// (depending on which Alt is pressed first).
partial modifier_keys
xkb_symbols "alts_toggle" {
virtual_modifiers LAlt, RAlt;
key <LALT> {
type[Group1]="PC_RALT_LEVEL2",
symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
virtualMods= LAlt
};
key <RALT> {
type[Group1]="PC_LALT_LEVEL2",
symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
virtualMods= RAlt
};
};
// Pressing the left Shift key switches to the next group.
partial modifier_keys
xkb_symbols "lshift_toggle" {
virtual_modifiers AltGr;
key <LFSH> {
symbols[Group1] = [ ISO_Next_Group ],
virtualMods= AltGr
};
};
// Pressing the right Shift key switches to the next group.
partial modifier_keys
xkb_symbols "rshift_toggle" {
virtual_modifiers AltGr;
key <RTSH> {
symbols[Group1] = [ ISO_Next_Group ],
virtualMods= AltGr
};
};
// Pressing the left Alt key switches to the next group.
partial modifier_keys
xkb_symbols "lalt_toggle" {
virtual_modifiers AltGr;
key <LALT> {
symbols[Group1] = [ ISO_Next_Group ],
virtualMods= AltGr
};
};
// Pressing the left Ctrl key switches to the next group.
partial modifier_keys
xkb_symbols "lctrl_toggle" {
virtual_modifiers AltGr;
key <LCTL> {
symbols[Group1] = [ ISO_Next_Group ],
virtualMods= AltGr
};
};
// Pressing the right Ctrl key switches to the next group.
partial modifier_keys
xkb_symbols "rctrl_toggle" {
virtual_modifiers AltGr;
key <RCTL> {
symbols[Group1] = [ ISO_Next_Group ],
virtualMods= AltGr
};
};
// Pressing Alt+Caps_Lock switches to the next group,
// pressing Caps_Lock toggles CapsLock.
partial modifier_keys
xkb_symbols "alt_caps_toggle" {
key <CAPS> {
type="PC_ALT_LEVEL2",
symbols[Group1] = [ Caps_Lock, ISO_Next_Group ]
};
};
hidden partial modifier_keys
xkb_symbols "olpc" {
key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
};
partial modifier_keys
xkb_symbols "alt_space_toggle" {
key <SPCE> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1] = [ space, ISO_Next_Group ]
};
};
// Pressing the Scroll Lock key switches to the next group,
partial modifier_keys
xkb_symbols "sclk_toggle" {
virtual_modifiers AltGr;
key <SCLK> {
virtualMods= AltGr,
symbols[Group1] = [ ISO_Next_Group ]
};
};
// Control_L+Win_L selects the first group (presumably Lat),
// Control_R+Menu selects the second group (presumably Rus).
partial modifier_keys
xkb_symbols "lctrl_lwin_rctrl_menu" {
key <LWIN> {
type[Group1] = "PC_CONTROL_LEVEL2",
symbols[Group1] = [ Super_L, ISO_First_Group ]
};
key <MENU> {
type[Group1] = "PC_CONTROL_LEVEL2",
symbols[Group1] = [ Menu, ISO_Last_Group ]
};
};
// Control_L+Win_L toggles groups.
partial modifier_keys
xkb_symbols "lctrl_lwin_toggle" {
key <LWIN> {
type[ Group1 ] = "PC_CONTROL_LEVEL2",
symbols[ Group1 ] = [ Super_L, ISO_Next_Group ]
};
};

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 };
};

View File

@@ -0,0 +1,67 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
include "rs(latin)"
name[Group1]="Croatian";
// Redefine these keys 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 ] };
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 <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 ] };
key <BKSL> { [ any, any, zcaron, Zcaron ] };
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)";
};

View File

@@ -0,0 +1,654 @@
// New style XKB layout for some widely used Hungarian keyboard layouts
//
// Based on old style 'xkb/symbols/hu"
//
// (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:
// New style XKB layout used 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-to-use issue, added extra punctuation and quotation marks
// 2020 - Added ligature capable layout ( with Zero-widt-joiner), added copyright, copyleft symbols
// 2020 - Added ZWNJ key to "Old Hungarian (for ligatures)", replaced its ohu_lig id to oldhunlig, replaced its ohu_lig short description to oldhun(lig).
// Added "oldhun_magic_numpad" for both "Old Hungarian" layouts, as a specialised numpad.
// Old Hungartian layout
partial alphanumeric_keys
xkb_symbols "oldhun" {
name[Group1]="Old Hungarian";
include "hu(oldhun_base)"
include "hu(oldhun_origin)"
include "hu(oldhun_magic_numpad)"
include "level3(ralt_switch)"
};
// 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 ]};
//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
};
//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 ]};
};

View File

@@ -0,0 +1,161 @@
default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
name[Group1]= "Indonesian (Latin)";
key <TLDE> { [ 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 <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 <BKSL> { [ backslash, bar ] };
};
//
// Default layout, additional characters must be in "phoneticx" (with "x") or other extended layout variants below
//
partial alphanumeric_keys
xkb_symbols "phonetic" {
name[Group1]= "Indonesian (Arab Pegon, phonetic)";
// `
key <TLDE> { [ grave, asciitilde, VoidSymbol, VoidSymbol ] };
// 1..=
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 ] };
// Q..]
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 ] };
// A..'
key <AC01> { [ Arabic_alef, Arabic_hamzaonalef, VoidSymbol, VoidSymbol ] };
key <AC02> { [ Arabic_seen, Arabic_sheen, Arabic_sad, VoidSymbol ] };
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> { [ 0x10000ab, 0x10000bb, apostrophe, quotedbl ] }; // «, »
// not exist in US keyboard
key <LSGT> { [ bar, brokenbar, VoidSymbol, VoidSymbol ] };
// Z../
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, 0x100066b ] }; // decimal_separator
key <AB09> { [ period, less, Arabic_fullstop, 0x100066c ] }; // thousands_separator
key <AB10> { [ slash, Arabic_question_mark, 0x100060d, question ] }; // date_separator
include "level3(ralt_switch)"
};
//
// Extended layout, non-standard characters
//
partial alphanumeric_keys
xkb_symbols "phoneticx" {
include "id(phonetic)"
name[Group1]= "Indonesian (Arab Pegon, extended phonetic)";
// 1..=
key <AE01> { [ NoSymbol, NoSymbol, NoSymbol, Arabic_superscript_alef ] };
key <AE09> { [ NoSymbol, NoSymbol, NoSymbol, 0x100fd3e ] }; // ornate_left
key <AE10> { [ NoSymbol, NoSymbol, NoSymbol, 0x100fd3f ] }; // ornate_right
// Q..]
key <AD02> { [ NoSymbol, NoSymbol, Arabic_shadda, NoSymbol ] };
key <AD03> { [ NoSymbol, NoSymbol, 0x10008e6, 0x10008e4 ] }; // curly_kasra, curly_fatha
key <AD07> { [ NoSymbol, NoSymbol, Arabic_damma, Arabic_dammatan ] };
key <AD08> { [ NoSymbol, NoSymbol, Arabic_kasra, Arabic_kasratan ] };
key <AD09> { [ NoSymbol, NoSymbol, 0x100065d, NoSymbol ] }; // reversed_damma
// A..'
key <AC01> { [ NoSymbol, NoSymbol, Arabic_fatha, Arabic_fathatan ] };
key <AC07> { [ NoSymbol, NoSymbol, 0x10008f8, NoSymbol ] }; // right_arrowhead_above
// Z../
key <AB02> { [ NoSymbol, NoSymbol, 0x100065b, 0x100065C ] }; // inverted_small_v_above, dot_below
key <AB03> { [ NoSymbol, NoSymbol, Arabic_sukun, 0x10006E1 ] }; // small_high_dotless_head_of_khah
};

View File

@@ -0,0 +1,407 @@
// Irish keyboard map
// Support for Irish (old and new orthography) and English
// Seamus O Ciardhuain <seoc@cnds.ucd.ie> (19 December 2002)
// The general idea is to provide the characters in ISO 8859-1,
// ISO 8859-15, ISO 8859-14, CP1252 and "Extended Latin-8".
// However, not all are accessible directly because there aren't
// enough keys; some need deadkeys to access them, others the
// "Multi_key" compose sequences.
// Designed to be similar to the layouts used on Windows
// and the Macintosh.
// Everything is in Group 1 to be compatible with the
// multi-layout keyboard support in XFree86 4.3.
// The basic layout is a modern keyboard, but dotted consonants are
// accessible using a deadkey (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 deadkey.
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";
//
// Numeric row `1234567890-=
//
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, 0x1002030 ] };
// per thousand
key <AE07> { [ 7, ampersand, paragraph, 0x100204A ] };
// 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 ] };
//
// QWERTYUIOP[]
//
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, 0x1002030 ] };
// per thousand
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 ] };
//
// ASDFGHJKL;'#
//
key <AC01> { [ a, A, aacute, Aacute ] };
key <AC02> { [ s, S, ssharp, 0x1001E9E ] };
key <AC03> { [ d, D, eth, ETH ] };
key <AC04> { [ f, F, 0x1000192, NoSymbol ] };
// f with hook
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 ] };
//
// \ZXCVBNM,./
//
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)"
// NB: putting Shift+<RALT> as Multi_key gives odd behaviour since the
// order of pressing keys affects the result.
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, 0x100027C, 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, 0x100017F, 0x1001E9B ] };
// 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)";
//
// Numeric row `1234567890-=
//
key <TLDE> { [ grave, notsign, 0x10000A6, 0x10000A6 ] };
// broken bar
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, 0x100204A, 0x100204A ] };
// 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 ] };
//
// QWERTYUIOP[]
//
key <AD01> { [ q, Q, NoSymbol, NoSymbol ] };
key <AD02> { [ w, W, NoSymbol, NoSymbol ] };
key <AD03> { [ e, E, eacute, Eacute ] };
key <AD04> { [ r, R, 0x100027C, 0x100027C ] };
// 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 ] };
//
// ASDFGHJKL;'#
//
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 ] };
//
// \ZXCVBNM,./
//
key <LSGT> { [ backslash, bar, dead_grave, dead_grave ] };
key <AB01> { [ z, Z, 0x100017F, 0x1001E9B ] };
// 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)"
};
//
// Ogham keyboard map for XFree86
//
// Seamus O Ciardhuain <seoc@cnds.ucd.ie> (17 December 2002)
//
// Ogham keyboard layout as recommended in I.S. 434:1999.
// Suitable for multi-layout xkbcomp.
// Character names are given as in the Unicode standard,
// range U+1680 to U+169F.
partial alphanumeric_keys
xkb_symbols "ogam" {
name[Group1] = "Ogham";
key.type[Group1] = "ONE_LEVEL";
key <LSGT> { type[Group1]="TWO_LEVEL",
[ 0x100169B, 0x100169C ] };
// OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK
key <BKSL> { [ 0x1001680 ] }; // OGHAM SPACE MARK
key <TLDE> { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
key <SPCE> { [ space ] };
//
// Top Row QWERTYUIOP
//
key <AD01> { [ 0x100168A ] }; // OGHAM LETTER CEIRT
key <AD02> { [ 0x1001695 ] }; // OGHAM LETTER EABHADH
key <AD03> { [ 0x1001693 ] }; // OGHAM LETTER EADHADH
key <AD04> { [ 0x100168F ] }; // OGHAM LETTER RUIS
key <AD05> { [ 0x1001688 ] }; // OGHAM LETTER TINNE
key <AD06> { [ 0x1001698 ] }; // OGHAM LETTER IFIN
key <AD07> { [ 0x1001692 ] }; // OGHAM LETTER UR
key <AD08> { [ 0x1001694 ] }; // OGHAM LETTER IODHADH
key <AD09> { [ 0x1001691 ] }; // OGHAM LETTER ONN
key <AD10> { [ 0x100169A ] }; // OGHAM LETTER PEITH
//
// Middle Row ASDFGHJKL
//
key <AC01> { [ 0x1001690 ] }; // OGHAM LETTER AILM
key <AC02> { [ 0x1001684 ] }; // OGHAM LETTER SAIL
key <AC03> { [ 0x1001687 ] }; // OGHAM LETTER DAIR
key <AC04> { [ 0x1001683 ] }; // OGHAM LETTER FEARN
key <AC05> { [ 0x100168C ] }; // OGHAM LETTER GORT
key <AC06> { [ 0x1001686 ] }; // OGHAM LETTER UATH
key <AC07> { [ 0x1001697 ] }; // OGHAM LETTER UILLEANN
key <AC08> { [ 0x1001696 ] }; // OGHAM LETTER OR
key <AC09> { [ 0x1001682 ] }; // OGHAM LETTER LUIS
//
// Bottom Row ZXCVBNM
//
key <AB01> { [ 0x100168E ] }; // OGHAM LETTER STRAIF
key <AB02> { [ 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL
key <AB03> { [ 0x1001689 ] }; // OGHAM LETTER COLL
key <AB04> { [ 0x100168D ] }; // OGHAM LETTER NGEADAL
key <AB05> { [ 0x1001681 ] }; // OGHAM LETTER BEITH
key <AB06> { [ 0x1001685 ] }; // OGHAM LETTER NION
key <AB07> { [ 0x100168B ] }; // 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> { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
key <AB09> { [ 0x100169B ] }; // OGHAM FEATHER MARK
key <AB10> { [ 0x1001680 ] }; // OGHAM SPACE MARK
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 <LSGT> { type[Group1] = "FOUR_LEVEL_ALPHABETIC",
[ backslash, bar, 0x100169B, 0x100169C ] };
// OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK
key <BKSL> { [ numbersign, asciitilde, 0x1001680 ] }; // OGHAM SPACE MARK
key <TLDE> { [ grave, notsign, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
key <SPCE> { [ space, space, space ] };
//
// Numeric row
//
key <AE01> { type[Group1]="TWO_LEVEL", [ 1, exclam ] };
key <AE02> { type[Group1]="TWO_LEVEL", [ 2, quotedbl ] };
key <AE03> { type[Group1]="TWO_LEVEL", [ 3, sterling ] };
key <AE04> { [ 4, dollar, EuroSign ] };
key <AE05> { type[Group1]="TWO_LEVEL", [ 5, percent ] };
key <AE06> { type[Group1]="TWO_LEVEL", [ 6, asciicircum ] };
key <AE07> { [ 7, ampersand, 0x100204A ] }; // Tironian Et
key <AE08> { type[Group1]="TWO_LEVEL", [ 8, asterisk ] };
key <AE09> { type[Group1]="TWO_LEVEL", [ 9, parenleft ] };
key <AE10> { type[Group1]="TWO_LEVEL", [ 0, parenright ] };
key <AE11> { type[Group1]="TWO_LEVEL", [ minus, underscore ] };
key <AE12> { type[Group1]="TWO_LEVEL", [ equal, plus ] };
//
// Top Row QWERTYUIOP
//
key <AD01> { [ q, Q, 0x100168A ] }; // OGHAM LETTER CEIRT
key <AD02> { [ w, W, 0x1001695 ] }; // OGHAM LETTER EABHADH
key <AD03> { [ e, E, 0x1001693 ] }; // OGHAM LETTER EADHADH
key <AD04> { [ r, R, 0x100168F ] }; // OGHAM LETTER RUIS
key <AD05> { [ t, T, 0x1001688 ] }; // OGHAM LETTER TINNE
key <AD06> { [ y, Y, 0x1001698 ] }; // OGHAM LETTER IFIN
key <AD07> { [ u, U, 0x1001692 ] }; // OGHAM LETTER UR
key <AD08> { [ i, I, 0x1001694 ] }; // OGHAM LETTER IODHADH
key <AD09> { [ o, O, 0x1001691 ] }; // OGHAM LETTER ONN
key <AD10> { [ p, P, 0x100169A ] }; // OGHAM LETTER PEITH
//
// Middle Row ASDFGHJKL
//
key <AC01> { [ a, A, 0x1001690 ] }; // OGHAM LETTER AILM
key <AC02> { [ s, S, 0x1001684 ] }; // OGHAM LETTER SAIL
key <AC03> { [ d, D, 0x1001687 ] }; // OGHAM LETTER DAIR
key <AC04> { [ f, F, 0x1001683 ] }; // OGHAM LETTER FEARN
key <AC05> { [ g, G, 0x100168C ] }; // OGHAM LETTER GORT
key <AC06> { [ h, H, 0x1001686 ] }; // OGHAM LETTER UATH
key <AC07> { [ j, J, 0x1001697 ] }; // OGHAM LETTER UILLEANN
key <AC08> { [ k, K, 0x1001696 ] }; // OGHAM LETTER OR
key <AC09> { [ l, L, 0x1001682 ] }; // OGHAM LETTER LUIS
//
// Bottom Row ZXCVBNM
//
key <AB01> { [ z, Z, 0x100168E ] }; // OGHAM LETTER STRAIF
key <AB02> { [ x, X, 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL
key <AB03> { [ c, C, 0x1001689 ] }; // OGHAM LETTER COLL
key <AB04> { [ v, V, 0x100168D ] }; // OGHAM LETTER NGEADAL
key <AB05> { [ b, B, 0x1001681 ] }; // OGHAM LETTER BEITH
key <AB06> { [ n, N, 0x1001685 ] }; // OGHAM LETTER NION
key <AB07> { [ m, M, 0x100168B ] }; // 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> { [ comma, less, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
key <AB09> { [ period, greater, 0x100169B ] }; // OGHAM FEATHER MARK
key <AB10> { [ slash, question, 0x1001680 ] }; // OGHAM SPACE MARK
// 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> { type[Group1] = "ONE_LEVEL", [ ISO_Level3_Lock ] };
// 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.
// Also overcomes annoying use of Scroll Lock LED inherited from
// US symbols but not relevant here since we're not changing group.
key <SCLK> {type[Group1] = "ONE_LEVEL", [ Shift_Lock ] };
modifier_map Shift { Shift_Lock };
include "compose(rwin)"
};

View File

@@ -0,0 +1,336 @@
// 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" {
// uses the kbd layout in use in Israel.
name[Group1]= "Hebrew";
key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
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, NoSymbol, U05C6 ]}; // Nun Hafukha
key <AB06> { [ hebrew_mem, N ] };
key <AB07> { [ hebrew_zade, M, U05B5 ] }; // Tsere
key <AB08> { [ hebrew_taw, greater, rightsinglequotemark ]}; // greater Mirrored
key <AB09> { [ hebrew_finalzade, less, singlelowquotemark ]}; // less Mirrored
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 <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.type[Group1] = "FOUR_LEVEL";
// Non-alphanumeric keys
key <AB10> { [ period, question, division ]};
key <AC11> { [ comma, quotedbl, U05F4] }; // Gershayim
key <AD11> { [ bracketright, braceright, U05B2 ]}; // Mirrored; Hataf Patah
key <AD12> { [ bracketleft, braceleft, U05BF ]}; // Mirrored; Rafe
key <BKSL> { [ backslash, bar, U05BB ] }; // Qubuts
// Top (digits) row
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 ]}; // Hebrew Accent Ole
key <AE07> { [ 7, ampersand, U05BD ]}; // Meteg
key <AE08> { [ 8, asterisk, multiply]};
key <AE09> { [ 9, parenright, U200E ]}; // LRM; Paren Mirrored
key <AE10> { [ 0, parenleft, U200F ]}; // RLM; Paren Mirrored
key <AE11> { [ minus, underscore, U05BE ]}; // Maqaf
key <AE12> { [ equal, plus, endash ]};
include "level3(ralt_switch)"
};
// nikud patter based on Dekel Tsur's Hebrew mapping for LyX
partial alphanumeric_keys
xkb_symbols "lyx" {
name[Group1]= "Hebrew (lyx)";
key <TLDE> { [ semicolon, asciitilde ] };
// On some key (e.g. AD01, right below) there is not yet mapping for the
// second shift level. Since I could not figure a simple way to map this
// to "emit nothing", it is currently mapped to the same letter of the
// first shift level (avoiding mapping may risk it be used by a character
// from a different group).
key <AD01> { [ slash, slash ] };
key <AD02> { [ apostrophe, apostrophe ] };
key <AD03> { [ hebrew_qoph, 0x10005b8 ] }; // Qamats
key <AD04> { [ hebrew_resh, 0x10005bc ] }; // Dagesh/Shuruq
key <AD05> { [ hebrew_aleph, 0x100200e ] }; // LRM
key <AD06> { [ hebrew_tet, 0x100200f ] }; // RLM
key <AD07> { [ hebrew_waw, 0x10005b9 ] }; // Holam
key <AD08> { [ hebrew_finalnun,hebrew_finalnun] };
key <AD09> { [ hebrew_finalmem,hebrew_finalmem] };
key <AD10> { [ hebrew_pe, 0x10005b7 ] }; // Patah
key <AC01> { [ hebrew_shin, 0x10005b0 ] }; // Sheva
key <AC02> { [ hebrew_dalet, 0x10005bc ] }; // Dagesh/Shuruq
key <AC03> { [ hebrew_gimel, hebrew_gimel ] };
key <AC04> { [ hebrew_kaph, hebrew_kaph ] };
key <AC05> { [ hebrew_ayin, 0x10005c2 ] }; // Sin dot
key <AC06> { [ hebrew_yod, 0x10005c1 ] }; // Shin dot
key <AC07> { [ hebrew_chet, 0x10005b4 ] }; // Hiriq
key <AC08> { [ hebrew_lamed, 0x10020aa ] }; // NIS
key <AC09> { [ hebrew_finalkaph,hebrew_finalkaph] };
key <AC10> { [ hebrew_finalpe, colon ] };
key <AC11> { [ comma, quotedbl ] };
key <AB01> { [ hebrew_zain, hebrew_zain ] };
key <AB02> { [ hebrew_samech,0x10005b6 ] }; // Segol
key <AB03> { [ hebrew_bet, 0x10005bb ] }; // Qubuts
key <AB04> { [ hebrew_he, 0x10005b1 ] }; // H. Segol
key <AB05> { [ hebrew_nun, 0x10005b2 ] }; // H. Patah
key <AB06> { [ hebrew_mem, 0x10005b3 ] }; // H. Qamats
key <AB07> { [ hebrew_zade, 0x10005b5 ] }; // Tsere
key <AB08> { [ hebrew_taw, greater ] };
key <AB09> { [ hebrew_finalzade, less ] };
key <AB10> { [ period, question ] };
// Note the parens mirroring below:
key <AD11> { [ bracketright, braceright ] };
key <AD12> { [ bracketleft, braceleft ] };
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 , 0x10005be ] }; // H. Hiphen
key <AE12> { [ equal , plus ] };
};
partial alphanumeric_keys
xkb_symbols "phonetic" {
include "il(basic)"
name[Group1]= "Hebrew (phonetic)";
// Implements the phonetic layout from the old Slackware 'il.map' file.
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright ] };
key <TLDE> { [ grave, asciitilde ] };
key <AD11> { [ bracketleft, braceleft ] };
key <AD12> { [ bracketright, braceright ] };
key <AC10> { [ semicolon, colon ] };
key <AC11> { [ apostrophe, quotedbl ] };
key <AB08> { [ comma, less ] };
key <AB09> { [ period, greater ] };
key <AB10> { [ slash, question ] };
key <BKSL> { [ backslash, bar ] };
key <LatQ> { [ hebrew_qoph, hebrew_qoph ] };
key <LatW> { [ hebrew_waw, hebrew_waw ] };
key <LatE> { [ hebrew_aleph, hebrew_aleph ] };
key <LatR> { [ hebrew_resh, hebrew_resh ] };
key <LatT> { [ hebrew_taw, hebrew_tet ] };
key <LatY> { [ hebrew_ayin, hebrew_ayin ] };
key <LatU> { [ hebrew_waw, hebrew_waw ] };
key <LatI> { [ hebrew_yod, hebrew_yod ] };
key <LatO> { [ hebrew_samech, hebrew_samech ] };
key <LatP> { [ hebrew_pe, hebrew_finalpe ] };
key <LatA> { [ hebrew_aleph, hebrew_aleph ] };
key <LatS> { [ hebrew_shin, hebrew_shin ] };
key <LatD> { [ hebrew_dalet, hebrew_dalet ] };
key <LatF> { [ hebrew_pe, hebrew_finalpe ] };
key <LatG> { [ hebrew_gimel, hebrew_gimel ] };
key <LatH> { [ hebrew_he, hebrew_he ] };
key <LatJ> { [ hebrew_yod, hebrew_yod ] };
key <LatK> { [ hebrew_kaph, hebrew_finalkaph ] };
key <LatL> { [ hebrew_lamed, hebrew_lamed ] };
key <LatZ> { [ hebrew_zain, hebrew_zain ] };
key <LatX> { [ hebrew_chet, hebrew_chet ] };
key <LatC> { [ hebrew_zade, hebrew_finalzade ] };
key <LatV> { [ hebrew_waw, hebrew_waw ] };
key <LatB> { [ hebrew_bet, hebrew_bet ] };
key <LatN> { [ hebrew_nun, hebrew_finalnun ] };
key <LatM> { [ hebrew_mem, hebrew_finalmem ] };
};
// 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.
// Documentation (including printable keyboard tables), SBL Hebrew font, and
// keyboard layout for Windows are available at
// http://www.sbl-site.org/Resources/Resources_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. Tiros 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 = "FOUR_LEVEL_SEMIALPHABETIC";
key <TLDE> { [ U05C3, U05AE, semicolon, asciitilde ] };
key <AE01> { [ 1, U05A9, VoidSymbol, exclam ] };
key <AE02> { [ 2, U0599, VoidSymbol, at ] };
key <AE03> { [ 3, U0592, VoidSymbol, 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, VoidSymbol, 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, VoidSymbol, braceright ] };
key <AD12> { [ bracketleft, U0598, VoidSymbol, 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, VoidSymbol, 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, VoidSymbol, greater ] };
key <AB09> { [ hebrew_finalzade, U0596, VoidSymbol, 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 = "FOUR_LEVEL_SEMIALPHABETIC";
key <TLDE> { [ U20AC, U20AA, U0024 ] }; //Euro, Shekel, Dollar -
key <AE01> { [ 1, U0021, U05BD, U0597 ] }; //1, exclamation meteg revia
key <AE02> { [ 2, U0598, U05A2, U05AE ] }; //2, zarqa atn. 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, VoidSymbol, U05AD, U059F ] }; //6, - dehi qar. para
key <AE07> { [ 7, U05AC, U05A3, U05A1 ] }; //7, iluy munah pazer
key <AE08> { [ 8, U059D, U059B, U0595 ] }; //8, g. muqdam tevir zaq. gadol
key <AE09> { [ 9, U0029, U05A7, U0593 ] }; //9, parenth.R darqa shalshelet
key <AE10> { [ 0, U0028, U05AA, U05AF ] }; //0, paren.L yer. ben yomo masora c.
key <AE11> { [ U05BE, U2013, U2014, U05BF ] }; //Maqaf, en dash em dash rafe
key <AE12> { [ U05BC, VoidSymbol, U0591, U25CC ] }; //Dagesh - etnahta mark base
key <AD01> { [ hebrew_qoph, U0597 ] }; //Qof revia - -
key <AD02> { [ hebrew_waw] }; //waw - - -
key <AD03> { [ U05B6, U05B5, VoidSymbol, U05B1 ] }; //segol tsere - hat. segol
key <AD04> { [ hebrew_resh ] }; //resh - - -
key <AD05> { [ hebrew_taw ] }; //taw - - -
key <AD06> { [ hebrew_yod, U059F ] }; //jod qar. para - -
key <AD07> { [ U05BB] }; //quibuts - - -
key <AD08> { [ U05B4 ] }; //hiriq, - - -
key <AD09> { [ U05B9, U05BA, U05C7, U05B3 ] }; //holam, holam(wav) qam. qatan hat. Qamats
key <AD10> { [ hebrew_pe, hebrew_finalpe, VoidSymbol, U034F ] }; //pe final pe - c. grapheme joiner
key <AD11> { [ bracketright, braceright, VoidSymbol, U0594 ] }; //Bracket R brace R - zaq. qatan
key <AD12> { [ bracketleft, braceleft, U059A, U0592 ] }; //Brachket L brace L yetiv segolta
key <BKSL> { [ U05C0, U05C0, U05A4, U05AB ] };//Paseq Paseq mahapakh ole
key <AC01> { [ U05B7, U05B8, U05C7, U05B2 ] }; //patah Qamats Qam. Qatan hat. patah
key <AC02> { [ hebrew_samech, U05E9 ] }; //Samech, shin no dot - -
key <AC03> { [ hebrew_dalet ] }; //dalet - - -
key <AC04> { [ UFB2B, hebrew_shin, U05C2 ] }; //UCSv6 Sin shin (nodot) sindot -
key <AC05> { [ hebrew_gimel, VoidSymbol, U25E6, U2022 ] }; //gimel - bullet(DSS) bulletfill (DSS)
key <AC06> { [ hebrew_he, VoidSymbol, U0336, U030A ] };//he - strikeout(DSS) Ring Above(DSS)
key <AC07> { [ UFB2A, hebrew_shin, U05C1] }; //UCSv6 Shin shin (nodot) shindot -
key <AC08> { [ hebrew_kaph, hebrew_finalkaph ] }; //kaph Final kaph -
key <AC09> { [ hebrew_lamed, VoidSymbol ] }; //lamed - -
key <AC10> { [ U05B0, U05F4, semicolon, U05C3 ] }; //sva gers. p semicolon sof pasuq
key <AC11> { [ U2019, U201D, U0323, U05C4 ] };//QuoteRight double R Quote punctum punctum Above
key <AB01> { [ hebrew_zain ] }; //Zayin - -
key <AB02> { [ hebrew_chet ] }; //chet - -
key <AB03> { [ hebrew_zade, U05E5 ] }; // 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 0.wid.non.join. 0.wid.joiner
key <AB08> { [ U002C, U05E2, U00AB, U0307 ] }; //comma, ayin guillemetsR masora dot
key <AB09> { [ U0002E, U05D0, U00BB, U0308 ] }; //period, alef guillemetsL thousands
key <AB10> { [ slash, question, U05F3 ] }; //slash question geresh P
key <SPCE> { [ space, space, thinspace, nobreakspace ] };//space space thin space, nbsp
include "level3(ralt_switch)"
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,33 @@
// Iraque keyboard layout,
// 3-Level layout
default partial alphanumeric_keys
xkb_symbols "basic" {
include "ara(basic)"
name[Group1]= "Iraqi";
};
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)";
};

View File

@@ -0,0 +1,305 @@
// Iranian keyboard layout
////////////////////////////////////////
// Persian layout,
// based on
// Information Technology Layout of Persian Letters and Symbols on Computer Keyboards
// ISIRI 9147 1st Edition
// Institute of Standards and Industrial Research of Iran
// http://www.isiri.org/UserStd/DownloadStd.aspx?id=9147
// http://behnam.esfahbod.info/standards/isiri-keyboard-9147.pdf
//
// Author: Behnam Esfahbod <behnam@esfahbod.info>
//
default partial alphanumeric_keys
xkb_symbols "pes" {
name[Group1]= "Persian";
include "ir(pes_part_basic)"
include "ir(pes_part_ext)"
include "nbsp(zwnj2nb3nnb4)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "pes_keypad" {
name[Group1]= "Persian (with Persian keypad)";
include "ir(pes_part_basic)"
include "ir(pes_part_ext)"
include "ir(pes_part_keypad)"
include "nbsp(zwnj2nb3nnb4)"
include "level3(ralt_switch)"
};
hidden partial alphanumeric_keys
xkb_symbols "pes_part_basic" {
// Persian digits
key <AE01> { [ Farsi_1, exclam, grave ] };
key <AE02> { [ Farsi_2, 0x100066c, at ] };
key <AE03> { [ Farsi_3, 0x100066b, numbersign ] };
key <AE04> { [ Farsi_4, 0x100fdfc, dollar ] };
key <AE05> { [ Farsi_5, 0x100066a, percent ] };
key <AE06> { [ Farsi_6, multiply, asciicircum ] };
key <AE07> { [ Farsi_7, Arabic_comma, ampersand ] };
key <AE08> { [ Farsi_8, asterisk, enfilledcircbullet ] };
key <AE09> { [ Farsi_9, parenright, 0x100200e ] };
key <AE10> { [ Farsi_0, parenleft, 0x100200f ] };
// Persian letters and symbols
key <AD01> { [ Arabic_dad, Arabic_sukun, degree ] };
key <AD02> { [ Arabic_sad, Arabic_dammatan, VoidSymbol ] };
key <AD03> { [ Arabic_theh, Arabic_kasratan, 0x13a4 ] };
key <AD04> { [ Arabic_qaf, Arabic_fathatan, VoidSymbol ] };
key <AD05> { [ Arabic_feh, Arabic_damma, VoidSymbol ] };
key <AD06> { [ Arabic_ghain, Arabic_kasra, VoidSymbol ] };
key <AD07> { [ Arabic_ain, Arabic_fatha, VoidSymbol ] };
key <AD08> { [ Arabic_heh, Arabic_shadda, 0x100202d ] };
key <AD09> { [ Arabic_khah, bracketright, 0x100202e ] };
key <AD10> { [ Arabic_hah, bracketleft, 0x100202c ] };
key <AD11> { [ Arabic_jeem, braceright, 0x100202a ] };
key <AD12> { [ Arabic_tcheh, braceleft, 0x100202b ] };
key <AC01> { [ Arabic_sheen, Arabic_hamzaonwaw, VoidSymbol ] };
key <AC02> { [ Arabic_seen, Arabic_hamzaonyeh, VoidSymbol ] };
key <AC03> { [ Farsi_yeh, Arabic_yeh, Arabic_alefmaksura ] };
key <AC04> { [ Arabic_beh, Arabic_hamzaunderalef, VoidSymbol ] };
key <AC05> { [ Arabic_lam, Arabic_hamzaonalef, VoidSymbol ] };
key <AC06> { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] };
key <AC07> { [ Arabic_teh, Arabic_tehmarbuta, VoidSymbol ] };
key <AC08> { [ Arabic_noon, guillemotright, 0x100fd3e ] };
key <AC09> { [ Arabic_meem, guillemotleft, 0x100fd3f ] };
key <AC10> { [ Arabic_keheh, colon, semicolon ] };
key <AC11> { [ Arabic_gaf, Arabic_semicolon, quotedbl ] };
key <AB01> { [ Arabic_zah, Arabic_kaf, VoidSymbol ] };
key <AB02> { [ Arabic_tah, 0x1000653, VoidSymbol ] };
key <AB03> { [ Arabic_zain, Arabic_jeh, VoidSymbol ] };
key <AB04> { [ Arabic_ra, Arabic_superscript_alef,0x1000656 ] };
key <AB05> { [ Arabic_thal, 0x100200c, 0x100200d ] };
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> { [ 0x100200d, division, asciitilde ] };
key <AE11> { [ minus, Arabic_tatweel, underscore ] };
key <AE12> { [ equal, plus, 0x1002212 ] };
key <BKSL> { [ backslash, bar, 0x1002010 ] };
};
hidden partial alphanumeric_keys
xkb_symbols "pes_part_ext" {
// Persian and ASCII digits
key <AE01> { [ Farsi_1, exclam, grave, 1 ] };
key <AE02> { [ Farsi_2, 0x100066c, at, 2 ] };
key <AE03> { [ Farsi_3, 0x100066b, numbersign, 3 ] };
key <AE04> { [ Farsi_4, 0x100fdfc, dollar, 4 ] };
key <AE05> { [ Farsi_5, 0x100066a, 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, 0x100200e, 9 ] };
key <AE10> { [ Farsi_0, parenleft, 0x100200f, 0 ] };
};
hidden partial alphanumeric_keys
xkb_symbols "pes_part_keypad" {
// Persian digits and Mathematical operators
key <KPDV> { [ division, XF86_Ungrab ] };
key <KPMU> { [ multiply, XF86_ClearGrab ] };
key <KPSU> { [ 0x1002212, XF86_Prev_VMode ] };
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, 0x100066b ] };
};
////////////////////////////////////////
// Kurdish Layout
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)";
// Other 3-Level symbols
key <TLDE> { [ 0x100200d, division, asciitilde ] };
key <BKSL> { [ backslash, bar, ccedilla, Ccedilla ] };
// Digits
key <AE01> { [ 0x1000661, exclam, 1, grave ] };
key <AE02> { [ 0x1000662, at, 2, at ] };
key <AE03> { [ 0x1000663, numbersign, 3, 0x100066b ] };
key <AE04> { [ 0x1000664, dollar, 4, 0x100fdfc ] };
key <AE05> { [ 0x1000665, percent, 5, 0x100066a ] };
key <AE06> { [ 0x1000666, asciicircum, 6, multiply ] };
key <AE07> { [ 0x1000667, ampersand, 7, Arabic_comma ] };
key <AE08> { [ 0x1000668, asterisk, 8, enfilledcircbullet ] };
key <AE09> { [ 0x1000669, parenright, 9, 0x100200e ] };
key <AE10> { [ 0x1000660, parenleft, 0, 0x100200f ] };
key <AE11> { [ minus, Arabic_tatweel, underscore ] };
key <AE12> { [ equal, plus, 0x1002212 ] };
key <AD01> { [ Arabic_qaf, X, q, Q ] };
key <AD02> { [ Arabic_waw, X, w, W ] };
key <AD03> { [ 0x10006d5, Arabic_heh, e, E ] };
key <AD04> { [ Arabic_ra , 0x1000695, r, R ] };
key <AD05> { [ Arabic_teh, Arabic_tah, t, T ] };
key <AD06> { [ 0x10006cc, 0x10006ce, y, Y ] };
key <AD07> { [ Arabic_hamzaonyeh, Arabic_hamza, u, U ] };
key <AD08> { [ Arabic_hah, Arabic_ain, i, I ] };
key <AD09> { [ 0x10006c6, Arabic_hamzaonwaw, o, O ] };
key <AD10> { [ 0x100067e, 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> { [ 0x10006af, Arabic_ghain, g, G ] };
key <AC06> { [ Arabic_heh, 0x100200c, h, H ] };
key <AC07> { [ 0x1000698, Arabic_hamzaonalef, j, J ] };
key <AC08> { [ 0x10006a9, Arabic_kaf, k, K ] };
key <AC09> { [ Arabic_lam, 0x10006b5, l, L ] };
key <AC10> { [ Arabic_semicolon, colon, ecircumflex, Ecircumflex ] };
key <AC11> { [ apostrophe, quotedbl, icircumflex, Icircumflex ] };
key <AB01> { [ Arabic_zain, Arabic_dad, z, Z ] };
key <AB02> { [ Arabic_khah, Arabic_sad, x, X ] };
key <AB03> { [ Arabic_jeem, 0x1000686, c, C ] };
key <AB04> { [ 0x10006a4, Arabic_zah, v, V ] };
key <AB05> { [ Arabic_beh, 0x1000649, 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)"
};
// EXTRAS:
/////////////////////////////////////////////////////////////////////////////////
//
// Generated keyboard layout file with the Keyboard Layout Editor.
// For more about the software, see http://code.google.com/p/keyboardlayouteditor
//
// Version 0.2, fixed AD09.
//
// Layout by Ernst Tremel, http://ubuntuforums.org/showpost.php?p=9365469&postcount=32
// Creation of this file by Simos Xenitellis.
partial alphanumeric_keys
xkb_symbols "ave"
{
name[Group1] = "Avestan";
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 ] }; // 𐬿 ·
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 <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 <AE01> { [ U10B78 ] }; // 𐭸
key <AE02> { [ U10B79 ] }; // 𐭹
key <AE03> { [ U10B7A ] }; // 𐭺
key <AE04> { [ U10B7B ] }; // 𐭻
key <AE05> { [ U10B7C ] }; // 𐭼
key <AE06> { [ U10B7D ] }; // 𐭽
key <AE07> { [ U10B7E ] }; // 𐭾
key <AE08> { [ U10B7F ] }; // 𐭿
key <BKSL> { [ U10B04, U10B05 ] }; // 𐬄 𐬅
key <LSGT> { [ U10B04, U10B05 ] }; // 𐬄 𐬅
};

View File

@@ -0,0 +1,188 @@
// 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, U00A2, EuroSign ] };
key <AE05> { [ 5, percent, U2030, 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, Ooblique ] };
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, 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 ] };
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 ] };
key <LSGT> { [ less, greater, section, UF8FF ] }; // Apple logo
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)"
};
// 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, Ooblique ] };
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, U2030, 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, U0040, paragraph ] };
key <AD02> { [ w, W, U2211, U00A7 ] };
key <AD03> { [ e, E, U20AC, U00BF ] };
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, U00BA ] };
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, U00B8 ] };
key <AC07> { [ j, J, U2206, doubleacute ] };
key <AC08> { [ k, K, notsign, U2DB ] };
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 <AB10> { [ z, Z, thorn, Thorn ] };
key <AB06> { [ b, B, ssharp, U1E9E ] };
include "level3(ralt_switch)"
};

View File

@@ -0,0 +1,419 @@
// 17 May 2003 Modified by Sebastiano Vigna (vigna@dsi.unimi.it)
// 03 December 2017 - Added it(intl) and it(scn), please refer to
// Cadèmia Siciliana <l10n@cademiasiciliana.org>
// 18 July 2018 - Fixed inconsistent 'ì' and 'ù' in it(intl)
// Alessandro Pellegrini <pellegrini@dis.uniroma1.it>
// 28 February 2017 - Added it(fur), please refer to
// Fabio Tomat <f.t.public@gmail.com>
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" {
// Modifies the basic italian layout to eliminate all dead keys
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 <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)"
};
// Copied from macintosh_vndr/it
partial alphanumeric_keys
xkb_symbols "mac" {
name[Group1]= "Italian (Macintosh)";
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)"
};
// Used by Georgian people in Italy,
// contributed by Vladimer Sichinava
partial alphanumeric_keys
xkb_symbols "geo" {
include "it"
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> { [ 0x010010d4, 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 ] };
};
// OLPC Section
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 <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)"
include "eurosign(5)"
};
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)"
};
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, U00AA ]};
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, U00A9 ]};
key <AB06> {[ n, N, U207F, Ntilde ]};
key <AB07> {[ m, M, U1D50, U00B5 ]};
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)"
};
// 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] = "Italian (Ladin)";
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 "intl" {
include "it(basic)"
name[Group1] = "Italian (intl., with dead keys)";
key <AE12> { [ igrave, asciicircum, asciitilde, dead_circumflex ] };
key <AD03> { [ e, E, EuroSign, U0259 ] };
key <AC03> { [ d, D, U1E0D, U1E0C ] };
key <AC04> { [ f, F, U0111, U0110 ] };
key <AC06> { [ h, H, U1E25, U1E24 ] };
key <AC11> { [ agrave, degree, numbersign, U1D58 ] };
key <AB01> { [ z, Z ] };
key <AB02> { [ x, X, U03C7, U03A7 ] };
key <BKSL> { [ ugrave, section, dead_grave, dead_breve ] };
};
partial alphanumeric_keys
xkb_symbols "scn" {
include "it(basic)"
name[Group1] = "Sicilian";
key <AE12> { [ iacute, asciicircum, asciitilde, dead_circumflex ] };
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, U0111, U0110 ] };
key <AC11> { [ agrave, degree, numbersign, U1D58 ] };
// Replaced dead_grave by ugrave, since it's common to write mixed
// Sicilian - Italian (where we replaced ugrave with uacute)
key <BKSL> { [ uacute, section, ugrave, dead_breve ] };
// In our Windows layout, there is no ©, but Ç. Since this character
// is available via CapsLock, I decided to keep © in place, as the
// Italian layout.
key <AB02> { [ x, X, U03C7, U03A7 ] };
key <AB03> { [ c, C, ccedilla, copyright ] };
};
// layout for Italian Dvorak
// 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,57 @@
// 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
// In practice this is equivalent to:
// setxkbmap -rules evdev -model jollasbj -layout cz_qwerty
// However, the latter form isn't portable so always use the -variant option.
//
// 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 ] };
};

View File

@@ -0,0 +1,323 @@
// Symbols for Japanese 106-keys keyboards (by 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 ] };
};
hidden partial alphanumeric_keys
xkb_symbols "common" {
// "Common" keys for jp 106/109A layouts.
key <HZTG> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1]= [ Zenkaku_Hankaku, Kanji ]
};
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 <LCTL> { [ Control_L ] };
key <NFER> { [ Muhenkan ] };
key <XFER> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1]= [ Henkan, Mode_switch ]
};
key <HKTG> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1]= [ Hiragana_Katakana, Romaji ]
};
key <EISU> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1]= [ Eisu_toggle ]
};
key <KANA> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1]= [ Hiragana_Katakana ]
};
key <PRSC> {
type[Group1]= "PC_ALT_LEVEL2",
symbols[Group1]= [ Print, Execute ]
};
};
partial alphanumeric_keys
xkb_symbols "henkan" {
key <XFER> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1]= [ Henkan, Mode_switch ]
};
};
partial alphanumeric_keys
xkb_symbols "OADG109A" {
include "jp(common)"
name[Group1]= "Japanese (OADG 109A)";
key <AE10> { [ 0 ] };
key <AE13> { [ yen, bar ] };
};
// 86 keys with kana map
partial alphanumeric_keys
xkb_symbols "kana86" {
include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(numoperdecsep)"
include "altwin(menu)"
include "jp(kana)"
include "jp(OADG109A)"
name[Group1]= "Japanese (Kana 86)";
key <ESC> { [ Escape ] };
key <NMLK> { [ Num_Lock ] };
key <BKSP> { [ BackSpace ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <RTRN> { [ Return ] };
key <LFSH> { [ Shift_L ] };
key <RTSH> { [ Shift_R ] };
key <LWIN> { [ Super_L ] };
key <LALT> { [ Alt_L ] };
key <SPCE> { [ space ] };
key <RALT> { [ Alt_R ] };
// For compatibility with other keyboards connected at the same time:
key <RWIN> { [ Super_R ] };
key <RCTL> { [ Control_R ] };
};
partial alphanumeric_keys
xkb_symbols "kana" {
name[Group1]= "Japanese (Kana)";
key <HZTG> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1]= [ Zenkaku_Hankaku, Kanji ]
};
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_middledot ] };
key <AB11> { [ kana_RO ] };
key <LCTL> { [ Control_L ] };
key <NFER> { [ Muhenkan ] };
key <XFER> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1]= [ Henkan, Mode_switch ]
};
key <HKTG> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1]= [ Hiragana_Katakana, Romaji ]
};
key <PRSC> {
type[Group1]= "PC_ALT_LEVEL2",
symbols[Group1]= [ Print, Execute ]
};
};
partial alphanumeric_keys
xkb_symbols "nicola_f_bs" {
key <BKSP> {
type="",
symbols[Group1]= [ bracketright, braceright ]
};
key <AE10> { [ 0, underscore ] };
key <AD11> { [ colon, asterisk ] };
key <AC11> { [ BackSpace, BackSpace ] };
key <AC12> { [ Escape ] };
key <AB11> { [ at, grave ] };
};
// Copied from macintosh_vndr/jp
partial alphanumeric_keys
xkb_symbols "mac" {
include "jp(kana)"
name[Group1]= "Japanese (Macintosh)";
replace key <CAPS> { [ Caps_Lock ] };
};
partial alphanumeric_keys
xkb_symbols "hztg_escape" {
replace key <HZTG> { [ Escape ] };
};
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 ] };
};
// 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)"
};

View File

@@ -0,0 +1,109 @@
// Keyboard layout for Swahili in Arabic script.
// Based on Martin Vidner's Buckwalter transliteration variant of the Arabic keyboard
// Please notify any corrections or omissions to
// Kevin Donnelly (kevin@dotmon.com)
default partial alphanumeric_keys
xkb_symbols "swa" {
include "us"
name[Group1]= "Swahili (Kenya)";
key <AC10> { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW
key <AC11> { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS
key <TLDE> { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE
key <AE06> { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT
key <AE08> { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW
key <AE09> { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE
key <AE10> { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON
key <AE11> { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW
include "level3(ralt_switch)"
};
// Kikuyu (Gĩkũyũ) keyboard
// Based on Kasahorow keyboard layout
// https://code.google.com/archive/p/africakeyboards/
//
//
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ~ ¸ │ ! ¡ │ @ ⅛ │ # £ │ $ $ │ % ⅜ │ ^ ⅝ │ & ⅞ │ * ™ │ ( ± │ ) ° │ _ ¿ │ + ˛ ┃ BKSP ┃
// │ ` │ 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 N │ M º │ < × │ > ÷ │ ? ˙ ┃ ┃
// ┃Shift ⇧┃ < | │ z « │ ũ » │ c ¢ │ v “ │ b ” │ n n │ m µ │ , ─ │ . · │ / ̣ ̣̣̣̣̣┃Shift ⇧ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┃Ctrl ┃Meta ┃Alt ┃ Space ┃AltGr ⇮┃Menu ┃Ctrl ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
partial alphanumeric_keys
xkb_symbols "kik" {
include "latin(type4)"
name[Group1]= "Kikuyu";
key <TLDE> { [ 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> { [ itilde, Itilde, 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, x, X ] };
key <AC08> { [ k, K ] };
key <AC09> { [ l, L ] };
key <AC10> { [ semicolon, colon ] };
key <AC11> { [ apostrophe, quotedbl ] };
key <AB01> { [ z, Z ] };
key <AB02> { [ utilde, Utilde ] };
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 <BKSL> { [ backslash, bar ] };
include "level3(ralt_switch)"
};

View File

@@ -0,0 +1,624 @@
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" ;
// 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" {
// 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 ]
};
};

View File

@@ -0,0 +1,132 @@
// Kirghiz (aka Kyrgyz) Standard Keyboard
//
// 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 keyboard
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Kyrgyz";
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 <BKSL> { [ Cyrillic_u_straight, Cyrillic_U_straight ] };
key <AB10> { [ period, comma ] };
key <LSGT> { [ slash, bar ] };
key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
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 <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 ] };
};
// Kyrgyz phonetic layout
partial alphanumeric_keys
xkb_symbols "phonetic" {
name[Group1]="Kyrgyz (phonetic)";
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 <AD11> { [ Cyrillic_che, Cyrillic_CHE ] };
key <AD12> { [ Cyrillic_sha, Cyrillic_SHA ] };
key <BKSL> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
key <AB09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
key <AB10> { [ period, comma ] };
key <AB08> { [ Cyrillic_tse, Cyrillic_TSE ] };
key <AC10> { [ Cyrillic_e, Cyrillic_E ] };
key <AC11> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
key <LatQ> { [ Cyrillic_o_bar, Cyrillic_O_bar ] };
key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
key <LatW> { [ Cyrillic_u_straight, Cyrillic_U_straight ] };
key <LatC> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
key <LatX> { [ Cyrillic_ha, Cyrillic_HA ] };
key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
key <LatV> { [ Cyrillic_ve, Cyrillic_VE ] };
key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
key <LatH> { [ Cyrillic_en_descender, Cyrillic_EN_descender ] };
key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] };
key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
key <LatI> { [ Cyrillic_i, Cyrillic_I ] };
key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
};

View File

@@ -0,0 +1,112 @@
//
// khmer unicode keyboard for XFree86 4.3 or XOrg
// (might work with older versions, not tested)
//
// layout defined by National Information Communications Technology Development Authority (NiDA)
// http://www.nida.gov.kh
//
// version: 1.0.1
//
// date: 14.09.2005
//
// author: Jens Herden (jens at khmeros.info)
//
//
// understanding the symbols:
//
// 0x100yyyy = unicode, yyyy is hexcode
// codes that are not assigned in unicode (0x10017fb-0x10017ff),
// are used to make compositions for special vowels
//
// voidsymbol = no symbol for this combination
//
// all other symbol are defined in: /usr/X11/include/X11/keysymdef.h
// but with a leading 'XK_'
//
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Khmer (Cambodia)";
// there are four levels defined:
//
// normal shift right-alt right-alt + shift
//
// keys: `1234567890-=\
key <TLDE> { [ guillemotleft, guillemotright, 0x100200d, voidsymbol ] };
key <AE01> { [ 0x10017e1, exclam, 0x100200c, 0x10017f1 ] };
key <AE02> { [ 0x10017e2, 0x10017d7, at, 0x10017f2 ] };
key <AE03> { [ 0x10017e3, quotedbl, 0x10017d1, 0x10017f3 ] };
key <AE04> { [ 0x10017e4, 0x10017db, dollar, 0x10017f4 ] };
key <AE05> { [ 0x10017e5, percent, EuroSign, 0x10017f5 ] };
key <AE06> { [ 0x10017e6, 0x10017cd, 0x10017d9, 0x10017f6 ] };
key <AE07> { [ 0x10017e7, 0x10017d0, 0x10017da, 0x10017f7 ] };
key <AE08> { [ 0x10017e8, 0x10017cf, asterisk, 0x10017f8 ] };
key <AE09> { [ 0x10017e9, parenleft, braceleft, 0x10017f9 ] };
key <AE10> { [ 0x10017e0, parenright, braceright, 0x10017f0 ] };
key <AE11> { [ 0x10017a5, 0x10017cc, x, voidsymbol ] };
key <AE12> { [ 0x10017b2, equal, 0x10017ce, voidsymbol ] };
key <BKSL> { [ 0x10017ae, 0x10017ad, backslash, voidsymbol ] };
// keys: qwertyuiop[]
key <AD01> { [ 0x1001786, 0x1001788, 0x10017dc, 0x10019e0 ] };
key <AD02> { [ 0x10017b9, 0x10017ba, 0x10017dd, 0x10019e1 ] };
key <AD03> { [ 0x10017c1, 0x10017c2, 0x10017af, 0x10019e2 ] };
key <AD04> { [ 0x100179a, 0x10017ac, 0x10017ab, 0x10019e3 ] };
key <AD05> { [ 0x100178f, 0x1001791, 0x10017a8, 0x10019e4 ] };
key <AD06> { [ 0x1001799, 0x10017bd, voidsymbol, 0x10019e5 ] };
key <AD07> { [ 0x10017bb, 0x10017bc, voidsymbol, 0x10019e6 ] };
key <AD08> { [ 0x10017b7, 0x10017b8, 0x10017a6, 0x10019e7 ] };
key <AD09> { [ 0x10017c4, 0x10017c5, 0x10017b1, 0x10019e8 ] };
key <AD10> { [ 0x1001795, 0x1001797, 0x10017b0, 0x10019e9 ] };
key <AD11> { [ 0x10017c0, 0x10017bf, 0x10017a9, 0x10019ea ] };
key <AD12> { [ 0x10017aa, 0x10017a7, 0x10017b3, 0x10019eb ] };
// keys: asdfghjkl;'
key <AC01> { [ 0x10017b6, 0x10017ff, voidsymbol, 0x10019ec ] };
key <AC02> { [ 0x100179f, 0x10017c3, voidsymbol, 0x10019ed ] };
key <AC03> { [ 0x100178a, 0x100178c, voidsymbol, 0x10019ee ] };
key <AC04> { [ 0x1001790, 0x1001792, voidsymbol, 0x10019ef ] };
key <AC05> { [ 0x1001784, 0x10017a2, voidsymbol, 0x10019f0 ] };
key <AC06> { [ 0x10017a0, 0x10017c7, voidsymbol, 0x10019f1 ] };
key <AC07> { [ 0x10017d2, 0x1001789, voidsymbol, 0x10019f2 ] };
key <AC08> { [ 0x1001780, 0x1001782, 0x100179d, 0x10019f3 ] };
key <AC09> { [ 0x100179b, 0x10017a1, voidsymbol, 0x10019f4 ] };
key <AC10> { [ 0x10017be, 0x10017fe, 0x10017d6, 0x10019f5 ] };
key <AC11> { [ 0x10017cb, 0x10017c9, 0x10017c8, 0x10019f6 ] };
// keys: zxcvbnm,./
key <AB01> { [ 0x100178b, 0x100178d, voidsymbol, 0x10019f7 ] };
key <AB02> { [ 0x1001781, 0x1001783, voidsymbol, 0x10019f8 ] };
key <AB03> { [ 0x1001785, 0x1001787, voidsymbol, 0x10019f9 ] };
key <AB04> { [ 0x100179c, 0x10017fd, voidsymbol, 0x10019fa ] };
key <AB05> { [ 0x1001794, 0x1001796, 0x100179e, 0x10019fb ] };
key <AB06> { [ 0x1001793, 0x100178e, voidsymbol, 0x10019fc ] };
key <AB07> { [ 0x1001798, 0x10017c6, voidsymbol, 0x10019fd ] };
key <AB08> { [ 0x10017fc, 0x10017fb, comma, 0x10019fe ] };
key <AB09> { [ 0x10017d4, 0x10017d5, period, 0x10019ff ] };
key <AB10> { [ 0x10017ca, question, slash, voidsymbol ] };
key <SPCE> { [ 0x100200b, space, 0x10000a0, voidsymbol ] };
key <RALT> { [ Alt_R ] };
// third level with right-Alt
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "olpc" {
include "kh(basic)"
// Contact Walter@laptop.org
key <AC10> { [ 0x10017be, 0x10017c8, 0x10017d6, 0x10019f5 ] };
key <AE01> { [ 0x10017e1, 0x100200c, exclam, 0x10017f1 ] };
key <AE03> { [ 0x10017e3, 0x10017d1, quotedbl, 0x10017f3 ] };
key <AE05> { [ 0x10017e5, EuroSign, percent, 0x10017f5 ] };
key <AE12> { [ 0x10017b2, 0x10017ce, equal, voidsymbol ] };
//language key
include "group(olpc)"
};

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 ] };
};

View File

@@ -0,0 +1,59 @@
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)"
};

View File

@@ -0,0 +1,304 @@
// 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 ] };
};

View File

@@ -0,0 +1,135 @@
// Lao keymap, by Anousak Souphavanh <anousak@muanglao.com>
default partial alphanumeric_keys
xkb_symbols "basic" {
// This keymap describes the Lao keyboard standard,
// which is [kind of] widely used in Laos.
name[Group1]= "Lao";
key <TLDE> { [ 0x100200D ]};
key <AE01> { [ 0x1000ea2, 0x1000ed1 ]};
key <AE01> { [ 0x1000ea2, 0x1000ed1 ]};
key <AE02> { [ 0x1000e9f, 0x1000ed2 ]};
key <AE03> { [ 0x1000ec2, 0x1000ed3 ]};
key <AE04> { [ 0x1000e96, 0x1000ed4 ]};
key <AE05> { [ 0x1000eb8, 0x1000ecc ]};
key <AE06> { [ 0x1000eb9, 0x1000ebc ]};
key <AE07> { [ 0x1000e84, 0x1000ed5 ]};
key <AE08> { [ 0x1000e95, 0x1000ed6 ]};
key <AE09> { [ 0x1000e88, 0x1000ed7 ]};
key <AE10> { [ 0x1000e82, 0x1000ed8 ]};
key <AE11> { [ 0x1000e8a, 0x1000ed9 ]};
key <AE12> { [ 0x1000ecd ]};
key <AD01> { [ 0x1000ebb ]};
key <AD02> { [ 0x1000ec4, 0x1000ed0 ]};
key <AD03> { [ 0x1000eb3 ]};
key <AD04> { [ 0x1000e9e, underscore ]};
key <AD05> { [ 0x1000eb0, plus ]};
key <AD06> { [ 0x1000eb4 ]};
key <AD07> { [ 0x1000eb5 ]};
key <AD08> { [ 0x1000ea3, 0x1000eae ]};
key <AD09> { [ 0x1000e99 ]};
key <AD10> { [ 0x1000e8d, 0x1000ebd ]};
key <AD11> { [ 0x1000e9a, minus ]};
key <AD12> { [ 0x1000ea5, braceright ]};
key <BKSL> { [ 0x1000edc, 0x1000edd ]};
key <AC01> { [ 0x1000eb1 ]};
key <AC02> { [ 0x1000eab, semicolon ]};
key <AC03> { [ 0x1000e81, period ]};
key <AC04> { [ 0x1000e94, comma ]};
key <AC05> { [ 0x1000ec0, colon ]};
key <AC06> { [ 0x1000ec9, 0x1000eca ]};
key <AC07> { [ 0x1000ec8, 0x1000ecb ]};
key <AC08> { [ 0x1000eb2, exclam ]};
key <AC09> { [ 0x1000eaa, question ]};
key <AC10> { [ 0x1000ea7, percent ]};
key <AC11> { [ 0x1000e87, equal ]};
key <AB01> { [ 0x1000e9c, 0x10020ad ]};
key <AB02> { [ 0x1000e9b, parenleft ]};
key <AB03> { [ 0x1000ec1, 0x1000eaf ]};
key <AB04> { [ 0x1000ead ]};
key <AB05> { [ 0x1000eb6 ]};
key <AB06> { [ 0x1000eb7 ]};
key <AB07> { [ 0x1000e97, 0x1000ec6 ]};
key <AB08> { [ 0x1000ea1, grave ]};
key <AB09> { [ 0x1000ec3, dollar ]};
key <AB10> { [ 0x1000e9d, parenright ]};
};
partial
xkb_symbols "stea" {
// This keymap describes the proposed Lao keyboard standard by
// the PAN Localization Project.
// Science Technology and Environment Agency of Lao PDR
// National University Computer and Emergency Science of Pakistan
// International Development Research Center
// Caveat: assigning multiple codepoints to a single key does not
// work in XKB. Therefore the combining codepoint assignments
// have been omitted.
name[Group1]= "Lao (STEA)";
key <TLDE> { [ quotedbl, apostrophe ]};
key <AE01> { [ 0x1000ea2, 1, 0x1000ed1 ]};
key <AE02> { [ 0x1000e9f, 2, 0x1000ed2 ]};
key <AE03> { [ 0x1000ec2, 3, 0x1000ed3 ]};
key <AE04> { [ 0x1000e96, 4, 0x1000ed4 ]};
key <AE05> { [ 0x1000eb8, 0x1000ecc, 0x1000ed5 ]};
key <AE06> { [ 0x1000eb9, 0x1000ebc, 0x1000ed6 ]};
key <AE07> { [ 0x1000e84, 5, 0x1000ed7 ]};
key <AE08> { [ 0x1000e95, 6, 0x1000ed8 ]};
key <AE09> { [ 0x1000e88, 7, 0x1000ed9 ]};
key <AE10> { [ 0x1000e82, 8, 0x1000ed0 ]};
key <AE11> { [ 0x1000e8a, 9 ]};
key <AE12> { [ 0x1000ecd ]};
key <AD01> { [ 0x1000ebb ]};
key <AD02> { [ 0x1000ec4, 0 ]};
key <AD03> { [ 0x1000eb3, asterisk ]};
key <AD04> { [ 0x1000e9e, underscore ]};
key <AD05> { [ 0x1000eb0, plus ]};
key <AD06> { [ 0x1000eb4 ]};
key <AD07> { [ 0x1000eb5 ]};
key <AD08> { [ 0x1000eae, 0x1000ea3 ]};
key <AD09> { [ 0x1000e99, 0x1000edc ]};
key <AD10> { [ 0x1000e8d, 0x1000ebd ]};
key <AD11> { [ 0x1000e9a, minus ]};
key <AD12> { [ 0x1000ea5 ]};
key <BKSL> { [ slash, backslash ]};
key <AC01> { [ 0x1000eb1 ]};
key <AC02> { [ 0x1000eab, semicolon ]};
key <AC03> { [ 0x1000e81, period ]};
key <AC04> { [ 0x1000e94, comma ]};
key <AC05> { [ 0x1000ec0, colon ]};
key <AC06> { [ 0x1000ec9, 0x1000eca ]};
key <AC07> { [ 0x1000ec8, 0x1000ecb ]};
key <AC08> { [ 0x1000eb2, exclam ]};
key <AC09> { [ 0x1000eaa, question ]};
key <AC10> { [ 0x1000ea7, percent ]};
key <AC11> { [ 0x1000e87, equal ]};
key <AB01> { [ 0x1000e9c, 0x10020ad ]};
key <AB02> { [ 0x1000e9b, parenleft ]};
key <AB03> { [ 0x1000ec1, 0x1000eaf ]};
key <AB04> { [ 0x1000ead, x ]};
key <AB05> { [ 0x1000eb6 ]};
key <AB06> { [ 0x1000eb7 ]};
key <AB07> { [ 0x1000e97, 0x1000ec6 ]};
key <AB08> { [ 0x1000ea1, 0x1000edd ]};
key <AB09> { [ 0x1000ec3, dollar ]};
key <AB10> { [ 0x1000e9d, parenright ]};
key <SPCE> { [ space, nobreakspace, nobreakspace ]};
key <KPDL> { [ comma, period ]};
include "level3(ralt_switch)"
};

View File

@@ -0,0 +1,239 @@
// 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 <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 <TLDE> { [ bar, degree, notsign, notsign ] };
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 <AC10> { [ ntilde, Ntilde, asciitilde, doubleacute ] };
key <AC11> { [ acute, diaeresis, braceleft, braceleft ] };
key <BKSL> { [ ccedilla, Ccedilla, braceright, breve ] };
key <AB10> { [ minus, underscore, dead_belowdot, 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 (by eDreymaR)
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, U0292, U01B7 ]};
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)"
};
// Latin American Spanish Colemak mapping (by eDreymaR), customized to
// keep WASD in a qwerty-like layout
partial alphanumeric_keys
xkb_symbols "colemak-gaming" {
name[Group1]="Spanish (Latin American, Colemak for gaming)";
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> {[ s, S, ssharp, section ]};
key <AC03> {[ d, D, eth, ETH ]};
key <AC04> {[ t, T, thorn, THORN ]};
key <AC05> {[ r, R, registered, trademark ]};
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, U0292, U01B7 ]};
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)"
};

View File

@@ -0,0 +1,254 @@
// 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, Ooblique ] };
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, braceright ] };
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 <AC10> { [ semicolon, colon, acute, doubleacute ] };
key <AC11> { [apostrophe, quotedbl, asciicircum, caron ] };
key <BKSL> { [ backslash, bar, grave, breve ] };
key <AB10> { [ slash, question, dead_belowdot, 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, dead_belowdot, abovedot ] };
};
partial
xkb_symbols "type3_nodeadkeys" {
include "latin(nodeadkeys)"
};
partial
xkb_symbols "type4_nodeadkeys" {
include "latin(nodeadkeys)"
key <AB10> { [ minus, underscore, dead_belowdot, 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
};

View File

@@ -0,0 +1,223 @@
// These partial variants assign ISO_Level3_Shift to various XKB keycodes
// so that the third shift level 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> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
include "level3(modifier_mapping)"
};
// Ensure a mapping to a real modifier for LevelThree.
partial modifier_keys
xkb_symbols "modifier_mapping" {
replace key <LVL3> {
type[Group1] = "ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
modifier_map Mod5 { <LVL3> };
};
// 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> {
type[Group1]="TWO_LEVEL",
symbols[Group1] = [ Alt_R, Meta_R ]
};
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> {
type[Group1]="TWO_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift, Multi_key ]
};
include "level3(modifier_mapping)"
};
// A special case of the right-Alt switch -- for use with grp:alts_toggle.
hidden partial modifier_keys
xkb_symbols "ralt_switch_for_alts_toggle" {
virtual_modifiers LAlt, AltGr;
key <LALT> {
type[Group1]="PC_RALT_LEVEL2",
symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ],
virtualMods= LAlt
};
key <RALT> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ],
virtualMods= AltGr
};
include "level3(modifier_mapping)"
};
// 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> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
include "level3(modifier_mapping)"
};
// The right Ctrl key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "switch" {
key <RCTL> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
include "level3(modifier_mapping)"
};
// The Menu key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "menu_switch" {
key <MENU> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
include "level3(modifier_mapping)"
};
// 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> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
include "level3(modifier_mapping)"
};
// The right Win key (while pressed) chooses the third shift level.
// (When using this map, you should set your keyboard as pc101 or pc102
// instead of pc104 or pc105.)
partial modifier_keys
xkb_symbols "rwin_switch" {
key <RWIN> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
include "level3(modifier_mapping)"
};
// 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> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
include "level3(modifier_mapping)"
};
// The CapsLock key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "caps_switch" {
key <CAPS> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
include "level3(modifier_mapping)"
};
// The Backslash key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "bksl_switch" {
key <BKSL> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
include "level3(modifier_mapping)"
};
// The Less/Greater key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "lsgt_switch" {
key <LSGT> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
include "level3(modifier_mapping)"
};
// 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> {
type[Group1]="THREE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
};
include "level3(modifier_mapping)"
};
// 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> {
type[Group1]="THREE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
};
include "level3(modifier_mapping)"
};
// 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> {
type[Group1]="THREE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
};
include "level3(modifier_mapping)"
};
// Number key 4 chooses third shift level when pressed in isolation.
partial modifier_keys
xkb_symbols "4_switch_isolated" {
override key <AE04> {
symbols[Group1] = [ ISO_Level3_Shift ]
};
include "level3(modifier_mapping)"
};
// Number key 9 chooses third shift level when pressed in isolation.
partial modifier_keys
xkb_symbols "9_switch_isolated" {
override key <AE09> {
symbols[Group1] = [ ISO_Level3_Shift ]
};
include "level3(modifier_mapping)"
};

View File

@@ -0,0 +1,152 @@
// These partial variants assign ISO_Level5_Shift to various XKB keycodes
// so that the fifth shift level can be reached.
// The right Ctrl key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "rctrl_switch" {
key <RCTL> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift ]
};
include "level5(modifier_mapping)"
};
// The Less/Greater key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "lsgt_switch" {
key <LSGT> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift ]
};
include "level5(modifier_mapping)"
};
// The right Alt key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "ralt_switch" {
key <RALT> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift ]
};
include "level5(modifier_mapping)"
};
// The CapsLock key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "caps_switch" {
key <CAPS> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift ]
};
include "level5(modifier_mapping)"
};
// Ensure a mapping to a real modifier for LevelFive.
partial modifier_keys
xkb_symbols "modifier_mapping" {
replace key <MDSW> {
type[Group1] = "ONE_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift ]
};
modifier_map Mod3 { <MDSW> };
};
// This adds the definitions needed to create a level5-lock behaviour, using
// the real modifier NumLock as a lock indicator.
// See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK
// See also: compat/level5(level5_lock)
partial modifier_keys
xkb_symbols "lock" {
key.type[Group1] = "ONE_LEVEL";
include "level5(modifier_mapping)"
replace key <HYPR> {
vmods = NumLock,
symbols[Group1] = [ NoSymbol ],
actions[Group1] = [ SetMods(modifiers=NumLock) ]
};
modifier_map Mod2 { <HYPR> };
};
// The following modifier keys are used to switch to the third shift level
// and to set a corresponding lock, implemented as NumLock.
partial modifier_keys
xkb_symbols "lsgt_switch_lock" {
include "level5(lock)"
key <LSGT> {
type[Group1] = "EIGHT_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
};
};
partial modifier_keys
xkb_symbols "lwin_switch_lock" {
include "level5(lock)"
key <LWIN> {
type[Group1] = "EIGHT_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
};
};
partial modifier_keys
xkb_symbols "ralt_switch_lock" {
include "level5(lock)"
key <RALT> {
type[Group1] = "EIGHT_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
};
};
partial modifier_keys
xkb_symbols "rwin_switch_lock" {
include "level5(lock)"
key <RWIN> {
type[Group1] = "EIGHT_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
};
};
partial modifier_keys
xkb_symbols "lsgt_switch_lock_cancel" {
include "level5(lock)"
key <LSGT> {
type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
};
};
partial modifier_keys
xkb_symbols "lwin_switch_lock_cancel" {
include "level5(lock)"
key <LWIN> {
type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
};
};
partial modifier_keys
xkb_symbols "ralt_switch_lock_cancel" {
include "level5(lock)"
key <RALT> {
type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
};
};
partial modifier_keys
xkb_symbols "rwin_switch_lock_cancel" {
include "level5(lock)"
key <RWIN> {
type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
};
};

View File

@@ -0,0 +1,184 @@
// X Keyboard Extension file for Sinhala (Sri Lanka) (2004-04-22)
// Maintainer : Harshula Jayasuriya <harshula@gmail.com>
// Last Updated: 2011-05-25
// This is a phonetic static mapping for a standard US-English keyboard
// (QWERTY)
// http://www.nongnu.org/sinhala/doc/keymaps/sinhala-keyboard_3.html
// Repaya, Rakaransaya and Yansaya aren't inserted with A-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.
// ALT-, represents the 'JOIN' key, it requires
// two codepoints, hence it also has to be manually constructed.
// Similarly, ALT-/ 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 = ALT-a
// ZWJ = Zero Width Joiner = ALT-/
// rayanna = r
// yayanna = y
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, NoSymbol ] };
key <AD05> { [ Sinh_tha, Sinh_thha, Sinh_tta, Sinh_ttha ] };
key <AD06> { [ Sinh_ya, Sinh_al, NoSymbol, NoSymbol ] };
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, NoSymbol, NoSymbol ] };
// a - l
key <AC01> { [ Sinh_a, Sinh_aa, Sinh_al, Sinh_aa2 ] };
key <AC02> { [ Sinh_sa, Sinh_sha, Sinh_ssha, NoSymbol ] };
key <AC03> { [ Sinh_dha, Sinh_dhha, Sinh_dda, Sinh_ddha ] };
key <AC04> { [ Sinh_fa, NoSymbol, Sinh_ai2, Sinh_ai ] };
key <AC05> { [ Sinh_ga, Sinh_gha, Sinh_nga, NoSymbol ] };
key <AC06> { [ Sinh_ha, Sinh_h2, Sinh_au2, Sinh_au ] };
key <AC07> { [ Sinh_ja, Sinh_jha, Sinh_nja, NoSymbol ] };
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, NoSymbol, NoSymbol ] };
key <AB02> { [ Sinh_ndha, Sinh_ndda, NoSymbol, NoSymbol ] };
key <AB03> { [ Sinh_ca, Sinh_cha, NoSymbol, NoSymbol ] };
key <AB04> { [ Sinh_va, NoSymbol, NoSymbol, NoSymbol ] };
key <AB05> { [ Sinh_ba, Sinh_bha, NoSymbol, NoSymbol ] };
key <AB06> { [ Sinh_na, Sinh_nna, Sinh_ng, Sinh_ng2 ] };
key <AB07> { [ Sinh_ma, Sinh_mba, NoSymbol, NoSymbol ] };
key <AB08> { [ any, any, Sinh_al, NoSymbol ] };
key <AB09> { [ any, any, Sinh_kunddaliya, NoSymbol ] };
key <AB10> { [ any, any, 0x100200d, NoSymbol ] };
// Space
include "nbsp(nb2zwnj3s)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "tam_unicode" {
include "in(tam_tamilnet)"
name[Group1]= "Tamil (Sri Lanka, TamilNet '99)";
};
partial alphanumeric_keys
xkb_symbols "tam_TAB" {
include "in(tam_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)";
//
// UNSHIFTED, SHIFT, ALT
// --------------------------------------------
//
key <AB01> { [ z, VoidSymbol, VoidSymbol ] };
key <AB02> { [ x, VoidSymbol, VoidSymbol ] };
key <AB03> { [ c, ccedilla, VoidSymbol ] };
key <AB04> { [ v, VoidSymbol, VoidSymbol ] };
key <AB05> { [ b, B, VoidSymbol ] };
key <AB06> { [ n, N, ntilde ] };
key <AB07> { [ m, VoidSymbol, VoidSymbol ] };
key <AB08> { [ comma, less, UAB ] };
key <AB09> { [ period, greater, UBB ] };
key <AB10> { [ slash, question, U200C ] };
key <AC01> { [ a, aacute, adiaeresis ] };
key <AC02> { [ s, VoidSymbol, VoidSymbol ] };
key <AC03> { [ eth, ETH, VoidSymbol ] };
key <AC04> { [ thorn, f, VoidSymbol ] };
key <AC05> { [ g, G, VoidSymbol ] };
key <AC06> { [ h, VoidSymbol, VoidSymbol ] };
key <AC07> { [ j, ccedilla, VoidSymbol ] };
key <AC08> { [ k, VoidSymbol, VoidSymbol ] };
key <AC09> { [ l, L, ocircumflex ] };
key <AC10> { [ semicolon, colon, VoidSymbol ] };
key <AC11> { [ apostrophe, quotedbl, VoidSymbol ] };
key <AD01> { [ d, D, q ] };
key <AD02> { [ ae, acute, VoidSymbol ] };
key <AD03> { [ e, eacute, ediaeresis ] };
key <AD04> { [ r, ucircumflex, VoidSymbol ] };
key <AD05> { [ t, VoidSymbol, VoidSymbol ] };
key <AD06> { [ y, VoidSymbol, VoidSymbol ] };
key <AD07> { [ u, uacute, udiaeresis ] };
key <AD08> { [ i, iacute, idiaeresis ] };
key <AD09> { [ o, oacute, odiaeresis ] };
key <AD10> { [ p, VoidSymbol, VoidSymbol ] };
key <AD11> { [ bracketleft, braceleft, VoidSymbol ] };
key <AD12> { [ bracketright, braceright, VoidSymbol ] };
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, UB0 ] };
key <AE06> { [ 6, asciicircum, onequarter ] };
key <AE07> { [ 7, ampersand, onehalf ] };
key <AE08> { [ 8, asterisk, threequarters ] };
key <AE09> { [ 9, parenleft, VoidSymbol ] };
key <AE10> { [ 0, parenright, VoidSymbol ] };
key <AE11> { [ minus, underscore, U2014 ] };
key <AE12> { [ equal, plus, VoidSymbol ] };
key <BKSL> { [ backslash, bar, VoidSymbol ] };
key <SPCE> { [ space, nobreakspace, VoidSymbol ] };
key <TLDE> { [ grave, asciitilde, VoidSymbol ] };
include "level3(alt_switch)"
};

View File

@@ -0,0 +1,417 @@
// Separate keymaps merged into one file by Nerijus Baliūnas, 2002
// Lithuanian Numeric layout - Lithuanian letters on the numeric row
// based on Lithuanian keyboard map by Ričardas Čepas <rch@richard.eu.org>
// 3rd and 4th levels added by Mantas Kriaučiūnas <mantas@akl.lt>, 2004
// Minor modifications and cleanup by Rimas Kudelis <rq@akl.lt>, 2010
//
// If you want two layouts, use:
// Option "XkbLayout" "lt,lt(us)"
default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
include "latin"
include "eurosign(e)"
include "level3(ralt_switch)"
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, NoSymbol, sterling ]};
key <LSGT> {[ endash, EuroSign ]};
};
// Similar to the above, but uses 3rd and 4th levels in the numeric row
// for Lithuanian letters
partial alphanumeric_keys modifier_keys
xkb_symbols "us" {
include "latin"
include "eurosign(e)"
include "level3(ralt_switch)"
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, NoSymbol, sterling ]};
key <LSGT> {[ endash, EuroSign ]};
};
// Lithuanian keymap LST 1582:2000
// The standard is 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"
include "eurosign(e)"
include "nbsp(level3)"
include "kpdl(comma)"
include "level3(ralt_switch)"
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 <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 ]};
};
// Lithuanian keymap LST 1205-92
// This standard was made deprecated by LST 1582:2000 above.
// This keyboard is also know as IBM layout.
// We follow the map shown at: http://www.registrucentras.lt/litwin/kbdlta.gif
// and info from Edis Tamošauskas <linas_lietus@yahoo.com>
//
// Made by Piter PUNK <piterpk@terra.com.br>
// Minor modifications and cleanup by Rimas Kudelis, 2010
partial alphanumeric_keys modifier_keys
xkb_symbols "ibm" {
include "latin"
include "eurosign(e)"
include "nbsp(level3)"
include "level3(ralt_switch)"
name[Group1]="Lithuanian (IBM LST 1205-92)";
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 ]};
key <AE10> {[ parenright, 0 ]};
key <AE11> {[ underscore, minus, endash ]};
key <AE12> {[ plus, equal ]};
key <AD01> {[ aogonek, Aogonek, q, Q ]};
key <AD02> {[ zcaron, Zcaron, w, W ]};
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 <AB02> {[ umacron, Umacron, x, X ]};
key <AB08> {[ ccaron, Ccaron, comma, less ]};
key <AB09> {[ scaron, Scaron, period, greater ]};
key <AB10> {[ eogonek, Eogonek, slash, question ]};
};
// 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" {
include "capslock(backspace)"
include "level3(ralt_switch)"
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 ]};
};
partial alphanumeric_keys modifier_keys
xkb_symbols "lekpa" {
include "capslock(backspace)"
include "level3(ralt_switch)"
name[Group1]="Lithuanian (LEKPa)";
key <TLDE> {[ grave, asciitilde, acute ]};
key <AE01> {[ slash, quotedbl, bar ]};
key <AE02> {[ backslash, at, section ]};
key <AE03> {[ period, braceleft, numbersign ]};
key <AE04> {[ comma, braceright, sterling ]};
key <AE05> {[ f, F, ampersand ]};
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, semicolon, 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 <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 ]};
};
// Samogitian (žemaiťiu/žemaičių) layout based on Lithuanian standard layout.
// Long vowels are made by composition. It means after pressing vowel press grave accent (`).
// This layout also supports special letters like ëůȧťď or Latvian ģŗļķ. These can be accessed by similar letter with holding AltGr.
// Euro sign € is added on top e. Accessed by holding AltGr.
// To enable layout use:
// Option "XkbLayout" "lt(sgs)"
//
// 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, U00EB, U00CB ]};
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 changes 2020/12/24
partial alphanumeric_keys modifier_keys
xkb_symbols "ratise" {
include "level3(ralt_switch)"
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, 0x1002030 ] }; // PER MILLE SIGN
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 <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 <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, 0x10000B7 ] }; // MIDDLE DOT
key <AB10> { [ ccaron, Ccaron, plus, plusminus ] };
key <BKSL> { [ z, Z, degree, registered ] };
key <LSGT> { [ minus, endash, 0x1000307, 0x1002011 ] }; // COMBINING DOT ABOVE, NON-BREAKING HYPHEN
key <SPCE> { [ space, space, space, nobreakspace ] };
// key <CAPS> { [ minus, endash, 0x1000307, 0x1002011 ] }; // (Optional) // COMBINING DOT ABOVE, NON-BREAKING HYPHEN
key <TAB> { [ Tab,ISO_Left_Tab, Multi_key ] }; // Tab as Multi_key (Compose)
};
// 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)"
};

View File

@@ -0,0 +1,530 @@
// Latvian keymap version 1.3
// Copyright (C) Dmitry Golubev <lastguru@mail.ru>, 2003-2004
//
// Reworked to get rid of dead_keys (use of which in this case
// is a dirty hack). It is now not dependent on locale settings
// and GTK_IM_MODULES in Gnome. The map is also providing some of
// ISO9995-3 alternate characters. Note that this version works
// correctly under Gnome 2.6. This is to be put into symbols/
// directory, or somewhere else.
//
// 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.
// Modified by Aldis Berjoza <aldis@bsdroot.lv>, 12 april 2011
// Changes:
// * Added Latvian Ergonomic, Latvian Adapted and Latvian Modern variants
// Author of this work is Valdis Vītoliņš
// http://odo.lv/LatvianKeyboard
// http://odo.lv/Recipes/LatvianKeyboard#HErgonomiskC481stastatC5ABrasuzlikC5A1anauzLinuxdatora%22
// * Added guillemotleft, leftdoublequotemark, guillemotright,
// rightdoublequotemark to Latvian modern layout for AD11 and AD12
// * Added US-Dvorac compatible Latvian layouts
// * Added programmer US-Dvorac compatible Latvian layouts
// * Added US-Colemak compatible Latvian layouts
// * Reformatted layouts
//============================================================================
// Latvian QWERTY layout
// http://en.wikipedia.org/wiki/QWERTY
//
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> };
};
//============================================================================
// Latvian Adapted keyboard layout
// http://odo.lv/xwiki/bin/download/Main/LatvianKeyboard/Adapted.png
//
// http://odo.lv/LatvianKeyboard
// http://odo.lv/LatvianKeyboard5
//
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ņš
// http://odo.lv/xwiki/bin/download/Main/LatvianKeyboard/Ergonomic.png
//
// http://odo.lv/LatvianKeyboard
// http://odo.lv/LatvianKeyboard5
//
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ņš
// http://odo.lv/xwiki/bin/download/Recipes/LatvianKeyboard/Modern.png
//
// http://odo.lv/LatvianKeyboard
// http://odo.lv/LatvianKeyboard5
//
partial alphanumeric_keys modifier_keys
xkb_symbols "modern" {
name[Group1]= "Latvian (modern)";
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)"
};
// EXTRAS:
//============================================================================
// US Dvorak compatible Latvian layout
// http://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 { <AR11> };
};
//============================================================================
// US Dvorak programmers layput compatible Latvian layout
// http://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
// http://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)"
};

View File

@@ -0,0 +1,352 @@
// 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, 0x10000a4] };
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 <LatA> { [ 0x1002d30 ] };
key <LatZ> { [ 0x1002d63, 0x1002d65 ] };
key <LatE> { [ 0x1002d3b, NoSymbol,0x10020ac ] };
key <LatR> { [ 0x1002d54, 0x1002d55 ] };
key <LatT> { [ 0x1002d5c, 0x1002d5f ] };
key <LatY> { [ 0x1002d62 ] };
key <LatU> { [ 0x1002d53 ] };
key <LatI> { [ 0x1002d49 ] };
key <LatO> { [ 0x1002d44 ] };
key <LatP> { [ 0x1002d43 ] };
key <LatQ> { [ 0x1002d47 ] };
key <LatS> { [ 0x1002d59, 0x1002d5a ] };
key <LatD> { [ 0x1002d37, 0x1002d39 ] };
key <LatF> { [ 0x1002d3c ] };
key <LatG> { [ 0x1002d33 ] };
key <LatH> { [ 0x1002d40 ] };
key <LatJ> { [ 0x1002d4a ] };
key <LatK> { [ 0x1002d3d ] };
key <LatL> { [ 0x1002d4d ] };
key <LatM> { [ 0x1002d4e ] };
key <LatW> { [ 0x1002d61,0x1002d6f ] };
key <LatX> { [ 0x1002d45 ] };
key <LatC> { [ 0x1002d5b ] };
key <LatV> { [ 0x1002d56 ] };
key <LatB> { [ 0x1002d31 ] };
key <LatN> { [ 0x1002d4f ] };
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, 0x10000a4] };
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 <LatA> { [ 0x1002d30 ] };
key <LatZ> { [ 0x1002d63, 0x1002d65 ] };
key <LatE> { [ 0x1002d3b, NoSymbol,0x10020ac ] };
key <LatR> { [ 0x1002d54, 0x1002d55 ] };
key <LatT> { [ 0x1002d5c, 0x1002d5f ] };
key <LatY> { [ 0x1002d62 ] };
key <LatU> { [ 0x1002d53 ] };
key <LatI> { [ 0x1002d49 ] };
key <LatO> { [ 0x1002d44 ] };
key <LatP> { [ 0x1002d43 ] };
key <LatQ> { [ 0x1002d47 ] };
key <LatS> { [ 0x1002d59, 0x1002d5a ] };
key <LatD> { [ 0x1002d37, 0x1002d39 ] };
key <LatF> { [ 0x1002d3c ] };
key <LatG> { [ 0x1002d33 ] };
key <LatH> { [ 0x1002d40 ] };
key <LatJ> { [ 0x1002d4a ] };
key <LatK> { [ 0x1002d3d ] };
key <LatL> { [ 0x1002d4d ] };
key <LatM> { [ 0x1002d4e ] };
key <LatW> { [ 0x1002d61 ] };
key <LatX> { [ 0x1002d45 ] };
key <LatC> { [ 0x1002d5b ] };
key <LatV> { [ 0x1002d56 ] };
key <LatB> { [ 0x1002d31 ] };
key <LatN> { [ 0x1002d4f ] };
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 <LatA> { [ 0x1002d30 ] };
key <LatZ> { [ 0x1002d63, 0x1002d65, 0x1002d64 ] };
key <LatE> { [ 0x1002d3b ] };
key <LatR> { [ 0x1002d54, 0x1002d55 ] };
key <LatT> { [ 0x1002d5c, 0x1002d5f, 0x1002d5d ] };
key <LatY> { [ 0x1002d62 ] };
key <LatU> { [ 0x1002d53 ] };
key <LatI> { [ 0x1002d49 ] };
key <LatO> { [ 0x1002d44 ] };
key <LatP> { [ 0x1002d43, 0x1002d52 ] };
key <LatQ> { [ 0x1002d47, 0x1002d48 ] };
key <LatS> { [ 0x1002d59, 0x1002d5a ] };
key <LatD> { [ 0x1002d37, 0x1002d39, 0x1002d38, 0x1002d3a ] };
key <LatF> { [ 0x1002d3c ] };
key <LatG> { [ 0x1002d33, 0x1002d36, 0x1002d34, 0x1002d35 ] };
key <LatH> { [ 0x1002d40, 0x1002d42, 0x1002d41 ] };
key <LatJ> { [ 0x1002d4a, 0x1002d4c, 0x1002d4b ] };
key <LatK> { [ 0x1002d3d, 0x1002d3e, 0x1002d3f ] };
key <LatL> { [ 0x1002d4d ] };
key <LatM> { [ 0x1002d4e ] };
key <LatW> { [ 0x1002d61, 0x1002d6f, 0x1002d60 ] };
key <LatX> { [ 0x1002d45, 0x1002d46 ] };
key <LatC> { [ 0x1002d5b, 0x1002d5e ] };
key <LatV> { [ 0x1002d56, 0x1002d57, 0x1002d58 ] };
key <LatB> { [ 0x1002d31, 0x1002d31, 0x1002d32 ] };
key <LatN> { [ 0x1002d4f, 0x1002d50, 0x1002d51 ] };
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,141 @@
//
// 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 ] };
};

View File

@@ -0,0 +1,97 @@
//
// 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, leftcaret ] };
// not displayed here
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, Ooblique ] };
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, Ooblique ] };
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, Ooblique ]};
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,108 @@
// 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 <ESC> { [ Escape ] };
key <TLDE> { [ at, numbersign, periodcentered, Ydiaeresis ] };
key <ENTR> { [ KP_Enter ] };
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 <BKSP> { [ BackSpace, VoidSymbol, Delete, VoidSymbol ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
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 <CAPS> { [ Caps_Lock ] };
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, VoidSymbol, periodcentered ] };
key <AC05> { [ g, G, VoidSymbol, VoidSymbol ] }; // MISSING: ligature 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, 0x1002030 ] };
key <BKSL> { [ dead_grave, sterling, at, numbersign ] };
key <RTRN> { [ Return ] };
key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] };
key <AB01> { [ w, W, guilsinglleft, guilsinglright ] }; // MISSING: half-guillemot (single angle bracket)
key <AB02> { [ x, X, VoidSymbol, VoidSymbol ] }; // CHECK: similarequal; MISSING: extra-slanted slash
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, U2030, 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, Ooblique ] };
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,35 @@
// 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 ] };
};
partial alphanumeric_keys
xkb_symbols "alujiskeys" {
// On JIS USB keyboard, EISU and KANA replace Hangul and Hanja
// see keycodes macintosh(jisevdev)
replace key <HJCV> { [ Hiragana_Katakana ] };
replace key <HNGL> { [ Eisu_toggle ] };
};

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)"
};

View File

@@ -0,0 +1,48 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple en_US
// keyboard and a very simple Norwegian keyboard.
include "latin"
name[Group1]= "Norway - Mac";
key <TLDE> { [ bar, section ] };
key <AE02> { [ 2, quotedbl, at, oneeighth ] };
key <AE03> { [ 3, numbersign, sterling, sterling ] };
key <AE04> { [ 4, currency, dollar, dollar ] };
key <AE06> { [ 6, ampersand ] };
key <AE07> { [ 7, slash, bar, backslash ] };
key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
key <AE09> { [ 9, parenright, bracketright, braceright ] };
key <AE10> { [ 0, equal ] };
key <AE11> { [ plus, question ] };
key <AE12> { [ dead_grave, dead_acute, acute, dead_ogonek ] };
key <AB08> { [ comma, semicolon ] };
key <AB09> { [ period, colon ] };
key <AB10> { [ minus, underscore ] };
key <AC10> { [ oslash, Ooblique, odiaeresis, Odiaeresis ] };
key <AC11> { [ ae, AE ] };
key <AD11> { [ aring, Aring ] };
key <AD12> { [ diaeresis, asciicircum, asciitilde, dead_macron ] };
key <BKSL> { [ at, asterisk ] };
key <LSGT> { [ less, greater ] };
include "eurosign(e)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
// Modifies the basic Norwegian layout to no dead keys
include "macintosh_vndr/no(basic)"
name[Group1]= "Norway - Mac, no dead keys";
key <AE12> { [ grave, acute, acute, ogonek ] };
key <AD12> { [ diaeresis, asciicircum, asciitilde, macron ] };
};

View File

@@ -0,0 +1,60 @@
// mac version from Ricardo Cabral <bfe00991@mail.telepac.pt>
default partial alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple en_US
// keyboard and a very simple Portuguese keyboard.
include "latin"
name[Group1]= "Portugal - Mac";
key <LSGT> { [ less, greater, bar, brokenbar ] };
key <AE02> { [ 2, quotedbl, at, oneeighth ] };
key <AE03> { [ 3, numbersign, sterling, sterling ] };
key <AE04> { [ 4, dollar, section, dollar ] };
key <AE06> { [ 6, ampersand ] };
key <AE07> { [ 7, slash ] };
key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
key <AE09> { [ 9, parenright, bracketright, braceright ] };
key <AE10> { [ 0, equal ] };
key <AE11> { [ apostrophe, question ] };
key <AE12> { [ plus, asterisk, dead_diaeresis ] };
key <AB08> { [ comma, semicolon ] };
key <AB09> { [ period, colon ] };
key <AB10> { [ minus, underscore ] };
key <AC10> { [ ccedilla, Ccedilla ] };
key <AC11> { [ dead_tilde, dead_circumflex ] };
key <AC12> { [ backslash, bar ] };
key <AD11> { [ masculine, ordfeminine ] };
key <AD12> { [ dead_acute, dead_grave ] };
include "eurosign(e)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "Sundeadkeys" {
include "macintosh_vndr/pt(basic)" // for consistent naming
name[Group1]= "Portugal - Mac, Sun dead keys";
key <AE12> {[ plus, asterisk, dead_diaeresis, dead_diaeresis ]};
key <AC11> {[ dead_tilde, dead_circumflex ]};
key <AD12> {[ dead_acute, dead_grave ]};
};
partial alphanumeric_keys
xkb_symbols "sundeadkeys" {
include "macintosh_vndr/pt(Sundeadkeys)" // for consistent naming
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "macintosh_vndr/pt(basic)" // for consistent naming
name[Group1]= "Portugal - Mac, no dead keys";
key <AE12> { [ plus, asterisk, quotedbl, quotedbl ] };
key <AC11> { [ asciitilde, asciicircum ] };
key <AD12> { [ acute, grave ] };
};

View File

@@ -0,0 +1,44 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple en_US
// keyboard and a very simple Swedish(Sweden) keyboard.
include "latin"
name[Group1]= "Sweden - Mac";
key <TLDE> { [ section, degree ] };
key <AE01> { [ 1, exclam, copyright, exclamdown ] };
key <AE02> { [ 2, quotedbl, at, oneeighth ] };
key <AE03> { [ 3, numbersign, sterling, yen ] };
key <AE04> { [ 4, currency, dollar, cent ] };
key <AE06> { [ 6, ampersand ] };
key <AE07> { [ 7, slash, bar, backslash ] };
key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
key <AE09> { [ 9, parenright, bracketright, braceright ] };
key <AB08> { [ comma, semicolon ] };
key <AE10> { [ 0, equal ] };
key <AE11> { [ plus, question ] };
key <AE12> { [ acute, grave ] };
key <AB09> { [ period, colon ] };
key <AB10> { [ minus, underscore ] };
key <AC10> { [ odiaeresis, Odiaeresis, oslash, Ooblique ] };
key <AC11> { [ adiaeresis, Adiaeresis, ae, AE ] };
key <AD11> { [ aring, Aring ] };
key <AD12> { [ diaeresis, asciicircum, asciitilde ] };
key <BKSL> { [ apostrophe, asterisk, at ] };
key <LSGT> { [ less, greater, bar, brokenbar ] };
include "kpdl(comma)"
include "eurosign(e)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "macintosh_vndr/se(basic)" // for consistent naming
name[Group1]= "Sweden - Mac, no dead keys";
};

View File

@@ -0,0 +1,145 @@
// symbols definition for a Macintosh "Extended" keyboard
default xkb_symbols "extended" {
name[Group1]= "USA";
key <ESC> { [ Escape ] };
key <TLDE> { [ 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 <BKSL> { [ backslash, bar ] };
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 <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 <SPCE> { [ space ] };
include "eurosign(e)"
include "keypad(overlay)"
key <KPEQ> { [ equal ] };
};
hidden
xkb_symbols "oldmac" {
include "macintosh_vndr/us(extended)"
// Begin "Function" section
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> { [ Print ] };
key <FK14> { [ Scroll_Lock ] };
key <FK15> { [ Pause ] };
// End "Function" section
// Begin "Editing" section
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 ] };
// End "Editing" section
key <BKSP> { [ BackSpace ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <RTRN> { [ Return ] };
key <CAPS> { [ Caps_Lock ] };
key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
// Begin "Modifier" section
key <LFSH> { [ Shift_L ] };
key <RTSH> { [ Shift_R ] };
key <LCTL> { [ Control_L ] };
key <RCTL> { [ Control_R ] };
key <LALT> { [ Alt_L, Meta_L ] };
key <RALT> { [ Alt_R, Meta_R ] };
key <LWIN> { [ Super_L ] };
key <RWIN> { [ Super_R ] };
// End "Modifier" section
// begin modifier mappings
modifier_map Shift { Shift_L, Shift_R };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L, Control_R };
modifier_map Mod2 { Num_Lock };
// Fake keys for virtual<->real modifiers mapping
key <LVL3> { [ ISO_Level3_Shift ] };
key <MDSW> { [ Mode_switch ] };
modifier_map Mod5 { <LVL3>, <MDSW> };
key <ALT> { [ NoSymbol, Alt_L ] };
modifier_map Mod1 { <ALT>, <LALT> };
key <META> { [ NoSymbol, Meta_L ] };
modifier_map Mod1 { <META> };
key <SUPR> { [ NoSymbol, Super_L ] };
modifier_map Mod4 { <SUPR> };
key <HYPR> { [ NoSymbol, Hyper_L ] };
modifier_map Mod4 { <HYPR> };
// end modifier mappings
};

View File

@@ -0,0 +1,22 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
// Adds the macrons needed for the Maori language to
// a simple US keyboard layout.
include "latin"
name[Group1]="Maori";
key <AC01> { [ a, A, amacron, Amacron ] };
key <AD03> { [ e, E, emacron, Emacron ] };
key <AD08> { [ i, I, imacron, Imacron ] };
key <AD09> { [ o, O, omacron, Omacron ] };
key <AD07> { [ u, U, umacron, Umacron ] };
key <RALT> { type[Group1]="TWO_LEVEL",
[ ISO_Level3_Shift, Multi_key ] };
modifier_map Mod5 { <RALT> };
};

View File

@@ -0,0 +1,90 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
include "ro"
name[Group1]="Moldavian";
};
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ~ │ ! │ " │ # │ ; │ % │ : │ ? │ * │ ( ̣ │ ) │ -- │ + ┃ ⌫ Back ┃
// │ ` │ 1 │ 2 @ │ 3 │ 4 $ │ 5 € │ 6 ^ │ 7 & │ 8 │ 9 │ 0 │ - │ = ┃ space ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ Ţ Q │ Ê W │ E │ R │ T │ Y │ U │ İ │ O │ P │ Ö { │ Ü } ┃ Enter ┃
// ┃Tab ↹ ┃ ţ q │ ê w │ e │ r │ t │ y │ u │ i │ o │ p │ ö [ │ ü ] ┃ ⏎ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ A │ S │ D │ F │ G │ H │ J │ K │ L │Ş │I │ / ┃ ┃
// ┃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 ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
// A, Ä, B, C, Ç, D, E, Ê, F, G, H, I, İ, J, K, L, M, N, O, Ö, P, R, S, Ş, T, Ţ, U, Ü, V, Y, Z.
partial alphanumeric_keys
xkb_symbols "gag" {
include "us(basic)"
name[Group1]="Moldavian (Gagauz)";
key <TLDE> { [ grave, asciitilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, quotedbl, at ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, semicolon, dollar ] };
key <AE05> { [ 5, percent, EuroSign, cent ] };
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 <AD01> { [ tcedilla, Tcedilla, q, Q ] };
key <AD02> { [ ecircumflex, Ecircumflex, 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, Iabovedot, i, I ] };
key <AD09> { [ o, O ] };
key <AD10> { [ p, P ] };
key <AD11> { [ odiaeresis, Odiaeresis, bracketleft, braceleft ] };
key <AD12> { [ udiaeresis, Udiaeresis, 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> { [ scedilla, Scedilla ] };
key <AC11> { [ idotless, I, apostrophe ] };
key <AB01> { [ z, Z ] };
key <AB02> { [ ccedilla, Ccedilla, x, X ] };
key <AB03> { [ c, C ] };
key <AB04> { [ v, V ] };
key <AB05> { [ b, B ] };
key <AB06> { [ n, N ] };
key <AB07> { [ m, M ] };
key <AB08> { [ adiaeresis, Adiaeresis ] };
key <AB09> { [ comma, less ] };
key <AB10> { [ period, greater, slash ] };
key <BKSL> { [ backslash, bar ] };
include "level3(ralt_switch)"
};

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