summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaurizio M. Gavioli <mmg@vistamaresoft.com>2019-08-05 20:53:36 +0200
committerServey Udaltsov <sergey.udaltsov@gmail.com>2019-08-09 22:12:03 +0000
commit3ccf21905744585e694cd7754eb12c6ba17eebce (patch)
tree046a4530e973b55bb13450ce1dc67726c172d8af
parent7dd2c92852cbb6098cc8c1a3acb10888466b277a (diff)
Kbd layouts for Mongolian trad. writing (Bichig): Option 1 - China
This patch adds the 7 keyboard layouts included in the Chinese standard GB/T 28038-2011 to the China (`cn`) symbol file. The source standard is followed literally, with two exceptions: 1. When the source left the level 2 of a key empty, I have duplicated the assignment for level 1, so that a 'stray SHIFT' key kept pressed does no harm. 2. When the standard indicated (mostly for punctuation signs) a vertical presentation form (UFE30 - UFE4F), I replaced with the original (horizontal) decomposition, as presentation forms are the job of the font stack rather than of the keyboard layout and as Mongolian, even in its traditional script, is nowadays also written horizontally and not only vertically. This patch inserts the new layouts in the symbol file for China (`cn`), as Mongolian traditionally writing is mostly used in Chinese Inner Mongolia. Another, alternative, patch is provided inserting the new layouts in the Mongolian (`mn`), symbol file on a linguistic, more than geographic, base.
-rw-r--r--rules/base.xml65
-rw-r--r--symbols/cn462
2 files changed, 527 insertions, 0 deletions
diff --git a/rules/base.xml b/rules/base.xml
index 6398ef08..03d65bd8 100644
--- a/rules/base.xml
+++ b/rules/base.xml
@@ -2719,6 +2719,71 @@
</languageList>
</configItem>
<variantList>
+
+ <variant>
+ <configItem>
+ <name>mon_trad</name>
+ <description>Mongolian (Bichig)</description>
+ <languageList>
+ <iso639Id>mvf</iso639Id>
+ </languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mon_trad_todo</name>
+ <description>Mongolian Todo</description>
+ <languageList>
+ <iso639Id>mvf</iso639Id>
+ </languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mon_trad_xibe</name>
+ <description>Mongolian Xibe</description>
+ <languageList>
+ <iso639Id>sjo</iso639Id>
+ </languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mon_trad_manchu</name>
+ <description>Mongolian Manchu</description>
+ <languageList>
+ <iso639Id>mnc</iso639Id>
+ </languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mon_trad_galik</name>
+ <description>Mongolian Galik</description>
+ <languageList>
+ <iso639Id>mvf</iso639Id>
+ </languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mon_todo_galik</name>
+ <description>Mongolian Todo Galik</description>
+ <languageList>
+ <iso639Id>mvf</iso639Id>
+ </languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mon_manchu_galik</name>
+ <description>Mongolian Manchu Galik</description>
+ <languageList>
+ <iso639Id>mnc</iso639Id>
+ </languageList>
+ </configItem>
+ </variant>
+
<variant>
<configItem>
<name>tib</name>
diff --git a/symbols/cn b/symbols/cn
index 45a3fee7..888b9ed5 100644
--- a/symbols/cn
+++ b/symbols/cn
@@ -249,3 +249,465 @@ xkb_symbols "altgr-pinyin" {
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 ] }; // /: ---
+};