commit 1f0e742d4c84d0c7d408a8afaea86efc292da366
Author: Simon Brooke <simon@journeyman.cc>
Date:   Sat Jun 4 09:48:23 2022 +0100

    Initial commit. Nothing works yet.

diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..12c3825
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,172 @@
+# Creative Commons Attribution-ShareAlike 4.0 International
+
+Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible.
+
+### Using Creative Commons Public Licenses
+
+Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses.
+
+* __Considerations for licensors:__ Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. [More considerations for licensors](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensors).
+
+* __Considerations for the public:__ By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. [More considerations for the public](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensees).
+
+## Creative Commons Attribution-ShareAlike 4.0 International Public License
+
+By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
+
+### Section 1 – Definitions.
+
+a. __Adapted Material__ means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
+
+b. __Adapter's License__ means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
+
+c. __BY-SA Compatible License__ means a license listed at [creativecommons.org/compatiblelicenses](http://creativecommons.org/compatiblelicenses), approved by Creative Commons as essentially the equivalent of this Public License.
+
+d. __Copyright and Similar Rights__ means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
+
+e. __Effective Technological Measures__ means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
+
+f. __Exceptions and Limitations__ means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
+
+g. __License Elements__ means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike.
+
+h. __Licensed Material__ means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
+
+i. __Licensed Rights__ means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
+
+j. __Licensor__ means the individual(s) or entity(ies) granting rights under this Public License.
+
+k. __Share__ means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
+
+l. __Sui Generis Database Rights__ means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
+
+m. __You__ means the individual or entity exercising the Licensed Rights under this Public License. __Your__ has a corresponding meaning.
+
+### Section 2 – Scope.
+
+a. ___License grant.___
+
+   1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
+
+       A. reproduce and Share the Licensed Material, in whole or in part; and
+
+       B. produce, reproduce, and Share Adapted Material.
+
+   2. __Exceptions and Limitations.__ For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
+
+   3. __Term.__ The term of this Public License is specified in Section 6(a).
+
+   4. __Media and formats; technical modifications allowed.__ The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
+
+   5. __Downstream recipients.__
+
+       A. __Offer from the Licensor – Licensed Material.__ Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
+
+       B. __Additional offer from the Licensor – Adapted Material.__ Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply.
+
+       C. __No downstream restrictions.__ You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
+
+   6. __No endorsement.__ Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
+
+b. ___Other rights.___
+
+   1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
+
+   2. Patent and trademark rights are not licensed under this Public License.
+
+   3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
+
+### Section 3 – License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the following conditions.
+
+a. ___Attribution.___
+
+   1. If You Share the Licensed Material (including in modified form), You must:
+
+       A. retain the following if it is supplied by the Licensor with the Licensed Material:
+
+         i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
+
+         ii. a copyright notice;
+
+         iii. a notice that refers to this Public License;
+
+         iv. a notice that refers to the disclaimer of warranties;
+
+         v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
+
+       B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
+
+       C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
+
+   2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
+
+   3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
+
+b. ___ShareAlike.___
+
+In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply.
+
+1. The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License.
+
+2. You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material.
+
+3. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply.
+
+### Section 4 – Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
+
+a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
+
+b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and
+
+c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
+
+### Section 5 – Disclaimer of Warranties and Limitation of Liability.
+
+a. __Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.__
+
+b. __To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.__
+
+c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
+
+### Section 6 – Term and Termination.
+
+a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
+
+b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
+
+   1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
+
+   2. upon express reinstatement by the Licensor.
+
+   For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
+
+c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
+
+d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
+
+### Section 7 – Other Terms and Conditions.
+
+a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
+
+b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
+
+### Section 8 – Interpretation.
+
+a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
+
+b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
+
+c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
+
+d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
+
+> Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” The text of the Creative Commons public licenses is dedicated to the public domain under the [CC0 Public Domain Dedication](https://creativecommons.org/publicdomain/zero/1.0/legalcode). Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at [creativecommons.org/policies](http://creativecommons.org/policies), Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.
+>
+> Creative Commons may be contacted at creativecommons.org.
+
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c116a39
--- /dev/null
+++ b/README.md
@@ -0,0 +1,69 @@
+# scotkb
+
+An attempt to make a standard keyboard layout for Scots, with at least Yogh 
+and possibly Eth.
+
+![Intended layout](img/scots-keyboard.png)
+
+## Rationale
+
+Scots uses a letter, yogh (&yogh;, &Yogh;), which is not present in the modern 
+English alphabet. Since the late medieval period, printers in Scotland tended 
+to buy their type from typefounders in England, who did not include &yogh;.
+Consequently, it has become common practice to use 'z' in
+place of &yogh;, which leads to confusion in the pronunciation of many words
+and, in particular, in names such as
+
+* Cocken&yogh;ie
+* Dal&yogh;iel
+* Men&yogh;ies
+* &Yogh;etland
+
+If you think that native Scots speakers pronounce these words strangely, this 
+is probably why.
+
+As modern computers are perfectly capable of displaying the &yogh; glyph, it 
+seems sensible to make it convenient for Scots users to have a keyboard layout
+which makes it convenient to type it.
+
+Additionally, this keyboard layout contains eth (&eth;, &Eth;), since medieval
+Scots used &eth; and its use also affects the pronunciation of some names. 
+Since &eth; is not (to my knowledge) used in modern Scots, the final layout may
+not include this letter.
+
+## Awful warning
+
+I do not fully know what I'm doing, and am mainly working by hacking Icelandic
+keyboard layouts. Consequently at this moment the layout still contains some
+glyphs which are used in Icelandic but not in Scots, and the layout of 
+punctuation keys is not optimised for Scots use.
+
+This is experimental, unstable and may not work.
+
+## Unix
+
+The files provided in the `unix` subdirectory are adapted from Ubuntu 20.04 LTS;
+they should be fairly similar to equivalent files in other Un*x/Linux 
+distributions, but YMMV. 
+
+In particular I should provide scripts to modify 
+
+* `base.lst` 
+* `base.xml`
+* `evdev.lst` 
+* `evdev.xml`
+
+but I have not yet written those.
+
+## Macintosh
+
+Nothing yet, expected soon.
+
+## Windows
+
+Nothing yet, expected soon.
+
+## License and copyright
+
+Copyright &copy; Simon Brooke 2022. Licensed under 
+[Creative Commons Attribution/Share Alike](https://creativecommons.org/licenses/by-sa/4.0/) terms.
diff --git a/img/scots-keyboard.png b/img/scots-keyboard.png
new file mode 100644
index 0000000..389b382
Binary files /dev/null and b/img/scots-keyboard.png differ
diff --git a/img/scots-keyboard.xcf b/img/scots-keyboard.xcf
new file mode 100644
index 0000000..526fdd1
Binary files /dev/null and b/img/scots-keyboard.xcf differ
diff --git a/unix/usr/share/X11/xkb/rules/base.lst b/unix/usr/share/X11/xkb/rules/base.lst
new file mode 100644
index 0000000..7dd1b94
--- /dev/null
+++ b/unix/usr/share/X11/xkb/rules/base.lst
@@ -0,0 +1,975 @@
+! model
+  pc101           Generic 101-key PC
+  pc102           Generic 102-key PC (intl.)
+  pc104           Generic 104-key PC
+  pc105           Generic 105-key PC (intl.)
+  dell101         Dell 101-key PC
+  latitude        Dell Latitude laptop
+  dellm65         Dell Precision M65 laptop
+  everex          Everex STEPnote
+  flexpro         Keytronic FlexPro
+  microsoft       Microsoft Natural
+  omnikey101      Northgate OmniKey 101
+  winbook         Winbook Model XP5
+  pc98            PC-98
+  a4techKB21      A4Tech KB-21
+  a4techKBS8      A4Tech KBS-8
+  a4_rfkb23       A4Tech Wireless Desktop RFKB-23
+  airkey          Acer AirKey V
+  azonaRF2300     Azona RF2300 wireless Internet
+  scorpius        Advance Scorpius KI
+  brother         Brother Internet
+  btc5113rf       BTC 5113RF Multimedia
+  btc5126t        BTC 5126T
+  btc6301urf      BTC 6301URF
+  btc9000         BTC 9000
+  btc9000a        BTC 9000A
+  btc9001ah       BTC 9001AH
+  btc5090         BTC 5090
+  btc9019u        BTC 9019U
+  btc9116u        BTC 9116U Mini Wireless Internet and Gaming
+  cherryblue      Cherry Blue Line CyBo@rd
+  cherryblueb     Cherry CyMotion Master XPress
+  cherrybluea     Cherry Blue Line CyBo@rd (alt.)
+  cherrycyboard   Cherry CyBo@rd USB-Hub
+  cherrycmexpert  Cherry CyMotion Expert
+  cherrybunlim    Cherry B.UNLIMITED
+  chicony         Chicony Internet
+  chicony0108     Chicony KU-0108
+  chicony0420     Chicony KU-0420
+  chicony9885     Chicony KB-9885
+  compaqeak8      Compaq Easy Access
+  compaqik7       Compaq Internet (7 keys)
+  compaqik13      Compaq Internet (13 keys)
+  compaqik18      Compaq Internet (18 keys)
+  cymotionlinux   Cherry CyMotion Master Linux
+  armada          Compaq Armada laptop
+  presario        Compaq Presario laptop
+  ipaq            Compaq iPaq
+  dell            Dell
+  dellsk8125      Dell SK-8125
+  dellsk8135      Dell SK-8135
+  dellusbmm       Dell USB Multimedia
+  inspiron        Dell Inspiron 6000/8000 laptop
+  precision_m     Dell Precision M laptop
+  dexxa           Dexxa Wireless Desktop
+  diamond         Diamond 9801/9802
+  dtk2000         DTK2000
+  ennyah_dkb1008  Ennyah DKB-1008
+  fscaa1667g      Fujitsu-Siemens Amilo laptop
+  genius          Genius Comfy KB-16M/Multimedia KWD-910
+  geniuscomfy     Genius Comfy KB-12e
+  geniuscomfy2    Genius Comfy KB-21e-Scroll
+  geniuskb19e     Genius KB-19e NB
+  geniuskkb2050hs Genius KKB-2050HS
+  gyration        Gyration
+  kinesis         Kinesis
+  logitech_base   Logitech
+  logitech_g15    Logitech G15 extra keys via G15daemon
+  hpi6            Hewlett-Packard Internet
+  hp250x          Hewlett-Packard NEC SK-2500 Multimedia
+  hpxe3gc         Hewlett-Packard Omnibook XE3 GC
+  hpxe3gf         Hewlett-Packard Omnibook XE3 GF
+  hpxt1000        Hewlett-Packard Omnibook XT1000
+  hpdv5           Hewlett-Packard Pavilion dv5
+  hpzt11xx        Hewlett-Packard Pavilion ZT1100
+  hp500fa         Hewlett-Packard Omnibook 500 FA
+  hp5xx           Hewlett-Packard Omnibook 500
+  hpnx9020        Hewlett-Packard nx9020
+  hp6000          Hewlett-Packard Omnibook 6000/6100
+  honeywell_euroboard Honeywell Euroboard
+  hpmini110       Hewlett-Packard Mini 110 laptop
+  rapidaccess     IBM Rapid Access
+  rapidaccess2    IBM Rapid Access II
+  thinkpad        IBM ThinkPad 560Z/600/600E/A22E
+  thinkpad60      IBM ThinkPad R60/T60/R61/T61
+  thinkpadz60     IBM ThinkPad Z60m/Z60t/Z61m/Z61t
+  ibm_spacesaver  IBM Space Saver
+  logiaccess      Logitech Access
+  logiclx300      Logitech Cordless Desktop LX-300
+  logii350        Logitech Internet 350
+  logimel         Logitech Internet 350
+  logicd          Logitech Cordless Desktop
+  logicd_it       Logitech Cordless Desktop iTouch
+  logicd_nav      Logitech Cordless Desktop Navigator
+  logicd_opt      Logitech Cordless Desktop Optical
+  logicda         Logitech Cordless Desktop (alt.)
+  logicdpa2       Logitech Cordless Desktop Pro (2nd alt.)
+  logicfn         Logitech Cordless Freedom/Desktop Navigator
+  logicdn         Logitech Cordless Desktop Navigator
+  logiitc         Logitech iTouch Cordless Y-RB6
+  logiik          Logitech Internet
+  itouch          Logitech iTouch
+  logicink        Logitech Internet Navigator
+  logiex110       Logitech Cordless Desktop EX110
+  logiinkse       Logitech iTouch Internet Navigator SE
+  logiinkseusb    Logitech iTouch Internet Navigator SE USB
+  logiultrax      Logitech Ultra-X
+  logiultraxc     Logitech Ultra-X Cordless Media Desktop
+  logidinovo      Logitech diNovo
+  logidinovoedge  Logitech diNovo Edge
+  mx1998          Memorex MX1998
+  mx2500          Memorex MX2500 EZ-Access
+  mx2750          Memorex MX2750
+  microsoft4000   Microsoft Natural Ergonomic 4000
+  microsoft7000   Microsoft Natural Wireless Ergonomic 7000
+  microsoftinet   Microsoft Internet
+  microsoftpro    Microsoft Natural Pro/Internet Pro
+  microsoftprousb Microsoft Natural Pro USB/Internet Pro
+  microsoftprooem Microsoft Natural Pro OEM
+  vsonku306       ViewSonic KU-306 Internet
+  microsoftprose  Microsoft Internet Pro (Swedish)
+  microsoftoffice Microsoft Office Keyboard
+  microsoftmult   Microsoft Wireless Multimedia 1.0A
+  microsoftsurface Microsoft Surface
+  microsoftelite  Microsoft Natural Elite
+  microsoftccurve2k Microsoft Comfort Curve 2000
+  oretec          Ortek Multimedia/Internet MCK-800
+  propeller       Propeller Voyager KTEZ-1000
+  qtronix         QTronix Scorpius 98N+
+  samsung4500     Samsung SDM 4500P
+  samsung4510     Samsung SDM 4510P
+  sanwaskbkg3     Sanwa Supply SKB-KG3
+  sk1300          NEC SK-1300
+  sk2500          NEC SK-2500
+  sk6200          NEC SK-6200
+  sk7100          NEC SK-7100
+  sp_inet         Super Power Multimedia
+  sven            SVEN Ergonomic 2500
+  sven303         SVEN Slim 303
+  symplon         Symplon PaceBook tablet
+  toshiba_s3000   Toshiba Satellite S3000
+  trust           Trust Wireless Classic
+  trustda         Trust Direct Access
+  trust_slimline  Trust Slimline
+  tm2020          TypeMatrix EZ-Reach 2020
+  tm2030PS2       TypeMatrix EZ-Reach 2030 PS2
+  tm2030USB       TypeMatrix EZ-Reach 2030 USB
+  tm2030USB-102   TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)
+  tm2030USB-106   TypeMatrix EZ-Reach 2030 USB (106:JP mode)
+  yahoo           Yahoo! Internet
+  macbook78       MacBook/MacBook Pro
+  macbook79       MacBook/MacBook Pro (intl.)
+  macintosh       Macintosh
+  macintosh_old   Macintosh Old
+  macintosh_hhk   Happy Hacking for Mac
+  acer_c300       Acer C300
+  acer_ferrari4k  Acer Ferrari 4000
+  acer_laptop     Acer laptop
+  asus_laptop     Asus laptop
+  apple           Apple
+  apple_laptop    Apple laptop
+  applealu_ansi   Apple Aluminium (ANSI)
+  applealu_iso    Apple Aluminium (ISO)
+  applealu_jis    Apple Aluminium (JIS)
+  silvercrest     Silvercrest Multimedia Wireless
+  emachines       eMachines m6800 laptop
+  benqx           BenQ X-Touch
+  benqx730        BenQ X-Touch 730
+  benqx800        BenQ X-Touch 800
+  hhk             Happy Hacking
+  classmate       Classmate PC
+  olpc            OLPC
+  sun_type7_usb   Sun Type 7 USB
+  sun_type7_euro_usb Sun Type 7 USB (European)
+  sun_type7_unix_usb Sun Type 7 USB (Unix)
+  sun_type7_jp_usb Sun Type 7 USB (Japanese)/Japanese 106-key
+  sun_type6_usb   Sun Type 6/7 USB
+  sun_type6_euro_usb Sun Type 6/7 USB (European)
+  sun_type6_unix_usb Sun Type 6 USB (Unix)
+  sun_type6_jp_usb Sun Type 6 USB (Japanese)
+  sun_type6_jp    Sun Type 6 (Japanese)
+  targa_v811      Targa Visionary 811
+  unitekkb1925    Unitek KB-1925
+  compalfl90      FL90
+  creativedw7000  Creative Desktop Wireless 7000
+  teck227         Truly Ergonomic 227
+  teck229         Truly Ergonomic 229
+  apex300         SteelSeries Apex 300 (Apex RAW)
+  chromebook      Chromebook
+  teck227         Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys)
+  teck229         Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key)
+
+! layout
+  us              English (US)
+  af              Afghani
+  ara             Arabic
+  al              Albanian
+  am              Armenian
+  at              German (Austria)
+  au              English (Australian)
+  az              Azerbaijani
+  by              Belarusian
+  be              Belgian
+  bd              Bangla
+  in              Indian
+  ba              Bosnian
+  br              Portuguese (Brazil)
+  bg              Bulgarian
+  dz              Berber (Algeria, Latin)
+  ma              Arabic (Morocco)
+  cm              English (Cameroon)
+  mm              Burmese
+  ca              French (Canada)
+  cd              French (Democratic Republic of the Congo)
+  cn              Chinese
+  hr              Croatian
+  cz              Czech
+  dk              Danish
+  nl              Dutch
+  bt              Dzongkha
+  ee              Estonian
+  ir              Persian
+  iq              Iraqi
+  fo              Faroese
+  fi              Finnish
+  fr              French
+  gh              English (Ghana)
+  gn              French (Guinea)
+  ge              Georgian
+  de              German
+  gr              Greek
+  hu              Hungarian
+  is              Icelandic
+  il              Hebrew
+  it              Italian
+  jp              Japanese
+  kg              Kyrgyz
+  kh              Khmer (Cambodia)
+  kz              Kazakh
+  la              Lao
+  latam           Spanish (Latin American)
+  lt              Lithuanian
+  lv              Latvian
+  mao             Maori
+  me              Montenegrin
+  mk              Macedonian
+  mt              Maltese
+  mn              Mongolian
+  no              Norwegian
+  pl              Polish
+  pt              Portuguese
+  ro              Romanian
+  ru              Russian
+  rs              Serbian
+  sc		  Scots
+  si              Slovenian
+  sk              Slovak
+  es              Spanish
+  se              Swedish
+  ch              German (Switzerland)
+  sy              Arabic (Syria)
+  tj              Tajik
+  lk              Sinhala (phonetic)
+  th              Thai
+  tr              Turkish
+  tw              Taiwanese
+  ua              Ukrainian
+  gb              English (UK)
+  uz              Uzbek
+  vn              Vietnamese
+  kr              Korean
+  nec_vndr/jp     Japanese (PC-98)
+  ie              Irish
+  pk              Urdu (Pakistan)
+  mv              Dhivehi
+  za              English (South Africa)
+  epo             Esperanto
+  np              Nepali
+  ng              English (Nigeria)
+  et              Amharic
+  sn              Wolof
+  brai            Braille
+  tm              Turkmen
+  ml              Bambara
+  tz              Swahili (Tanzania)
+  tg              French (Togo)
+  ke              Swahili (Kenya)
+  bw              Tswana
+  ph              Filipino
+  md              Moldavian
+  id              Indonesian (Arab Melayu, phonetic)
+  jv              Indonesian (Javanese)
+  my              Malay (Jawi, Arabic Keyboard)
+
+! variant
+  chr             us: Cherokee
+  euro            us: English (US, euro on 5)
+  intl            us: English (US, intl., with dead keys)
+  alt-intl        us: English (US, alt. intl.)
+  colemak         us: English (Colemak)
+  dvorak          us: English (Dvorak)
+  dvorak-intl     us: English (Dvorak, intl., with dead keys)
+  dvorak-alt-intl us: English (Dvorak, alt. intl.)
+  dvorak-l        us: English (Dvorak, left-handed)
+  dvorak-r        us: English (Dvorak, right-handed)
+  dvorak-classic  us: English (classic Dvorak)
+  dvp             us: English (programmer Dvorak)
+  rus             us: Russian (US, phonetic)
+  mac             us: English (Macintosh)
+  altgr-intl      us: English (intl., with AltGr dead keys)
+  olpc2           us: English (the divide/multiply keys toggle the layout)
+  hbs             us: Serbo-Croatian (US)
+  norman          us: English (Norman)
+  workman         us: English (Workman)
+  workman-intl    us: English (Workman, intl., with dead keys)
+  ps              af: Pashto
+  uz              af: Uzbek (Afghanistan)
+  olpc-ps         af: Pashto (Afghanistan, OLPC)
+  fa-olpc         af: Persian (Afghanistan, Dari OLPC)
+  uz-olpc         af: Uzbek (Afghanistan, OLPC)
+  azerty          ara: Arabic (AZERTY)
+  azerty_digits   ara: Arabic (AZERTY/digits)
+  digits          ara: Arabic (digits)
+  qwerty          ara: Arabic (QWERTY)
+  qwerty_digits   ara: Arabic (qwerty/digits)
+  buckwalter      ara: Arabic (Buckwalter)
+  olpc            ara: Arabic (OLPC)
+  mac             ara: Arabic (Macintosh)
+  plisi           al: Albanian (Plisi)
+  veqilharxhi     al: Albanian (Veqilharxhi)
+  phonetic        am: Armenian (phonetic)
+  phonetic-alt    am: Armenian (alt. phonetic)
+  eastern         am: Armenian (eastern)
+  western         am: Armenian (western)
+  eastern-alt     am: Armenian (alt. eastern)
+  nodeadkeys      at: German (Austria, no dead keys)
+  sundeadkeys     at: German (Austria, with Sun dead keys)
+  mac             at: German (Austria, Macintosh)
+  cyrillic        az: Azerbaijani (Cyrillic)
+  legacy          by: Belarusian (legacy)
+  latin           by: Belarusian (Latin)
+  oss             be: Belgian (alt.)
+  oss_latin9      be: Belgian (alt., Latin-9 only)
+  oss_sundeadkeys be: Belgian (alt., with Sun dead keys)
+  iso-alternate   be: Belgian (alt. ISO)
+  nodeadkeys      be: Belgian (no dead keys)
+  sundeadkeys     be: Belgian (with Sun dead keys)
+  wang            be: Belgian (Wang 724 AZERTY)
+  probhat         bd: Bangla (Probhat)
+  ben             in: Bangla (India)
+  ben_probhat     in: Bangla (India, Probhat)
+  ben_baishakhi   in: Bangla (India, Baishakhi)
+  ben_bornona     in: Bangla (India, Bornona)
+  ben_gitanjali   in: Bangla (India, Uni Gitanjali)
+  ben_inscript    in: Bangla (India, Baishakhi Inscript)
+  eeyek           in: Manipuri (Eeyek)
+  guj             in: Gujarati
+  guru            in: Punjabi (Gurmukhi)
+  jhelum          in: Punjabi (Gurmukhi Jhelum)
+  kan             in: Kannada
+  kan-kagapa      in: Kannada (KaGaPa phonetic)
+  mal             in: Malayalam
+  mal_lalitha     in: Malayalam (Lalitha)
+  mal_enhanced    in: Malayalam (enhanced Inscript, with rupee)
+  ori             in: Oriya
+  olck            in: Ol Chiki
+  tam_tamilnet    in: Tamil (TamilNet '99)
+  tam_tamilnet_with_tam_nums in: Tamil (TamilNet '99 with Tamil numerals)
+  tam_tamilnet_TAB in: Tamil (TamilNet '99, TAB encoding)
+  tam_tamilnet_TSCII in: Tamil (TamilNet '99, TSCII encoding)
+  tam             in: Tamil (Inscript)
+  tel             in: Telugu
+  tel-kagapa      in: Telugu (KaGaPa phonetic)
+  tel-sarala      in: Telugu (Sarala)
+  tel-kagapa      in: Telugu (KaGaPa phonetic)
+  urd-phonetic    in: Urdu (phonetic)
+  urd-phonetic3   in: Urdu (alt. phonetic)
+  urd-winkeys     in: Urdu (Win keys)
+  bolnagri        in: Hindi (Bolnagri)
+  hin-wx          in: Hindi (Wx)
+  hin-kagapa      in: Hindi (KaGaPa phonetic)
+  san-kagapa      in: Sanskrit (KaGaPa phonetic)
+  mar-kagapa      in: Marathi (KaGaPa phonetic)
+  eng             in: English (India, with rupee)
+  alternatequotes ba: Bosnian (with guillemets)
+  unicode         ba: Bosnian (with Bosnian digraphs)
+  unicodeus       ba: Bosnian (US, with Bosnian digraphs)
+  us              ba: Bosnian (US, with Bosnian letters)
+  nodeadkeys      br: Portuguese (Brazil, no dead keys)
+  dvorak          br: Portuguese (Brazil, Dvorak)
+  nativo          br: Portuguese (Brazil, Nativo)
+  nativo-us       br: Portuguese (Brazil, Nativo for US keyboards)
+  nativo-epo      br: Esperanto (Brazil, Nativo)
+  thinkpad        br: Portuguese (Brazil, IBM/Lenovo ThinkPad)
+  phonetic        bg: Bulgarian (traditional phonetic)
+  bas_phonetic    bg: Bulgarian (new phonetic)
+  ber             dz: Berber (Algeria, Tifinagh)
+  ar              dz: Arabic (Algeria)
+  french          ma: French (Morocco)
+  tifinagh        ma: Berber (Morocco, Tifinagh)
+  tifinagh-alt    ma: Berber (Morocco, Tifinagh alt.)
+  tifinagh-alt-phonetic ma: Berber (Morocco, Tifinagh alt. phonetic)
+  tifinagh-extended ma: Berber (Morocco, Tifinagh extended)
+  tifinagh-phonetic ma: Berber (Morocco, Tifinagh phonetic)
+  tifinagh-extended-phonetic ma: Berber (Morocco, Tifinagh extended phonetic)
+  french          cm: French (Cameroon)
+  qwerty          cm: Cameroon Multilingual (QWERTY)
+  azerty          cm: Cameroon Multilingual (AZERTY)
+  dvorak          cm: Cameroon Multilingual (Dvorak)
+  mmuock          cm: Mmuock
+  zawgyi          mm: Burmese Zawgyi
+  fr-dvorak       ca: French (Canada, Dvorak)
+  fr-legacy       ca: French (Canada, legacy)
+  multix          ca: Canadian Multilingual
+  multi           ca: Canadian Multilingual (1st part)
+  multi-2gr       ca: Canadian Multilingual (2nd part)
+  ike             ca: Inuktitut
+  eng             ca: English (Canada)
+  mon_trad        cn: Mongolian (Bichig)
+  mon_trad_todo   cn: Mongolian Todo
+  mon_trad_xibe   cn: Mongolian Xibe
+  mon_trad_manchu cn: Mongolian Manchu
+  mon_trad_galik  cn: Mongolian Galik
+  mon_todo_galik  cn: Mongolian Todo Galik
+  mon_manchu_galik cn: Mongolian Manchu Galik
+  tib             cn: Tibetan
+  tib_asciinum    cn: Tibetan (with ASCII numerals)
+  ug              cn: Uyghur
+  altgr-pinyin    cn: Hanyu Pinyin (altgr)
+  alternatequotes hr: Croatian (with guillemets)
+  unicode         hr: Croatian (with Croatian digraphs)
+  unicodeus       hr: Croatian (US, with Croatian digraphs)
+  us              hr: Croatian (US, with Croatian letters)
+  bksl            cz: Czech (with &lt;\|&gt; key)
+  qwerty          cz: Czech (QWERTY)
+  qwerty_bksl     cz: Czech (QWERTY, extended backslash)
+  qwerty-mac      cz: Czech (QWERTY, Macintosh)
+  ucw             cz: Czech (UCW, only accented letters)
+  dvorak-ucw      cz: Czech (US, Dvorak, UCW support)
+  rus             cz: Russian (Czech, phonetic)
+  nodeadkeys      dk: Danish (no dead keys)
+  winkeys         dk: Danish (Win keys)
+  mac             dk: Danish (Macintosh)
+  mac_nodeadkeys  dk: Danish (Macintosh, no dead keys)
+  dvorak          dk: Danish (Dvorak)
+  sundeadkeys     nl: Dutch (with Sun dead keys)
+  mac             nl: Dutch (Macintosh)
+  std             nl: Dutch (standard)
+  nodeadkeys      ee: Estonian (no dead keys)
+  dvorak          ee: Estonian (Dvorak)
+  us              ee: Estonian (US, with Estonian letters)
+  pes_keypad      ir: Persian (with Persian keypad)
+  ku              ir: Kurdish (Iran, Latin Q)
+  ku_f            ir: Kurdish (Iran, F)
+  ku_alt          ir: Kurdish (Iran, Latin Alt-Q)
+  ku_ara          ir: Kurdish (Iran, Arabic-Latin)
+  ku              iq: Kurdish (Iraq, Latin Q)
+  ku_f            iq: Kurdish (Iraq, F)
+  ku_alt          iq: Kurdish (Iraq, Latin Alt-Q)
+  ku_ara          iq: Kurdish (Iraq, Arabic-Latin)
+  nodeadkeys      fo: Faroese (no dead keys)
+  winkeys         fi: Finnish (Winkeys)
+  classic         fi: Finnish (classic)
+  nodeadkeys      fi: Finnish (classic, no dead keys)
+  smi             fi: Northern Saami (Finland)
+  mac             fi: Finnish (Macintosh)
+  nodeadkeys      fr: French (no dead keys)
+  sundeadkeys     fr: French (with Sun dead keys)
+  oss             fr: French (alt.)
+  oss_latin9      fr: French (alt., Latin-9 only)
+  oss_nodeadkeys  fr: French (alt., no dead keys)
+  oss_sundeadkeys fr: French (alt., with Sun dead keys)
+  latin9          fr: French (legacy, alt.)
+  latin9_nodeadkeys fr: French (legacy, alt., no dead keys)
+  latin9_sundeadkeys fr: French (legacy, alt., with Sun dead keys)
+  bepo            fr: French (Bepo, ergonomic, Dvorak way)
+  bepo_latin9     fr: French (Bepo, ergonomic, Dvorak way, Latin-9 only)
+  bepo_afnor      fr: French (Bepo, ergonomic, Dvorak way, AFNOR)
+  dvorak          fr: French (Dvorak)
+  mac             fr: French (Macintosh)
+  azerty          fr: French (AZERTY)
+  afnor           fr: French (AFNOR standardized AZERTY)
+  bre             fr: French (Breton)
+  oci             fr: Occitan
+  geo             fr: Georgian (France, AZERTY Tskapo)
+  us              fr: French (US, with French letters)
+  generic         gh: English (Ghana, multilingual)
+  akan            gh: Akan
+  ewe             gh: Ewe
+  fula            gh: Fula
+  ga              gh: Ga
+  hausa           gh: Hausa (Ghana)
+  avn             gh: Avatime
+  gillbt          gh: English (Ghana, GILLBT)
+  ergonomic       ge: Georgian (ergonomic)
+  mess            ge: Georgian (MESS)
+  ru              ge: Russian (Georgia)
+  os              ge: Ossetian (Georgia)
+  deadacute       de: German (dead acute)
+  deadgraveacute  de: German (dead grave acute)
+  nodeadkeys      de: German (no dead keys)
+  T3              de: German (T3)
+  ro              de: Romanian (Germany)
+  ro_nodeadkeys   de: Romanian (Germany, no dead keys)
+  dvorak          de: German (Dvorak)
+  sundeadkeys     de: German (with Sun dead keys)
+  neo             de: German (Neo 2)
+  mac             de: German (Macintosh)
+  mac_nodeadkeys  de: German (Macintosh, no dead keys)
+  dsb             de: Lower Sorbian
+  dsb_qwertz      de: Lower Sorbian (QWERTZ)
+  qwerty          de: German (QWERTY)
+  tr              de: Turkish (Germany)
+  ru              de: Russian (Germany, phonetic)
+  deadtilde       de: German (dead tilde)
+  simple          gr: Greek (simple)
+  extended        gr: Greek (extended)
+  nodeadkeys      gr: Greek (no dead keys)
+  polytonic       gr: Greek (polytonic)
+  standard        hu: Hungarian (standard)
+  nodeadkeys      hu: Hungarian (no dead keys)
+  qwerty          hu: Hungarian (QWERTY)
+  101_qwertz_comma_dead hu: Hungarian (101/QWERTZ/comma/dead keys)
+  101_qwertz_comma_nodead hu: Hungarian (101/QWERTZ/comma/no dead keys)
+  101_qwertz_dot_dead hu: Hungarian (101/QWERTZ/dot/dead keys)
+  101_qwertz_dot_nodead hu: Hungarian (101/QWERTZ/dot/no dead keys)
+  101_qwerty_comma_dead hu: Hungarian (101/QWERTY/comma/dead keys)
+  101_qwerty_comma_nodead hu: Hungarian (101/QWERTY/comma/no dead keys)
+  101_qwerty_dot_dead hu: Hungarian (101/QWERTY/dot/dead keys)
+  101_qwerty_dot_nodead hu: Hungarian (101/QWERTY/dot/no dead keys)
+  102_qwertz_comma_dead hu: Hungarian (102/QWERTZ/comma/dead keys)
+  102_qwertz_comma_nodead hu: Hungarian (102/QWERTZ/comma/no dead keys)
+  102_qwertz_dot_dead hu: Hungarian (102/QWERTZ/dot/dead keys)
+  102_qwertz_dot_nodead hu: Hungarian (102/QWERTZ/dot/no dead keys)
+  102_qwerty_comma_dead hu: Hungarian (102/QWERTY/comma/dead keys)
+  102_qwerty_comma_nodead hu: Hungarian (102/QWERTY/comma/no dead keys)
+  102_qwerty_dot_dead hu: Hungarian (102/QWERTY/dot/dead keys)
+  102_qwerty_dot_nodead hu: Hungarian (102/QWERTY/dot/no dead keys)
+  Sundeadkeys     is: Icelandic (with Sun dead keys)
+  nodeadkeys      is: Icelandic (no dead keys)
+  mac_legacy      is: Icelandic (Macintosh, legacy)
+  mac             is: Icelandic (Macintosh)
+  dvorak          is: Icelandic (Dvorak)
+  lyx             il: Hebrew (lyx)
+  phonetic        il: Hebrew (phonetic)
+  biblical        il: Hebrew (Biblical, Tiro)
+  nodeadkeys      it: Italian (no dead keys)
+  winkeys         it: Italian (Winkeys)
+  mac             it: Italian (Macintosh)
+  us              it: Italian (US, with Italian letters)
+  geo             it: Georgian (Italy)
+  ibm             it: Italian (IBM 142)
+  intl            it: Italian (intl., with dead keys)
+  scn             it: Sicilian
+  fur             it: Friulian (Italy)
+  kana            jp: Japanese (Kana)
+  kana86          jp: Japanese (Kana 86)
+  OADG109A        jp: Japanese (OADG 109A)
+  mac             jp: Japanese (Macintosh)
+  dvorak          jp: Japanese (Dvorak)
+  phonetic        kg: Kyrgyz (phonetic)
+  ruskaz          kz: Russian (Kazakhstan, with Kazakh)
+  kazrus          kz: Kazakh (with Russian)
+  ext             kz: Kazakh (extended)
+  latin           kz: Kazakh (Latin)
+  stea            la: Lao (STEA proposed standard layout)
+  nodeadkeys      latam: Spanish (Latin American, no dead keys)
+  deadtilde       latam: Spanish (Latin American, dead tilde)
+  sundeadkeys     latam: Spanish (Latin American, with Sun dead keys)
+  dvorak          latam: Spanish (Latin American, Dvorak)
+  colemak         latam: Spanish (Latin American, Colemak)
+  colemak-gaming  latam: Spanish (Latin American, Colemak for gaming)
+  std             lt: Lithuanian (standard)
+  us              lt: Lithuanian (US, with Lithuanian letters)
+  ibm             lt: Lithuanian (IBM LST 1205-92)
+  lekp            lt: Lithuanian (LEKP)
+  lekpa           lt: Lithuanian (LEKPa)
+  sgs             lt: Samogitian
+  apostrophe      lv: Latvian (apostrophe)
+  tilde           lv: Latvian (tilde)
+  fkey            lv: Latvian (F)
+  modern          lv: Latvian (modern)
+  ergonomic       lv: Latvian (ergonomic, ŪGJRMV)
+  adapted         lv: Latvian (adapted)
+  cyrillic        me: Montenegrin (Cyrillic)
+  cyrillicyz      me: Montenegrin (Cyrillic, ZE and ZHE swapped)
+  latinunicode    me: Montenegrin (Latin, Unicode)
+  latinyz         me: Montenegrin (Latin, QWERTY)
+  latinunicodeyz  me: Montenegrin (Latin, Unicode, QWERTY)
+  cyrillicalternatequotes me: Montenegrin (Cyrillic with guillemets)
+  latinalternatequotes me: Montenegrin (Latin with guillemets)
+  nodeadkeys      mk: Macedonian (no dead keys)
+  us              mt: Maltese (with US layout)
+  alt-us          mt: Maltese (US layout with AltGr overrides)
+  alt-gb          mt: Maltese (UK layout with AltGr overrides)
+  nodeadkeys      no: Norwegian (no dead keys)
+  winkeys         no: Norwegian (Win keys)
+  dvorak          no: Norwegian (Dvorak)
+  smi             no: Northern Saami (Norway)
+  smi_nodeadkeys  no: Northern Saami (Norway, no dead keys)
+  mac             no: Norwegian (Macintosh)
+  mac_nodeadkeys  no: Norwegian (Macintosh, no dead keys)
+  colemak         no: Norwegian (Colemak)
+  legacy          pl: Polish (legacy)
+  qwertz          pl: Polish (QWERTZ)
+  dvorak          pl: Polish (Dvorak)
+  dvorak_quotes   pl: Polish (Dvorak, with Polish quotes on quotemark key)
+  dvorak_altquotes pl: Polish (Dvorak, with Polish quotes on key 1)
+  csb             pl: Kashubian
+  szl             pl: Silesian
+  ru_phonetic_dvorak pl: Russian (Poland, phonetic Dvorak)
+  dvp             pl: Polish (programmer Dvorak)
+  nodeadkeys      pt: Portuguese (no dead keys)
+  sundeadkeys     pt: Portuguese (with Sun dead keys)
+  mac             pt: Portuguese (Macintosh)
+  mac_nodeadkeys  pt: Portuguese (Macintosh, no dead keys)
+  mac_sundeadkeys pt: Portuguese (Macintosh, with Sun dead keys)
+  nativo          pt: Portuguese (Nativo)
+  nativo-us       pt: Portuguese (Nativo for US keyboards)
+  nativo-epo      pt: Esperanto (Portugal, Nativo)
+  cedilla         ro: Romanian (cedilla)
+  std             ro: Romanian (standard)
+  std_cedilla     ro: Romanian (standard cedilla)
+  winkeys         ro: Romanian (Win keys)
+  phonetic        ru: Russian (phonetic)
+  phonetic_winkeys ru: Russian (phonetic, with Win keys)
+  phonetic_yazherty ru: Russian (phonetic yazherty)
+  typewriter      ru: Russian (typewriter)
+  legacy          ru: Russian (legacy)
+  typewriter-legacy ru: Russian (typewriter, legacy)
+  tt              ru: Tatar
+  os_legacy       ru: Ossetian (legacy)
+  os_winkeys      ru: Ossetian (Win keys)
+  cv              ru: Chuvash
+  cv_latin        ru: Chuvash (Latin)
+  udm             ru: Udmurt
+  kom             ru: Komi
+  sah             ru: Yakut
+  xal             ru: Kalmyk
+  dos             ru: Russian (DOS)
+  mac             ru: Russian (Macintosh)
+  srp             ru: Serbian (Russia)
+  bak             ru: Bashkirian
+  chm             ru: Mari
+  phonetic_azerty ru: Russian (phonetic, AZERTY)
+  phonetic_dvorak ru: Russian (phonetic, Dvorak)
+  phonetic_fr     ru: Russian (phonetic, French)
+  yz              rs: Serbian (Cyrillic, ZE and ZHE swapped)
+  latin           rs: Serbian (Latin)
+  latinunicode    rs: Serbian (Latin, Unicode)
+  latinyz         rs: Serbian (Latin, QWERTY)
+  latinunicodeyz  rs: Serbian (Latin, Unicode, QWERTY)
+  alternatequotes rs: Serbian (Cyrillic with guillemets)
+  latinalternatequotes rs: Serbian (Latin with guillemets)
+  rue             rs: Pannonian Rusyn
+  alternatequotes si: Slovenian (with guillemets)
+  us              si: Slovenian (US, with Slovenian letters)
+  bksl            sk: Slovak (extended backslash)
+  qwerty          sk: Slovak (QWERTY)
+  qwerty_bksl     sk: Slovak (QWERTY, extended backslash)
+  nodeadkeys      es: Spanish (no dead keys)
+  winkeys         es: Spanish (Win keys)
+  deadtilde       es: Spanish (dead tilde)
+  sundeadkeys     es: Spanish (with Sun dead keys)
+  dvorak          es: Spanish (Dvorak)
+  ast             es: Asturian (Spain, with bottom-dot H and bottom-dot L)
+  cat             es: Catalan (Spain, with middle-dot L)
+  mac             es: Spanish (Macintosh)
+  nodeadkeys      se: Swedish (no dead keys)
+  dvorak          se: Swedish (Dvorak)
+  rus             se: Russian (Sweden, phonetic)
+  rus_nodeadkeys  se: Russian (Sweden, phonetic, no dead keys)
+  smi             se: Northern Saami (Sweden)
+  mac             se: Swedish (Macintosh)
+  svdvorak        se: Swedish (Svdvorak)
+  us_dvorak       se: Swedish (based on US Intl. Dvorak)
+  us              se: Swedish (US, with Swedish letters)
+  swl             se: Swedish Sign Language
+  legacy          ch: German (Switzerland, legacy)
+  de_nodeadkeys   ch: German (Switzerland, no dead keys)
+  de_sundeadkeys  ch: German (Switzerland, with Sun dead keys)
+  fr              ch: French (Switzerland)
+  fr_nodeadkeys   ch: French (Switzerland, no dead keys)
+  fr_sundeadkeys  ch: French (Switzerland, with Sun dead keys)
+  fr_mac          ch: French (Switzerland, Macintosh)
+  de_mac          ch: German (Switzerland, Macintosh)
+  syc             sy: Syriac
+  syc_phonetic    sy: Syriac (phonetic)
+  ku              sy: Kurdish (Syria, Latin Q)
+  ku_f            sy: Kurdish (Syria, F)
+  ku_alt          sy: Kurdish (Syria, Latin Alt-Q)
+  legacy          tj: Tajik (legacy)
+  tam_unicode     lk: Tamil (Sri Lanka, TamilNet '99)
+  tam_TAB         lk: Tamil (Sri Lanka, TamilNet '99, TAB encoding)
+  us              lk: Sinhala (US, with Sinhala letters)
+  tis             th: Thai (TIS-820.2538)
+  pat             th: Thai (Pattachote)
+  f               tr: Turkish (F)
+  alt             tr: Turkish (Alt-Q)
+  sundeadkeys     tr: Turkish (with Sun dead keys)
+  ku              tr: Kurdish (Turkey, Latin Q)
+  ku_f            tr: Kurdish (Turkey, F)
+  ku_alt          tr: Kurdish (Turkey, Latin Alt-Q)
+  intl            tr: Turkish (intl., with dead keys)
+  crh             tr: Crimean Tatar (Turkish Q)
+  crh_f           tr: Crimean Tatar (Turkish F)
+  crh_alt         tr: Crimean Tatar (Turkish Alt-Q)
+  indigenous      tw: Taiwanese (indigenous)
+  saisiyat        tw: Saisiyat (Taiwan)
+  phonetic        ua: Ukrainian (phonetic)
+  typewriter      ua: Ukrainian (typewriter)
+  winkeys         ua: Ukrainian (Win keys)
+  legacy          ua: Ukrainian (legacy)
+  rstu            ua: Ukrainian (standard RSTU)
+  rstu_ru         ua: Russian (Ukraine, standard RSTU)
+  homophonic      ua: Ukrainian (homophonic)
+  extd            gb: English (UK, extended, with Win keys)
+  intl            gb: English (UK, intl., with dead keys)
+  dvorak          gb: English (UK, Dvorak)
+  dvorakukp       gb: English (UK, Dvorak, with UK punctuation)
+  mac             gb: English (UK, Macintosh)
+  mac_intl        gb: English (UK, intl., Macintosh)
+  colemak         gb: English (UK, Colemak)
+  pl              gb: Polish (British keyboard)
+  latin           uz: Uzbek (Latin)
+  us              vn: Vietnamese (US, with Vietnamese letters)
+  fr              vn: Vietnamese (French, with Vietnamese letters)
+  kr104           kr: Korean (101/104 key compatible)
+  CloGaelach      ie: CloGaelach
+  UnicodeExpert   ie: Irish (UnicodeExpert)
+  ogam            ie: Ogham
+  ogam_is434      ie: Ogham (IS434)
+  urd-crulp       pk: Urdu (Pakistan, CRULP)
+  urd-nla         pk: Urdu (Pakistan, NLA)
+  ara             pk: Arabic (Pakistan)
+  snd             pk: Sindhi
+  legacy          epo: Esperanto (displaced semicolon and quote, obsolete)
+  igbo            ng: Igbo
+  yoruba          ng: Yoruba
+  hausa           ng: Hausa (Nigeria)
+  left_hand       brai: Braille (left-handed)
+  left_hand_invert brai: Braille (left-handed inverted thumb)
+  right_hand      brai: Braille (right-handed)
+  right_hand_invert brai: Braille (right-handed inverted thumb)
+  alt             tm: Turkmen (Alt-Q)
+  fr-oss          ml: French (Mali, alt.)
+  us-mac          ml: English (Mali, US, Macintosh)
+  us-intl         ml: English (Mali, US, intl.)
+  kik             ke: Kikuyu
+  qwerty-bay      ph: Filipino (QWERTY, Baybayin)
+  capewell-dvorak ph: Filipino (Capewell-Dvorak, Latin)
+  capewell-dvorak-bay ph: Filipino (Capewell-Dvorak, Baybayin)
+  capewell-qwerf2k6 ph: Filipino (Capewell-QWERF 2006, Latin)
+  capewell-qwerf2k6-bay ph: Filipino (Capewell-QWERF 2006, Baybayin)
+  colemak         ph: Filipino (Colemak, Latin)
+  colemak-bay     ph: Filipino (Colemak, Baybayin)
+  dvorak          ph: Filipino (Dvorak, Latin)
+  dvorak-bay      ph: Filipino (Dvorak, Baybayin)
+  gag             md: Moldavian (Gagauz)
+  phoneticx       id: Indonesian (Arab Melayu, ext. phonetic)
+  phonetic        my: Malay (Jawi, phonetic)
+
+! option
+  grp                  Switching to another layout
+  grp:switch           Right Alt (while pressed)
+  grp:lswitch          Left Alt (while pressed)
+  grp:lwin_switch      Left Win (while pressed)
+  grp:rwin_switch      Right Win (while pressed)
+  grp:win_switch       Any Win (while pressed)
+  grp:menu_switch      Menu (while pressed), Shift+Menu for Menu
+  grp:caps_switch      Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action
+  grp:rctrl_switch     Right Ctrl (while pressed)
+  grp:toggle           Right Alt
+  grp:lalt_toggle      Left Alt
+  grp:caps_toggle      Caps Lock
+  grp:shift_caps_toggle Shift+Caps Lock
+  grp:shift_caps_switch Caps Lock to first layout; Shift+Caps Lock to last layout
+  grp:win_menu_switch  Left Win to first layout; Right Win/Menu to last layout
+  grp:lctrl_rctrl_switch Left Ctrl to first layout; Right Ctrl to last layout
+  grp:alt_caps_toggle  Alt+Caps Lock
+  grp:shifts_toggle    Both Shift together
+  grp:alts_toggle      Both Alt together
+  grp:ctrls_toggle     Both Ctrl together
+  grp:ctrl_shift_toggle Ctrl+Shift
+  grp:lctrl_lshift_toggle Left Ctrl+Left Shift
+  grp:rctrl_rshift_toggle Right Ctrl+Right Shift
+  grp:ctrl_alt_toggle  Alt+Ctrl
+  grp:alt_shift_toggle Alt+Shift
+  grp:lalt_lshift_toggle Left Alt+Left Shift
+  grp:alt_space_toggle Alt+Space
+  grp:menu_toggle      Menu
+  grp:lwin_toggle      Left Win
+  grp:win_space_toggle Win+Space
+  grp:rwin_toggle      Right Win
+  grp:lshift_toggle    Left Shift
+  grp:rshift_toggle    Right Shift
+  grp:lctrl_toggle     Left Ctrl
+  grp:rctrl_toggle     Right Ctrl
+  grp:sclk_toggle      Scroll Lock
+  grp:lctrl_lwin_rctrl_menu Left Ctrl+Left Win to first layout; Right Ctrl+Menu to second layout
+  grp:lctrl_lwin_toggle Left Ctrl+Left Win
+  lv3                  Key to choose the 3rd level
+  lv3:switch           Right Ctrl
+  lv3:menu_switch      Menu
+  lv3:win_switch       Any Win
+  lv3:lwin_switch      Left Win
+  lv3:rwin_switch      Right Win
+  lv3:alt_switch       Any Alt
+  lv3:lalt_switch      Left Alt
+  lv3:ralt_switch      Right Alt
+  lv3:ralt_switch_multikey Right Alt; Shift+Right Alt as Compose
+  lv3:ralt_alt         Right Alt never chooses 3rd level
+  lv3:enter_switch     Enter on keypad
+  lv3:caps_switch      Caps Lock
+  lv3:bksl_switch      Backslash
+  lv3:lsgt_switch      &lt;Less/Greater&gt;
+  lv3:caps_switch_latch Caps Lock; acts as onetime lock when pressed together with another 3rd-level chooser
+  lv3:bksl_switch_latch Backslash; acts as onetime lock when pressed together with another 3rd level chooser
+  lv3:lsgt_switch_latch &lt;Less/Greater&gt;; acts as onetime lock when pressed together with another 3rd level chooser
+  ctrl                 Ctrl position
+  ctrl:nocaps          Caps Lock as Ctrl
+  ctrl:lctrl_meta      Left Ctrl as Meta
+  ctrl:swapcaps        Swap Ctrl and Caps Lock
+  ctrl:swapcaps_hyper  Caps Lock as Control, Control as Hyper
+  ctrl:ac_ctrl         At left of 'A'
+  ctrl:aa_ctrl         At bottom left
+  ctrl:rctrl_ralt      Right Ctrl as Right Alt
+  ctrl:menu_rctrl      Menu as Right Ctrl
+  ctrl:swap_lalt_lctl  Swap Left Alt with Left Ctrl
+  ctrl:swap_lwin_lctl  Swap Left Win with Left Ctrl
+  ctrl:swap_rwin_rctl  Swap Right Win with Right Ctrl
+  ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Left Alt
+  grp_led              Use keyboard LED to show alternative layout
+  grp_led:num          Num Lock
+  grp_led:caps         Caps Lock
+  grp_led:scroll       Scroll Lock
+  mod_led              Use keyboard LED to indicate modifiers
+  mod_led:compose      Compose
+  keypad               Layout of numeric keypad
+  keypad:legacy        Legacy
+  keypad:oss           Unicode additions (arrows and math operators)
+  keypad:future        Unicode additions (arrows and math operators; math operators on default level)
+  keypad:legacy_wang   Legacy Wang 724
+  keypad:oss_wang      Wang 724 keypad with Unicode additions (arrows and math operators)
+  keypad:future_wang   Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)
+  keypad:hex           Hexadecimal
+  keypad:atm           ATM/phone-style
+  kpdl                 Numeric keypad Delete behavior
+  kpdl:dot             Legacy key with dot
+  kpdl:comma           Legacy key with comma
+  kpdl:dotoss          Four-level key with dot
+  kpdl:dotoss_latin9   Four-level key with dot, Latin-9 only
+  kpdl:commaoss        Four-level key with comma
+  kpdl:momayyezoss     Four-level key with momayyez
+  kpdl:kposs           Four-level key with abstract separators
+  kpdl:semi            Semicolon on third level
+  caps                 Caps Lock behavior
+  caps:internal        Caps Lock uses internal capitalization; Shift "pauses" Caps Lock
+  caps:internal_nocancel Caps Lock uses internal capitalization; Shift does not affect Caps Lock
+  caps:shift           Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock
+  caps:shift_nocancel  Caps Lock acts as Shift with locking; Shift does not affect Caps Lock
+  caps:capslock        Caps Lock toggles normal capitalization of alphabetic characters
+  caps:shiftlock       Caps Lock toggles ShiftLock (affects all keys)
+  caps:swapescape      Swap ESC and Caps Lock
+  caps:escape          Make Caps Lock an additional Esc
+  caps:escape_shifted_capslock Make unmodified Caps Lock an additional Esc, but Shift + Caps Lock behaves like regular Caps Lock
+  caps:backspace       Make Caps Lock an additional Backspace
+  caps:super           Make Caps Lock an additional Super
+  caps:hyper           Make Caps Lock an additional Hyper
+  caps:menu            Make Caps Lock an additional Menu key
+  caps:numlock         Make Caps Lock an additional Num Lock
+  caps:ctrl_modifier   Caps Lock is also a Ctrl
+  caps:none            Caps Lock is disabled
+  altwin               Alt/Win key behavior
+  altwin:menu          Add the standard behavior to Menu key
+  altwin:menu_win      Menu is mapped to Win
+  altwin:meta_alt      Alt and Meta are on Alt
+  altwin:alt_win       Alt is mapped to Win and the usual Alt
+  altwin:ctrl_win      Ctrl is mapped to Win and the usual Ctrl keys
+  altwin:ctrl_alt_win  Ctrl is mapped to Alt; Alt is mapped to Win
+  altwin:meta_win      Meta is mapped to Win
+  altwin:left_meta_win Meta is mapped to Left Win
+  altwin:hyper_win     Hyper is mapped to Win
+  altwin:alt_super_win Alt is mapped to Right Win, Super to Menu
+  altwin:swap_lalt_lwin Left Alt is swapped with Left Win
+  altwin:swap_alt_win  Alt is swapped with Win
+  altwin:prtsc_rwin    Win is mapped to PrtSc and the usual Win
+  Compose key          Position of Compose key
+  compose:ralt         Right Alt
+  compose:lwin         Left Win
+  compose:lwin-altgr   3rd level of Left Win
+  compose:rwin         Right Win
+  compose:rwin-altgr   3rd level of Right Win
+  compose:menu         Menu
+  compose:menu-altgr   3rd level of Menu
+  compose:lctrl        Left Ctrl
+  compose:lctrl-altgr  3rd level of Left Ctrl
+  compose:rctrl        Right Ctrl
+  compose:rctrl-altgr  3rd level of Right Ctrl
+  compose:caps         Caps Lock
+  compose:caps-altgr   3rd level of Caps Lock
+  compose:102          &lt;Less/Greater&gt;
+  compose:102-altgr    3rd level of &lt;Less/Greater&gt;
+  compose:paus         Pause
+  compose:prsc         PrtSc
+  compose:sclk         Scroll Lock
+  compat               Miscellaneous compatibility options
+  numpad:pc            Default numeric keypad keys
+  numpad:mac           Numeric keypad always enters digits (as in macOS)
+  numpad:microsoft     Num Lock on: digits; Shift for arrow keys. Num Lock off: arrow keys (as in Windows)
+  numpad:shift3        Shift does not cancel Num Lock, chooses 3rd level instead
+  srvrkeys:none        Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server
+  apple:alupckeys      Apple Aluminium: emulate PC keys (PrtSc, Scroll Lock, Pause, Num Lock)
+  shift:breaks_caps    Shift cancels Caps Lock
+  misc:typo            Enable extra typographic characters
+  shift:both_capslock  Both Shift together enable Caps Lock
+  shift:both_capslock_cancel Both Shift together enable Caps Lock; one Shift key disables it
+  shift:both_shiftlock Both Shift together enable Shift Lock
+  keypad:pointerkeys   Shift + Num Lock enables PointerKeys
+  grab:break_actions   Allow breaking grabs with keyboard actions (warning: security risk)
+  grab:debug           Allow grab and window tree logging
+  currencysign         Adding currency signs to certain keys
+  eurosign:e           Euro on E
+  eurosign:2           Euro on 2
+  eurosign:4           Euro on 4
+  eurosign:5           Euro on 5
+  rupeesign:4          Rupee on 4
+  lv5                  Key to choose 5th level
+  lv5:lsgt_switch      &lt;Less/Greater&gt; chooses 5th level
+  lv5:ralt_switch      Right Alt chooses 5th level
+  lv5:lsgt_switch_lock &lt;Less/Greater&gt; chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:ralt_switch_lock Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:lwin_switch_lock Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:rwin_switch_lock Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:lsgt_switch_lock_cancel &lt;Less/Greater&gt; chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:lsgt_switch      &lt;Less/Greater&gt; chooses 5th level
+  lv5:ralt_switch      Right Alt chooses 5th level
+  lv5:lsgt_switch_lock &lt;Less/Greater&gt; chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:ralt_switch_lock Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:lwin_switch_lock Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:rwin_switch_lock Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  nbsp                 Using space key to input non-breaking space
+  nbsp:none            Usual space at any level
+  nbsp:level2          Non-breaking space at the 2nd level
+  nbsp:level3          Non-breaking space at the 3rd level
+  nbsp:level3s         Non-breaking space at the 3rd level, nothing at the 4th level
+  nbsp:level3n         Non-breaking space at the 3rd level, thin non-breaking space at the 4th level
+  nbsp:level4          Non-breaking space at the 4th level
+  nbsp:level4n         Non-breaking space at the 4th level, thin non-breaking space at the 6th level
+  nbsp:level4nl        Non-breaking space at the 4th level, thin non-breaking space at the 6th level (via Ctrl+Shift)
+  nbsp:zwnj2           Zero-width non-joiner at the 2nd level
+  nbsp:zwnj2zwj3       Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level
+  nbsp:zwnj2zwj3nb4    Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level, non-breaking space at the 4th level
+  nbsp:zwnj2nb3        Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level
+  nbsp:zwnj2nb3s       Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, nothing at the 4th level
+  nbsp:zwnj2nb3zwj4    Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, zero-width joiner at the 4th level
+  nbsp:zwnj2nb3nnb4    Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, thin non-breaking space at the 4th level
+  nbsp:zwnj3zwj4       Zero-width non-joiner at the 3rd level, zero-width joiner at the 4th level
+  japan                Japanese keyboard options
+  japan:kana_lock      Kana Lock key is locking
+  japan:nicola_f_bs    NICOLA-F style Backspace
+  japan:hztg_escape    Make Zenkaku Hankaku an additional Esc
+  korean               Korean Hangul/Hanja keys
+  korean:ralt_hangul   Make right Alt a Hangul key
+  korean:rctrl_hangul  Make right Ctrl a Hangul key
+  korean:ralt_hanja    Make right Alt a Hanja key
+  korean:rctrl_hanja   Make right Ctrl a Hanja key
+  esperanto            Adding Esperanto supersigned letters
+  esperanto:qwerty     To the corresponding key in a QWERTY layout
+  esperanto:dvorak     To the corresponding key in a Dvorak layout
+  esperanto:colemak    To the corresponding key in a Colemak layout
+  solaris              Maintain key compatibility with old Solaris keycodes
+  solaris:sun_compat   Sun Key compatibility
+  terminate            Key sequence to kill the X server
+  terminate:ctrl_alt_bksp Ctrl+Alt+Backspace
diff --git a/unix/usr/share/X11/xkb/rules/base.xml b/unix/usr/share/X11/xkb/rules/base.xml
new file mode 100644
index 0000000..58deed0
--- /dev/null
+++ b/unix/usr/share/X11/xkb/rules/base.xml
@@ -0,0 +1,7655 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
+<xkbConfigRegistry version="1.1">
+  <modelList>
+    <model>
+      <configItem>
+        <name>pc101</name>
+        <description>Generic 101-key PC</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>pc102</name>
+        <description>Generic 102-key PC (intl.)</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>pc104</name>
+        <description>Generic 104-key PC</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>pc105</name>
+        <description>Generic 105-key PC (intl.)</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dell101</name>
+        <description>Dell 101-key PC</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>latitude</name>
+        <description>Dell Latitude laptop</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dellm65</name>
+        <description>Dell Precision M65 laptop</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>everex</name>
+        <description>Everex STEPnote</description>
+        <vendor>Everex</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>flexpro</name>
+        <description>Keytronic FlexPro</description>
+        <vendor>Keytronic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoft</name>
+        <description>Microsoft Natural</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>omnikey101</name>
+        <description>Northgate OmniKey 101</description>
+        <vendor>Northgate</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>winbook</name>
+        <description>Winbook Model XP5</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>pc98</name>
+        <description>PC-98</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>a4techKB21</name>
+        <description>A4Tech KB-21</description>
+        <vendor>A4Tech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>a4techKBS8</name>
+        <description>A4Tech KBS-8</description>
+        <vendor>A4Tech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>a4_rfkb23</name>
+        <description>A4Tech Wireless Desktop RFKB-23</description>
+        <vendor>A4Tech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>airkey</name>
+        <description>Acer AirKey V</description>
+        <vendor>Acer</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>azonaRF2300</name>
+        <description>Azona RF2300 wireless Internet</description>
+        <vendor>Azona</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>scorpius</name>
+        <description>Advance Scorpius KI</description>
+        <vendor>Scorpius</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>brother</name>
+        <description>Brother Internet</description>
+        <vendor>Brother</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc5113rf</name>
+        <description>BTC 5113RF Multimedia</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc5126t</name>
+        <description>BTC 5126T</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc6301urf</name>
+        <description>BTC 6301URF</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc9000</name>
+        <description>BTC 9000</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc9000a</name>
+        <description>BTC 9000A</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc9001ah</name>
+        <description>BTC 9001AH</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc5090</name>
+        <description>BTC 5090</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc9019u</name>
+        <description>BTC 9019U</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc9116u</name>
+        <description>BTC 9116U Mini Wireless Internet and Gaming</description>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cherryblue</name>
+        <description>Cherry Blue Line CyBo@rd</description>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cherryblueb</name>
+        <description>Cherry CyMotion Master XPress</description>
+        <vendor>Cherry</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cherrybluea</name>
+        <description>Cherry Blue Line CyBo@rd (alt.)</description>
+        <vendor>Cherry</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cherrycyboard</name>
+        <description>Cherry CyBo@rd USB-Hub</description>
+        <vendor>Cherry</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cherrycmexpert</name>
+        <description>Cherry CyMotion Expert</description>
+        <vendor>Cherry</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cherrybunlim</name>
+        <description>Cherry B.UNLIMITED</description>
+        <vendor>Cherry</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>chicony</name>
+        <description>Chicony Internet</description>
+        <vendor>Chicony</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>chicony0108</name>
+        <description>Chicony KU-0108</description>
+        <vendor>Chicony</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>chicony0420</name>
+        <description>Chicony KU-0420</description>
+        <vendor>Chicony</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>chicony9885</name>
+        <description>Chicony KB-9885</description>
+        <vendor>Chicony</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>compaqeak8</name>
+        <description>Compaq Easy Access</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>compaqik7</name>
+        <description>Compaq Internet (7 keys)</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>compaqik13</name>
+        <description>Compaq Internet (13 keys)</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>compaqik18</name>
+        <description>Compaq Internet (18 keys)</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cymotionlinux</name>
+        <description>Cherry CyMotion Master Linux</description>
+        <vendor>Cherry</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>armada</name>
+        <description>Compaq Armada laptop</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>presario</name>
+        <description>Compaq Presario laptop</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>ipaq</name>
+        <description>Compaq iPaq</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dell</name>
+        <description>Dell</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dellsk8125</name>
+        <description>Dell SK-8125</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dellsk8135</name>
+        <description>Dell SK-8135</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dellusbmm</name>
+        <description>Dell USB Multimedia</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>inspiron</name>
+        <description>Dell Inspiron 6000/8000 laptop</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>precision_m</name>
+        <description>Dell Precision M laptop</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dexxa</name>
+        <description>Dexxa Wireless Desktop</description>
+        <vendor>Dexxa</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>diamond</name>
+        <description>Diamond 9801/9802</description>
+        <vendor>Diamond</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dtk2000</name>
+        <description>DTK2000</description>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>ennyah_dkb1008</name>
+        <description>Ennyah DKB-1008</description>
+        <vendor>Ennyah</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>fscaa1667g</name>
+        <description>Fujitsu-Siemens Amilo laptop</description>
+        <vendor>Fujitsu-Siemens</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>genius</name>
+        <description>Genius Comfy KB-16M/Multimedia KWD-910</description>
+        <vendor>Genius</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>geniuscomfy</name>
+        <description>Genius Comfy KB-12e</description>
+        <vendor>Genius</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>geniuscomfy2</name>
+        <description>Genius Comfy KB-21e-Scroll</description>
+        <vendor>Genius</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>geniuskb19e</name>
+        <description>Genius KB-19e NB</description>
+        <vendor>Genius</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>geniuskkb2050hs</name>
+        <description>Genius KKB-2050HS</description>
+        <vendor>Genius</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>gyration</name>
+        <description>Gyration</description>
+        <vendor>Gyration</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>kinesis</name>
+        <description>Kinesis</description>
+        <vendor>Kinesis</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logitech_base</name>
+        <description>Logitech</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logitech_g15</name>
+        <description>Logitech G15 extra keys via G15daemon</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpi6</name>
+        <description>Hewlett-Packard Internet</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hp250x</name>
+        <description>Hewlett-Packard NEC SK-2500 Multimedia</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpxe3gc</name>
+        <description>Hewlett-Packard Omnibook XE3 GC</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpxe3gf</name>
+        <description>Hewlett-Packard Omnibook XE3 GF</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpxt1000</name>
+        <description>Hewlett-Packard Omnibook XT1000</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpdv5</name>
+        <description>Hewlett-Packard Pavilion dv5</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpzt11xx</name>
+        <description>Hewlett-Packard Pavilion ZT1100</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hp500fa</name>
+        <description>Hewlett-Packard Omnibook 500 FA</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hp5xx</name>
+        <description>Hewlett-Packard Omnibook 500</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpnx9020</name>
+        <description>Hewlett-Packard nx9020</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hp6000</name>
+        <description>Hewlett-Packard Omnibook 6000/6100</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>honeywell_euroboard</name>
+        <description>Honeywell Euroboard</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpmini110</name>
+        <description>Hewlett-Packard Mini 110 laptop</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>rapidaccess</name>
+        <description>IBM Rapid Access</description>
+        <vendor>Lenovo (previously IBM)</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>rapidaccess2</name>
+        <description>IBM Rapid Access II</description>
+        <vendor>Lenovo (previously IBM)</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>thinkpad</name>
+        <description>IBM ThinkPad 560Z/600/600E/A22E</description>
+        <vendor>Lenovo (previously IBM)</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>thinkpad60</name>
+        <description>IBM ThinkPad R60/T60/R61/T61</description>
+        <vendor>Lenovo (previously IBM)</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>thinkpadz60</name>
+        <description>IBM ThinkPad Z60m/Z60t/Z61m/Z61t</description>
+        <vendor>Lenovo (previously IBM)</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>ibm_spacesaver</name>
+        <description>IBM Space Saver</description>
+        <vendor>Lenovo (previously IBM)</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiaccess</name>
+        <description>Logitech Access</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiclx300</name>
+        <description>Logitech Cordless Desktop LX-300</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logii350</name>
+        <description>Logitech Internet 350</description>
+        <vendor>Logitech</vendor>
+        <hwList> <hwId>046d:c313</hwId></hwList>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logimel</name>
+        <description>Logitech Internet 350</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicd</name>
+        <description>Logitech Cordless Desktop</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicd_it</name>
+        <description>Logitech Cordless Desktop iTouch</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicd_nav</name>
+        <description>Logitech Cordless Desktop Navigator</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicd_opt</name>
+        <description>Logitech Cordless Desktop Optical</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicda</name>
+        <description>Logitech Cordless Desktop (alt.)</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicdpa2</name>
+        <description>Logitech Cordless Desktop Pro (2nd alt.)</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicfn</name>
+        <description>Logitech Cordless Freedom/Desktop Navigator</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicdn</name>
+        <description>Logitech Cordless Desktop Navigator</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiitc</name>
+        <description>Logitech iTouch Cordless Y-RB6</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiik</name>
+        <description>Logitech Internet</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>itouch</name>
+        <description>Logitech iTouch</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicink</name>
+        <description>Logitech Internet Navigator</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiex110</name>
+        <description>Logitech Cordless Desktop EX110</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiinkse</name>
+        <description>Logitech iTouch Internet Navigator SE</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiinkseusb</name>
+        <description>Logitech iTouch Internet Navigator SE USB</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiultrax</name>
+        <description>Logitech Ultra-X</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiultraxc</name>
+        <description>Logitech Ultra-X Cordless Media Desktop</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logidinovo</name>
+        <description>Logitech diNovo</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logidinovoedge</name>
+        <description>Logitech diNovo Edge</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>mx1998</name>
+        <description>Memorex MX1998</description>
+        <vendor>Memorex</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>mx2500</name>
+        <description>Memorex MX2500 EZ-Access</description>
+        <vendor>Memorex</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>mx2750</name>
+        <description>Memorex MX2750</description>
+        <vendor>Memorex</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoft4000</name>
+        <description>Microsoft Natural Ergonomic 4000</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoft7000</name>
+        <description>Microsoft Natural Wireless Ergonomic 7000</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftinet</name>
+        <description>Microsoft Internet</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftpro</name>
+        <description>Microsoft Natural Pro/Internet Pro</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftprousb</name>
+        <description>Microsoft Natural Pro USB/Internet Pro</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftprooem</name>
+        <description>Microsoft Natural Pro OEM</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>vsonku306</name>
+        <description>ViewSonic KU-306 Internet</description>
+        <vendor>ViewSonic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftprose</name>
+        <description>Microsoft Internet Pro (Swedish)</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftoffice</name>
+        <description>Microsoft Office Keyboard</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftmult</name>
+        <description>Microsoft Wireless Multimedia 1.0A</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftsurface</name>
+        <description>Microsoft Surface</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftelite</name>
+        <description>Microsoft Natural Elite</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftccurve2k</name>
+        <description>Microsoft Comfort Curve 2000</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>oretec</name>
+        <description>Ortek Multimedia/Internet MCK-800</description>
+        <vendor>Ortek</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>propeller</name>
+        <description>Propeller Voyager KTEZ-1000</description>
+        <vendor>KeyTronic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>qtronix</name>
+        <description>QTronix Scorpius 98N+</description>
+        <vendor>QTronix</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>samsung4500</name>
+        <description>Samsung SDM 4500P</description>
+        <vendor>Samsung</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>samsung4510</name>
+        <description>Samsung SDM 4510P</description>
+        <vendor>Samsung</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sanwaskbkg3</name>
+        <description>Sanwa Supply SKB-KG3</description>
+        <vendor>Sanwa Supply Inc.</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sk1300</name>
+        <description>NEC SK-1300</description>
+        <vendor>NEC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sk2500</name>
+        <description>NEC SK-2500</description>
+        <vendor>NEC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sk6200</name>
+        <description>NEC SK-6200</description>
+        <vendor>NEC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sk7100</name>
+        <description>NEC SK-7100</description>
+        <vendor>NEC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sp_inet</name>
+        <description>Super Power Multimedia</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sven</name>
+        <description>SVEN Ergonomic 2500</description>
+        <vendor>SVEN</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sven303</name>
+        <description>SVEN Slim 303</description>
+        <vendor>SVEN</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>symplon</name>
+        <description>Symplon PaceBook tablet</description>
+        <vendor>Symplon</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>toshiba_s3000</name>
+        <description>Toshiba Satellite S3000</description>
+        <vendor>Toshiba</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>trust</name>
+        <description>Trust Wireless Classic</description>
+        <vendor>Trust</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>trustda</name>
+        <description>Trust Direct Access</description>
+        <vendor>Trust</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>trust_slimline</name>
+        <description>Trust Slimline</description>
+        <vendor>Trust</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>tm2020</name>
+        <description>TypeMatrix EZ-Reach 2020</description>
+        <vendor>TypeMatrix</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>tm2030PS2</name>
+        <description>TypeMatrix EZ-Reach 2030 PS2</description>
+        <vendor>TypeMatrix</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>tm2030USB</name>
+        <description>TypeMatrix EZ-Reach 2030 USB</description>
+        <vendor>TypeMatrix</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>tm2030USB-102</name>
+        <description>TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)</description>
+        <vendor>TypeMatrix</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>tm2030USB-106</name>
+        <description>TypeMatrix EZ-Reach 2030 USB (106:JP mode)</description>
+        <vendor>TypeMatrix</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>yahoo</name>
+        <description>Yahoo! Internet</description>
+        <vendor>Yahoo!</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>macbook78</name>
+        <description>MacBook/MacBook Pro</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>macbook79</name>
+        <description>MacBook/MacBook Pro (intl.)</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>macintosh</name>
+        <description>Macintosh</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>macintosh_old</name>
+        <description>Macintosh Old</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>macintosh_hhk</name>
+        <description>Happy Hacking for Mac</description>
+        <vendor>Fujitsu</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>acer_c300</name>
+        <description>Acer C300</description>
+        <vendor>Acer</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>acer_ferrari4k</name>
+        <description>Acer Ferrari 4000</description>
+        <vendor>Acer</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>acer_laptop</name>
+        <description>Acer laptop</description>
+        <vendor>Acer</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>asus_laptop</name>
+        <description>Asus laptop</description>
+        <vendor>Asus</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>apple</name>
+        <description>Apple</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>apple_laptop</name>
+        <description>Apple laptop</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>applealu_ansi</name>
+        <description>Apple Aluminium (ANSI)</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>applealu_iso</name>
+        <description>Apple Aluminium (ISO)</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>applealu_jis</name>
+        <description>Apple Aluminium (JIS)</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>silvercrest</name>
+        <description>Silvercrest Multimedia Wireless</description>
+        <vendor>Silvercrest</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>emachines</name>
+        <description>eMachines m6800 laptop</description>
+        <vendor>eMachines</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>benqx</name>
+        <description>BenQ X-Touch</description>
+        <vendor>BenQ</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>benqx730</name>
+        <description>BenQ X-Touch 730</description>
+        <vendor>BenQ</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>benqx800</name>
+        <description>BenQ X-Touch 800</description>
+        <vendor>BenQ</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hhk</name>
+        <description>Happy Hacking</description>
+        <vendor>Fujitsu</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>classmate</name>
+        <description>Classmate PC</description>
+        <vendor>Intel</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>olpc</name>
+        <description>OLPC</description>
+        <vendor>OLPC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type7_usb</name>
+        <description>Sun Type 7 USB</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type7_euro_usb</name>
+        <description>Sun Type 7 USB (European)</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type7_unix_usb</name>
+        <description>Sun Type 7 USB (Unix)</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type7_jp_usb</name>
+        <description>Sun Type 7 USB (Japanese)/Japanese 106-key</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type6_usb</name>
+        <description>Sun Type 6/7 USB</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type6_euro_usb</name>
+        <description>Sun Type 6/7 USB (European)</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type6_unix_usb</name>
+        <description>Sun Type 6 USB (Unix)</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type6_jp_usb</name>
+        <description>Sun Type 6 USB (Japanese)</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type6_jp</name>
+        <description>Sun Type 6 (Japanese)</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>targa_v811</name>
+        <description>Targa Visionary 811</description>
+        <vendor>Targa</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>unitekkb1925</name>
+        <description>Unitek KB-1925</description>
+        <vendor>Unitek Group</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>compalfl90</name>
+        <description>FL90</description>
+        <vendor>Compal Electronics</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>creativedw7000</name>
+        <description>Creative Desktop Wireless 7000</description>
+        <vendor>Creative</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+       <name>teck227</name>
+       <description>Truly Ergonomic 227</description>
+       <vendor>Truly Ergonomic</vendor>
+     </configItem>
+    </model>
+    <model>
+      <configItem>
+       <name>teck229</name>
+       <description>Truly Ergonomic 229</description>
+       <vendor>Truly Ergonomic</vendor>
+     </configItem>
+    </model>
+    <model>
+      <configItem>
+       <name>apex300</name>
+       <description>SteelSeries Apex 300 (Apex RAW)</description>
+       <vendor>SteelSeries</vendor>
+     </configItem>
+    </model>
+    <model>
+      <configItem>
+       <name>chromebook</name>
+       <description>Chromebook</description>
+       <vendor>Google</vendor>
+     </configItem>
+    </model>
+    <model>
+      <configItem>
+       <name>teck227</name>
+       <description>Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys)</description>
+       <vendor>Megawin Technology</vendor>
+     </configItem>
+    </model>
+    <model>
+      <configItem>
+       <name>teck229</name>
+       <description>Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key)</description>
+       <vendor>Megawin Technology</vendor>
+     </configItem>
+    </model>
+  </modelList>
+  <layoutList>
+    <layout>
+      <configItem>
+        <name>us</name>
+        <!-- Keyboard indicator for English layouts -->
+        <shortDescription>en</shortDescription>
+        <description>English (US)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>chr</name>
+            <!-- Keyboard indicator for Cherokee layouts -->
+            <shortDescription>chr</shortDescription>
+            <description>Cherokee</description>
+            <languageList>
+              <iso639Id>chr</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>euro</name>
+            <description>English (US, euro on 5)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>intl</name>
+            <description>English (US, intl., with dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>alt-intl</name>
+            <description>English (US, alt. intl.)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak</name>
+            <description>English (Colemak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>English (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-intl</name>
+            <description>English (Dvorak, intl., with dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-alt-intl</name>
+            <description>English (Dvorak, alt. intl.)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-l</name>
+            <description>English (Dvorak, left-handed)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-r</name>
+            <description>English (Dvorak, right-handed)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-classic</name>
+            <description>English (classic Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvp</name>
+            <description>English (programmer Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rus</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (US, phonetic)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>English (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>altgr-intl</name>
+            <description>English (intl., with AltGr dead keys)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+              <iso639Id>fra</iso639Id>
+              <iso639Id>deu</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>olpc2</name>
+            <description>English (the divide/multiply keys toggle the layout)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>hbs</name>
+            <description>Serbo-Croatian (US)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+              <iso639Id>bos</iso639Id>
+              <iso639Id>hbs</iso639Id>
+              <iso639Id>hrv</iso639Id>
+              <iso639Id>srp</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>norman</name>
+            <description>English (Norman)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>workman</name>
+            <description>English (Workman)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>workman-intl</name>
+            <description>English (Workman, intl., with dead keys)</description>
+           </configItem>
+         </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>af</name>
+        <!-- Keyboard indicator for Afghani layouts -->
+        <shortDescription>fa</shortDescription>
+        <description>Afghani</description>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>ps</name>
+            <!-- Keyboard indicator for Pashto layouts -->
+            <shortDescription>ps</shortDescription>
+            <description>Pashto</description>
+            <languageList>
+              <iso639Id>pus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>uz</name>
+            <!-- Keyboard indicator for Uzbek layouts -->
+            <shortDescription>uz</shortDescription>
+            <description>Uzbek (Afghanistan)</description>
+            <languageList>
+              <iso639Id>uzb</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>olpc-ps</name>
+            <!-- Keyboard indicator for Pashto layouts -->
+            <shortDescription>ps</shortDescription>
+            <description>Pashto (Afghanistan, OLPC)</description>
+            <languageList>
+              <iso639Id>pus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fa-olpc</name>
+            <!-- Keyboard indicator for Persian layouts -->
+            <shortDescription>fa</shortDescription>
+            <description>Persian (Afghanistan, Dari OLPC)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>uz-olpc</name>
+            <!-- Keyboard indicator for Uzbek layouts -->
+            <shortDescription>uz</shortDescription>
+            <description>Uzbek (Afghanistan, OLPC)</description>
+            <languageList>
+              <iso639Id>uzb</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ara</name>
+        <!-- Keyboard indicator for Arabic layouts -->
+        <shortDescription>ar</shortDescription>
+        <description>Arabic</description>
+        <countryList>
+          <iso3166Id>AE</iso3166Id>
+          <iso3166Id>BH</iso3166Id>
+          <iso3166Id>DZ</iso3166Id>
+          <iso3166Id>EG</iso3166Id>
+          <iso3166Id>EH</iso3166Id>
+          <iso3166Id>JO</iso3166Id>
+          <iso3166Id>KW</iso3166Id>
+          <iso3166Id>LB</iso3166Id>
+          <iso3166Id>LY</iso3166Id>
+          <iso3166Id>MA</iso3166Id>
+          <iso3166Id>MR</iso3166Id>
+          <iso3166Id>OM</iso3166Id>
+          <iso3166Id>PS</iso3166Id>
+          <iso3166Id>QA</iso3166Id>
+          <iso3166Id>SA</iso3166Id>
+          <iso3166Id>SD</iso3166Id>
+          <iso3166Id>SY</iso3166Id>
+          <iso3166Id>TN</iso3166Id>
+          <iso3166Id>YE</iso3166Id>
+        </countryList>
+        <languageList>
+          <iso639Id>ara</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>azerty</name>
+            <description>Arabic (AZERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>azerty_digits</name>
+            <description>Arabic (AZERTY/digits)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>digits</name>
+            <description>Arabic (digits)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty</name>
+            <description>Arabic (QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty_digits</name>
+            <description>Arabic (qwerty/digits)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>buckwalter</name>
+            <description>Arabic (Buckwalter)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>olpc</name>
+            <description>Arabic (OLPC)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Arabic (Macintosh)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>al</name>
+        <!-- Keyboard indicator for Albanian layouts -->
+        <shortDescription>sq</shortDescription>
+        <description>Albanian</description>
+        <languageList>
+          <iso639Id>sqi</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>plisi</name>
+            <description>Albanian (Plisi)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>veqilharxhi</name>
+            <description>Albanian (Veqilharxhi)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>am</name>
+        <!-- Keyboard indicator for Armenian layouts -->
+        <shortDescription>hy</shortDescription>
+        <description>Armenian</description>
+        <languageList>
+          <iso639Id>hye</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>phonetic</name>
+            <description>Armenian (phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic-alt</name>
+            <description>Armenian (alt. phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>eastern</name>
+            <description>Armenian (eastern)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>western</name>
+            <description>Armenian (western)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>eastern-alt</name>
+            <description>Armenian (alt. eastern)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>at</name>
+        <!-- Keyboard indicator for German layouts -->
+        <shortDescription>de</shortDescription>
+        <description>German (Austria)</description>
+        <languageList>
+          <iso639Id>deu</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>German (Austria, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>German (Austria, with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>German (Austria, Macintosh)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>au</name>
+        <!-- Keyboard indicator for Australian layouts -->
+        <shortDescription>en</shortDescription>
+        <description>English (Australian)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>az</name>
+        <!-- Keyboard indicator for Azerbaijani layouts -->
+        <shortDescription>az</shortDescription>
+        <description>Azerbaijani</description>
+        <languageList>
+          <iso639Id>aze</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>cyrillic</name>
+            <description>Azerbaijani (Cyrillic)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>by</name>
+        <!-- Keyboard indicator for Belarusian layouts -->
+        <shortDescription>by</shortDescription>
+        <description>Belarusian</description>
+        <languageList>
+          <iso639Id>bel</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>Belarusian (legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latin</name>
+            <description>Belarusian (Latin)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>be</name>
+        <!-- Keyboard indicator for Belgian layouts -->
+        <shortDescription>be</shortDescription>
+        <description>Belgian</description>
+        <languageList>
+          <iso639Id>deu</iso639Id>
+          <iso639Id>nld</iso639Id>
+          <iso639Id>fra</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>oss</name>
+            <description>Belgian (alt.)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oss_latin9</name>
+            <description>Belgian (alt., Latin-9 only)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oss_sundeadkeys</name>
+            <description>Belgian (alt., with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>iso-alternate</name>
+            <description>Belgian (alt. ISO)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Belgian (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>Belgian (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>wang</name>
+            <description>Belgian (Wang 724 AZERTY)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>bd</name>
+        <!-- Keyboard indicator for Bangla layouts -->
+        <shortDescription>bn</shortDescription>
+        <description>Bangla</description>
+        <languageList>
+          <iso639Id>ben</iso639Id>
+          <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+          <iso639Id>sat</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>probhat</name>
+            <description>Bangla (Probhat)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>in</name>
+        <!-- Keyboard indicator for Indian layouts -->
+        <shortDescription>in</shortDescription>
+        <description>Indian</description>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>ben</name>
+            <!-- Keyboard indicator for Bangla layouts -->
+            <shortDescription>bn</shortDescription>
+            <description>Bangla (India)</description>
+            <languageList>
+              <iso639Id>ben</iso639Id>
+              <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ben_probhat</name>
+            <!-- Keyboard indicator for Bangla layouts -->
+            <shortDescription>bn</shortDescription>
+            <description>Bangla (India, Probhat)</description>
+            <languageList>
+              <iso639Id>ben</iso639Id>
+              <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ben_baishakhi</name>
+            <description>Bangla (India, Baishakhi)</description>
+            <languageList>
+              <iso639Id>ben</iso639Id>
+              <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ben_bornona</name>
+            <description>Bangla (India, Bornona)</description>
+            <languageList>
+              <iso639Id>ben</iso639Id>
+              <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+         <variant>
+          <configItem>
+            <name>ben_gitanjali</name>
+            <description>Bangla (India, Uni Gitanjali)</description>
+            <languageList>
+              <iso639Id>ben</iso639Id>
+              <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ben_inscript</name>
+            <description>Bangla (India, Baishakhi Inscript)</description>
+            <languageList>
+              <iso639Id>ben</iso639Id>
+              <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>eeyek</name>
+            <description>Manipuri (Eeyek)</description>
+            <languageList>
+              <iso639Id>mni</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>guj</name>
+            <!-- Keyboard indicator for Gujarati layouts -->
+            <shortDescription>gu</shortDescription>
+            <description>Gujarati</description>
+            <languageList>
+              <iso639Id>guj</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>guru</name>
+            <!-- Keyboard indicator for Punjabi layouts -->
+            <shortDescription>pa</shortDescription>
+            <description>Punjabi (Gurmukhi)</description>
+            <languageList>
+              <iso639Id>pan</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>jhelum</name>
+            <!-- Keyboard indicator for Punjabi layouts -->
+            <shortDescription>pa</shortDescription>
+            <description>Punjabi (Gurmukhi Jhelum)</description>
+            <languageList>
+              <iso639Id>pan</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>kan</name>
+            <!-- Keyboard indicator for Kannada layouts -->
+            <shortDescription>kn</shortDescription>
+            <description>Kannada</description>
+            <languageList>
+              <iso639Id>kan</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>kan-kagapa</name>
+            <!-- Keyboard indicator for Kannada layouts -->
+            <shortDescription>kn</shortDescription>
+            <description>Kannada (KaGaPa phonetic)</description>
+            <languageList>
+              <iso639Id>kan</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mal</name>
+            <!-- Keyboard indicator for Malayalam layouts -->
+            <shortDescription>ml</shortDescription>
+            <description>Malayalam</description>
+            <languageList>
+              <iso639Id>mal</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mal_lalitha</name>
+            <!-- Keyboard indicator for Malayalam layouts -->
+            <shortDescription>ml</shortDescription>
+            <description>Malayalam (Lalitha)</description>
+            <languageList>
+              <iso639Id>mal</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mal_enhanced</name>
+            <!-- Keyboard indicator for Malayalam layouts -->
+            <shortDescription>ml</shortDescription>
+            <description>Malayalam (enhanced Inscript, with rupee)</description>
+            <languageList>
+              <iso639Id>mal</iso639Id>
+            </languageList>
+          </configItem>
+         </variant>
+         <variant>
+           <configItem>
+            <name>ori</name>
+            <!-- Keyboard indicator for Oriya layouts -->
+            <shortDescription>or</shortDescription>
+            <description>Oriya</description>
+            <languageList>
+              <iso639Id>ori</iso639Id>
+              <!-- sat-Orya: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+           <configItem>
+            <name>olck</name>
+            <!-- Keyboard indicator for Ol Chiki layouts -->
+            <shortDescription>sat</shortDescription>
+            <description>Ol Chiki</description>
+            <languageList>
+              <!-- sat-Olck: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tam_tamilnet</name>
+            <!-- Keyboard indicator for Tamil layouts -->
+            <shortDescription>ta</shortDescription>
+            <description>Tamil (TamilNet '99)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tam_tamilnet_with_tam_nums</name>
+            <!-- Keyboard indicator for Tamil layouts -->
+            <shortDescription>ta</shortDescription>
+            <description>Tamil (TamilNet '99 with Tamil numerals)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tam_tamilnet_TAB</name>
+            <!-- Keyboard indicator for Tamil layouts -->
+            <shortDescription>ta</shortDescription>
+            <description>Tamil (TamilNet '99, TAB encoding)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tam_tamilnet_TSCII</name>
+            <!-- Keyboard indicator for Tamil layouts -->
+            <shortDescription>ta</shortDescription>
+            <description>Tamil (TamilNet '99, TSCII encoding)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tam</name>
+            <!-- Keyboard indicator for Tamil layouts -->
+            <shortDescription>ta</shortDescription>
+            <description>Tamil (Inscript)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tel</name>
+            <!-- Keyboard indicator for Telugu layouts -->
+            <shortDescription>te</shortDescription>
+            <description>Telugu</description>
+            <languageList>
+              <iso639Id>tel</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tel-kagapa</name>
+            <!-- Keyboard indicator for Telugu layouts -->
+            <shortDescription>te</shortDescription>
+            <description>Telugu (KaGaPa phonetic)</description>
+            <languageList>
+              <iso639Id>tel</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tel-sarala</name>
+            <!-- Keyboard indicator for Telugu layouts -->
+            <shortDescription>te</shortDescription>
+            <description>Telugu (Sarala)</description>
+            <languageList>
+              <iso639Id>tel</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tel-kagapa</name>
+            <!-- Keyboard indicator for Telugu layouts -->
+            <shortDescription>te</shortDescription>
+            <description>Telugu (KaGaPa phonetic)</description>
+            <languageList>
+              <iso639Id>tel</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>urd-phonetic</name>
+            <!-- Keyboard indicator for Urdu layouts -->
+            <shortDescription>ur</shortDescription>
+            <description>Urdu (phonetic)</description>
+            <languageList>
+              <iso639Id>urd</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>urd-phonetic3</name>
+            <!-- Keyboard indicator for Urdu layouts -->
+            <shortDescription>ur</shortDescription>
+            <description>Urdu (alt. phonetic)</description>
+            <languageList>
+              <iso639Id>urd</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>urd-winkeys</name>
+            <!-- Keyboard indicator for Urdu layouts -->
+            <shortDescription>ur</shortDescription>
+            <description>Urdu (Win keys)</description>
+            <languageList>
+              <iso639Id>urd</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bolnagri</name>
+            <!-- Keyboard indicator for Hindi layouts -->
+            <shortDescription>hi</shortDescription>
+            <description>Hindi (Bolnagri)</description>
+            <languageList>
+              <iso639Id>hin</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>hin-wx</name>
+            <!-- Keyboard indicator for Hindi layouts -->
+            <shortDescription>hi</shortDescription>
+            <description>Hindi (Wx)</description>
+            <languageList>
+              <iso639Id>hin</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>hin-kagapa</name>
+            <!-- Keyboard indicator for Hindi layouts -->
+            <shortDescription>hi</shortDescription>
+            <description>Hindi (KaGaPa phonetic)</description>
+            <languageList>
+              <iso639Id>hin</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>san-kagapa</name>
+            <!-- Keyboard indicator for Sanskrit layouts -->
+            <shortDescription>sa</shortDescription>
+            <description>Sanskrit (KaGaPa phonetic)</description>
+            <languageList>
+              <iso639Id>san</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mar-kagapa</name>
+            <!-- Keyboard indicator for Marathi layouts -->
+            <shortDescription>mr</shortDescription>
+            <description>Marathi (KaGaPa phonetic)</description>
+            <languageList>
+              <iso639Id>mar</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>eng</name>
+            <!-- Keyboard indicator for English layouts -->
+            <shortDescription>en</shortDescription>
+            <description>English (India, with rupee)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ba</name>
+        <!-- Keyboard indicator for Bosnian layouts -->
+        <shortDescription>bs</shortDescription>
+        <description>Bosnian</description>
+        <languageList>
+          <iso639Id>bos</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>alternatequotes</name>
+            <description>Bosnian (with guillemets)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>unicode</name>
+            <description>Bosnian (with Bosnian digraphs)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>unicodeus</name>
+            <description>Bosnian (US, with Bosnian digraphs)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Bosnian (US, with Bosnian letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>br</name>
+        <!-- Keyboard indicator for Portuguese layouts -->
+        <shortDescription>pt</shortDescription>
+        <description>Portuguese (Brazil)</description>
+        <languageList>
+          <iso639Id>por</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Portuguese (Brazil, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Portuguese (Brazil, Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nativo</name>
+            <description>Portuguese (Brazil, Nativo)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nativo-us</name>
+            <description>Portuguese (Brazil, Nativo for US keyboards)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nativo-epo</name>
+            <description>Esperanto (Brazil, Nativo)</description>
+            <languageList>
+              <iso639Id>epo</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>thinkpad</name>
+            <description>Portuguese (Brazil, IBM/Lenovo ThinkPad)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>bg</name>
+        <!-- Keyboard indicator for Bulgarian layouts -->
+        <shortDescription>bg</shortDescription>
+        <description>Bulgarian</description>
+        <languageList>
+          <iso639Id>bul</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>phonetic</name>
+            <description>Bulgarian (traditional phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bas_phonetic</name>
+            <description>Bulgarian (new phonetic)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>dz</name>
+        <shortDescription>la</shortDescription>
+        <description>Berber (Algeria, Latin)</description>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>ber</name>
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Algeria, Tifinagh)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ar</name>
+            <shortDescription>ar</shortDescription>
+            <description>Arabic (Algeria)</description>
+            <languageList>
+              <iso639Id>ara</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ma</name>
+        <!-- Keyboard indicator for Arabic layouts -->
+        <shortDescription>ar</shortDescription>
+        <description>Arabic (Morocco)</description>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>french</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Morocco)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tifinagh</name>
+            <!-- Keyboard indicator for Berber layouts -->
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Morocco, Tifinagh)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tifinagh-alt</name>
+            <!-- Keyboard indicator for Berber layouts -->
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Morocco, Tifinagh alt.)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tifinagh-alt-phonetic</name>
+            <!-- Keyboard indicator for Berber layouts -->
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Morocco, Tifinagh alt. phonetic)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tifinagh-extended</name>
+            <!-- Keyboard indicator for Berber layouts -->
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Morocco, Tifinagh extended)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tifinagh-phonetic</name>
+            <!-- Keyboard indicator for Berber layouts -->
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Morocco, Tifinagh phonetic)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tifinagh-extended-phonetic</name>
+            <!-- Keyboard indicator for Berber layouts -->
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Morocco, Tifinagh extended phonetic)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>cm</name>
+        <!-- Keyboard indicator for Cameroon layouts -->
+        <shortDescription>cm</shortDescription>
+        <description>English (Cameroon)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>french</name>
+            <description>French (Cameroon)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty</name>
+            <description>Cameroon Multilingual (QWERTY)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+              <iso639Id>bas</iso639Id>
+              <iso639Id>nmg</iso639Id>
+              <iso639Id>fub</iso639Id>
+              <iso639Id>ewo</iso639Id>
+              <iso639Id>xmd</iso639Id>
+              <iso639Id>mfh</iso639Id>
+              <iso639Id>bkm</iso639Id>
+              <iso639Id>ozm</iso639Id>
+              <iso639Id>lns</iso639Id>
+              <iso639Id>sox</iso639Id>
+              <iso639Id>pny</iso639Id>
+              <iso639Id>wes</iso639Id>
+              <iso639Id>lem</iso639Id>
+              <iso639Id>nyj</iso639Id>
+              <iso639Id>mfk</iso639Id>
+              <iso639Id>mcp</iso639Id>
+              <iso639Id>ass</iso639Id>
+              <iso639Id>xed</iso639Id>
+              <iso639Id>dua</iso639Id>
+              <iso639Id>anv</iso639Id>
+              <iso639Id>bum</iso639Id>
+              <iso639Id>btb</iso639Id>
+              <iso639Id>bfd</iso639Id>
+              <iso639Id>azo</iso639Id>
+              <iso639Id>ken</iso639Id>
+              <iso639Id>yam</iso639Id>
+              <iso639Id>yat</iso639Id>
+              <iso639Id>yas</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>azerty</name>
+            <description>Cameroon Multilingual (AZERTY)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+              <iso639Id>bas</iso639Id>
+              <iso639Id>nmg</iso639Id>
+              <iso639Id>fub</iso639Id>
+              <iso639Id>ewo</iso639Id>
+              <iso639Id>xmd</iso639Id>
+              <iso639Id>mfh</iso639Id>
+              <iso639Id>bkm</iso639Id>
+              <iso639Id>ozm</iso639Id>
+              <iso639Id>lns</iso639Id>
+              <iso639Id>sox</iso639Id>
+              <iso639Id>pny</iso639Id>
+              <iso639Id>wes</iso639Id>
+              <iso639Id>lem</iso639Id>
+              <iso639Id>nyj</iso639Id>
+              <iso639Id>mfk</iso639Id>
+              <iso639Id>mcp</iso639Id>
+              <iso639Id>ass</iso639Id>
+              <iso639Id>xed</iso639Id>
+              <iso639Id>dua</iso639Id>
+              <iso639Id>anv</iso639Id>
+              <iso639Id>bum</iso639Id>
+              <iso639Id>btb</iso639Id>
+              <iso639Id>bfd</iso639Id>
+              <iso639Id>azo</iso639Id>
+              <iso639Id>ken</iso639Id>
+              <iso639Id>yam</iso639Id>
+              <iso639Id>yat</iso639Id>
+              <iso639Id>yas</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Cameroon Multilingual (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mmuock</name>
+            <description>Mmuock</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>mm</name>
+        <!-- Keyboard indicator for Burmese layouts -->
+        <shortDescription>my</shortDescription>
+        <description>Burmese</description>
+        <languageList>
+          <iso639Id>mya</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>zawgyi</name>
+            <shortDescription>zg</shortDescription>
+            <description>Burmese Zawgyi</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ca</name>
+        <!-- Keyboard indicator for French layouts -->
+        <shortDescription>fr</shortDescription>
+        <description>French (Canada)</description>
+        <languageList>
+          <iso639Id>fra</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>fr-dvorak</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Canada, Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fr-legacy</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Canada, legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>multix</name>
+            <description>Canadian Multilingual</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>multi</name>
+            <description>Canadian Multilingual (1st part)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>multi-2gr</name>
+            <description>Canadian Multilingual (2nd part)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ike</name>
+            <!-- Keyboard indicator for Inuktikut layouts -->
+            <shortDescription>ike</shortDescription>
+            <description>Inuktitut</description>
+            <languageList>
+              <iso639Id>iku</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>eng</name>
+            <!-- Keyboard indicator for English layouts -->
+            <shortDescription>en</shortDescription>
+            <description>English (Canada)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>cd</name>
+        <!-- Keyboard indicator for French layouts -->
+        <shortDescription>fr</shortDescription>
+        <description>French (Democratic Republic of the Congo)</description>
+        <languageList>
+          <iso639Id>fra</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>cn</name>
+        <!-- Keyboard indicator for Chinese layouts -->
+        <shortDescription>zh</shortDescription>
+        <description>Chinese</description>
+        <languageList>
+          <iso639Id>zho</iso639Id>
+        </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>
+            <description>Tibetan</description>
+            <languageList>
+              <iso639Id>tib</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tib_asciinum</name>
+            <description>Tibetan (with ASCII numerals)</description>
+            <languageList>
+              <iso639Id>tib</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ug</name>
+            <shortDescription>ug</shortDescription>
+            <description>Uyghur</description>
+            <languageList>
+              <iso639Id>uig</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>altgr-pinyin</name>
+            <description>Hanyu Pinyin (altgr)</description>
+            <languageList>
+              <iso639Id>zho</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>hr</name>
+        <!-- Keyboard indicator for Croatian layouts -->
+        <shortDescription>hr</shortDescription>
+        <description>Croatian</description>
+        <languageList>
+          <iso639Id>hrv</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>alternatequotes</name>
+            <description>Croatian (with guillemets)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>unicode</name>
+            <description>Croatian (with Croatian digraphs)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>unicodeus</name>
+            <description>Croatian (US, with Croatian digraphs)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Croatian (US, with Croatian letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>cz</name>
+        <!-- Keyboard indicator for Chech layouts -->
+        <shortDescription>cs</shortDescription>
+        <description>Czech</description>
+        <languageList>
+          <iso639Id>ces</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>bksl</name>
+            <description>Czech (with &lt;\|&gt; key)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty</name>
+            <description>Czech (QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty_bksl</name>
+            <description>Czech (QWERTY, extended backslash)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty-mac</name>
+            <description>Czech (QWERTY, Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ucw</name>
+            <description>Czech (UCW, only accented letters)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-ucw</name>
+            <description>Czech (US, Dvorak, UCW support)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rus</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Czech, phonetic)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>dk</name>
+        <!-- Keyboard indicator for Danish layouts -->
+        <shortDescription>da</shortDescription>
+        <description>Danish</description>
+        <languageList>
+          <iso639Id>dan</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Danish (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Danish (Win keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Danish (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_nodeadkeys</name>
+            <description>Danish (Macintosh, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Danish (Dvorak)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>nl</name>
+        <!-- Keyboard indicator for Dutch layouts -->
+        <shortDescription>nl</shortDescription>
+        <description>Dutch</description>
+        <languageList>
+          <iso639Id>nld</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>Dutch (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Dutch (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>std</name>
+            <description>Dutch (standard)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>bt</name>
+        <!-- Keyboard indicator for Dzongkha layouts -->
+        <shortDescription>dz</shortDescription>
+        <description>Dzongkha</description>
+        <languageList>
+          <iso639Id>dzo</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ee</name>
+        <!-- Keyboard indicator for Estonian layouts -->
+        <shortDescription>et</shortDescription>
+        <description>Estonian</description>
+        <languageList>
+          <iso639Id>est</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Estonian (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Estonian (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Estonian (US, with Estonian letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ir</name>
+        <!-- Keyboard indicator for Persian layouts -->
+        <shortDescription>fa</shortDescription>
+        <description>Persian</description>
+        <languageList>
+          <iso639Id>fas</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>pes_keypad</name>
+            <description>Persian (with Persian keypad)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iran, Latin Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_f</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iran, F)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_alt</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iran, Latin Alt-Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_ara</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iran, Arabic-Latin)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>iq</name>
+        <!-- Keyboard indicator for Iraqi layouts -->
+        <shortDescription>ar</shortDescription>
+        <description>Iraqi</description>
+        <languageList>
+          <iso639Id>ara</iso639Id>
+          <iso639Id>kur</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>ku</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iraq, Latin Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_f</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iraq, F)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_alt</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iraq, Latin Alt-Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_ara</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iraq, Arabic-Latin)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>fo</name>
+        <!-- Keyboard indicator for Faroese layouts -->
+        <shortDescription>fo</shortDescription>
+        <description>Faroese</description>
+        <languageList>
+          <iso639Id>fao</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Faroese (no dead keys)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>fi</name>
+        <!-- Keyboard indicator for Finnish layouts -->
+        <shortDescription>fi</shortDescription>
+        <description>Finnish</description>
+        <languageList>
+          <iso639Id>fin</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Finnish (Winkeys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>classic</name>
+            <description>Finnish (classic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Finnish (classic, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>smi</name>
+            <description>Northern Saami (Finland)</description>
+            <languageList>
+              <iso639Id>sme</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Finnish (Macintosh)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>fr</name>
+        <!-- Keyboard indicator for French layouts -->
+        <shortDescription>fr</shortDescription>
+        <description>French</description>
+        <languageList>
+          <iso639Id>fra</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>French (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>French (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oss</name>
+            <description>French (alt.)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oss_latin9</name>
+            <description>French (alt., Latin-9 only)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oss_nodeadkeys</name>
+            <description>French (alt., no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oss_sundeadkeys</name>
+            <description>French (alt., with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latin9</name>
+            <description>French (legacy, alt.)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latin9_nodeadkeys</name>
+            <description>French (legacy, alt., no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latin9_sundeadkeys</name>
+            <description>French (legacy, alt., with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bepo</name>
+            <description>French (Bepo, ergonomic, Dvorak way)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bepo_latin9</name>
+            <description>French (Bepo, ergonomic, Dvorak way, Latin-9 only)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bepo_afnor</name>
+            <description>French (Bepo, ergonomic, Dvorak way, AFNOR)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>French (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>French (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>azerty</name>
+            <description>French (AZERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>afnor</name>
+            <description>French (AFNOR standardized AZERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bre</name>
+            <description>French (Breton)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oci</name>
+            <description>Occitan</description>
+            <languageList>
+              <iso639Id>oci</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>geo</name>
+            <description>Georgian (France, AZERTY Tskapo)</description>
+            <languageList>
+              <iso639Id>kat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>French (US, with French letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>gh</name>
+        <!-- Keyboard indicator for English layouts -->
+        <shortDescription>en</shortDescription>
+        <description>English (Ghana)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>generic</name>
+            <description>English (Ghana, multilingual)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>akan</name>
+            <!-- Keyboard indicator for Akan layouts -->
+            <shortDescription>ak</shortDescription>
+            <description>Akan</description>
+            <languageList>
+              <iso639Id>aka</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ewe</name>
+            <!-- Keyboard indicator for Ewe layouts -->
+            <shortDescription>ee</shortDescription>
+            <description>Ewe</description>
+            <languageList>
+              <iso639Id>ewe</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fula</name>
+            <!-- Keyboard indicator for Fula layouts -->
+            <shortDescription>ff</shortDescription>
+            <description>Fula</description>
+            <languageList>
+              <iso639Id>ful</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ga</name>
+            <!-- Keyboard indicator for Ga layouts -->
+            <shortDescription>gaa</shortDescription>
+            <description>Ga</description>
+            <languageList>
+              <iso639Id>gaa</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>hausa</name>
+            <!-- Keyboard indicator for Hausa layouts -->
+            <shortDescription>ha</shortDescription>
+            <description>Hausa (Ghana)</description>
+            <languageList>
+              <iso639Id>hau</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>avn</name>
+            <!-- Keyboard indicator for Avatime layouts -->
+            <shortDescription>avn</shortDescription>
+            <description>Avatime</description>
+            <languageList>
+              <iso639Id>avn</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>gillbt</name>
+            <description>English (Ghana, GILLBT)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>gn</name>
+        <!-- Keyboard indicator for French layouts -->
+        <shortDescription>fr</shortDescription>
+        <description>French (Guinea)</description>
+        <languageList>
+          <iso639Id>fra</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ge</name>
+        <!-- Keyboard indicator for Georgian layouts -->
+        <shortDescription>ka</shortDescription>
+        <description>Georgian</description>
+        <languageList>
+          <iso639Id>kat</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>ergonomic</name>
+            <description>Georgian (ergonomic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mess</name>
+            <description>Georgian (MESS)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ru</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Georgia)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>os</name>
+            <description>Ossetian (Georgia)</description>
+            <languageList>
+              <iso639Id>oss</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>de</name>
+        <!-- Keyboard indicator for German layouts -->
+        <shortDescription>de</shortDescription>
+        <description>German</description>
+        <languageList>
+          <iso639Id>deu</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>deadacute</name>
+            <description>German (dead acute)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>deadgraveacute</name>
+            <description>German (dead grave acute)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>German (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>T3</name>
+            <description>German (T3)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ro</name>
+            <description>Romanian (Germany)</description>
+            <languageList>
+              <iso639Id>ron</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ro_nodeadkeys</name>
+            <description>Romanian (Germany, no dead keys)</description>
+            <languageList>
+              <iso639Id>ron</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>German (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>German (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>neo</name>
+            <description>German (Neo 2)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>German (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_nodeadkeys</name>
+            <description>German (Macintosh, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dsb</name>
+            <description>Lower Sorbian</description>
+            <languageList>
+              <iso639Id>dsb</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dsb_qwertz</name>
+            <description>Lower Sorbian (QWERTZ)</description>
+            <languageList>
+              <iso639Id>dsb</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty</name>
+            <description>German (QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tr</name>
+            <description>Turkish (Germany)</description>
+            <languageList>
+              <iso639Id>tr</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ru</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Germany, phonetic)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>deadtilde</name>
+            <description>German (dead tilde)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>gr</name>
+        <!-- Keyboard indicator for Greek layouts -->
+        <shortDescription>gr</shortDescription>
+        <description>Greek</description>
+        <languageList>
+          <iso639Id>ell</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>simple</name>
+            <description>Greek (simple)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>extended</name>
+            <description>Greek (extended)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Greek (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>polytonic</name>
+            <description>Greek (polytonic)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>hu</name>
+        <!-- Keyboard indicator for Hungarian layouts -->
+        <shortDescription>hu</shortDescription>
+        <description>Hungarian</description>
+        <languageList>
+          <iso639Id>hun</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>standard</name>
+            <description>Hungarian (standard)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Hungarian (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty</name>
+            <description>Hungarian (QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwertz_comma_dead</name>
+            <description>Hungarian (101/QWERTZ/comma/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwertz_comma_nodead</name>
+            <description>Hungarian (101/QWERTZ/comma/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwertz_dot_dead</name>
+            <description>Hungarian (101/QWERTZ/dot/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwertz_dot_nodead</name>
+            <description>Hungarian (101/QWERTZ/dot/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwerty_comma_dead</name>
+            <description>Hungarian (101/QWERTY/comma/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwerty_comma_nodead</name>
+            <description>Hungarian (101/QWERTY/comma/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwerty_dot_dead</name>
+            <description>Hungarian (101/QWERTY/dot/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwerty_dot_nodead</name>
+            <description>Hungarian (101/QWERTY/dot/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwertz_comma_dead</name>
+            <description>Hungarian (102/QWERTZ/comma/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwertz_comma_nodead</name>
+            <description>Hungarian (102/QWERTZ/comma/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwertz_dot_dead</name>
+            <description>Hungarian (102/QWERTZ/dot/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwertz_dot_nodead</name>
+            <description>Hungarian (102/QWERTZ/dot/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwerty_comma_dead</name>
+            <description>Hungarian (102/QWERTY/comma/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwerty_comma_nodead</name>
+            <description>Hungarian (102/QWERTY/comma/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwerty_dot_dead</name>
+            <description>Hungarian (102/QWERTY/dot/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwerty_dot_nodead</name>
+            <description>Hungarian (102/QWERTY/dot/no dead keys)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>is</name>
+        <!-- Keyboard indicator for Icelandic layouts -->
+        <shortDescription>is</shortDescription>
+        <description>Icelandic</description>
+        <languageList>
+          <iso639Id>isl</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>Sundeadkeys</name>
+            <description>Icelandic (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Icelandic (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_legacy</name>
+            <description>Icelandic (Macintosh, legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Icelandic (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Icelandic (Dvorak)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>il</name>
+        <!-- Keyboard indicator for Hebrew layouts -->
+        <shortDescription>he</shortDescription>
+        <description>Hebrew</description>
+        <languageList>
+          <iso639Id>heb</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>lyx</name>
+            <description>Hebrew (lyx)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic</name>
+            <description>Hebrew (phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>biblical</name>
+            <description>Hebrew (Biblical, Tiro)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>it</name>
+        <!-- Keyboard indicator for Italian layouts -->
+        <shortDescription>it</shortDescription>
+        <description>Italian</description>
+        <languageList>
+          <iso639Id>ita</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Italian (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Italian (Winkeys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Italian (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Italian (US, with Italian letters)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>geo</name>
+            <description>Georgian (Italy)</description>
+            <languageList>
+              <iso639Id>kat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ibm</name>
+            <description>Italian (IBM 142)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>intl</name>
+            <description>Italian (intl., with dead keys)</description>
+            <languageList>
+              <iso639Id>deu</iso639Id>
+              <iso639Id>fra</iso639Id>
+              <iso639Id>ita</iso639Id>
+              <iso639Id>slk</iso639Id>
+              <iso639Id>srd</iso639Id>
+              <iso639Id>nap</iso639Id>
+              <iso639Id>scn</iso639Id>
+              <iso639Id>fur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>scn</name>
+            <description>Sicilian</description>
+            <languageList>
+              <iso639Id>ita</iso639Id>
+              <iso639Id>scn</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fur</name>
+            <description>Friulian (Italy)</description>
+            <languageList>
+              <iso639Id>fur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>jp</name>
+        <!-- Keyboard indicator for Japaneses -->
+        <shortDescription>ja</shortDescription>
+        <description>Japanese</description>
+        <languageList>
+          <iso639Id>jpn</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>kana</name>
+            <description>Japanese (Kana)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>kana86</name>
+            <description>Japanese (Kana 86)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>OADG109A</name>
+            <description>Japanese (OADG 109A)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Japanese (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Japanese (Dvorak)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>kg</name>
+        <!-- Keyboard indicator for Kyrgyz layouts -->
+        <shortDescription>ki</shortDescription>
+        <description>Kyrgyz</description>
+        <languageList>
+          <iso639Id>kir</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>phonetic</name>
+            <description>Kyrgyz (phonetic)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>kh</name>
+        <!-- Keyboard indicator for Khmer layouts -->
+        <shortDescription>km</shortDescription>
+        <description>Khmer (Cambodia)</description>
+        <languageList>
+          <iso639Id>khm</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>kz</name>
+        <!-- Keyboard indicator for Kazakh layouts -->
+        <shortDescription>kk</shortDescription>
+        <description>Kazakh</description>
+        <languageList>
+          <iso639Id>kaz</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>ruskaz</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Kazakhstan, with Kazakh)</description>
+            <languageList>
+              <iso639Id>kaz</iso639Id>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>kazrus</name>
+            <description>Kazakh (with Russian)</description>
+            <languageList>
+              <iso639Id>kaz</iso639Id>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ext</name>
+            <description>Kazakh (extended)</description>
+            <languageList>
+              <iso639Id>kaz</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latin</name>
+            <description>Kazakh (Latin)</description>
+            <languageList>
+              <iso639Id>kaz</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>la</name>
+        <!-- Keyboard indicator for Lao layouts -->
+        <shortDescription>lo</shortDescription>
+        <description>Lao</description>
+        <languageList>
+          <iso639Id>lao</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>stea</name>
+            <description>Lao (STEA proposed standard layout)</description>
+            <languageList>
+              <iso639Id>lao</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>latam</name>
+        <!-- Keyboard indicator for Spanish layouts -->
+        <shortDescription>es</shortDescription>
+        <description>Spanish (Latin American)</description>
+        <countryList>
+          <iso3166Id>AR</iso3166Id>
+          <iso3166Id>BO</iso3166Id>
+          <iso3166Id>CL</iso3166Id>
+          <iso3166Id>CO</iso3166Id>
+          <iso3166Id>CR</iso3166Id>
+          <iso3166Id>CU</iso3166Id>
+          <iso3166Id>DO</iso3166Id>
+          <iso3166Id>EC</iso3166Id>
+          <iso3166Id>GT</iso3166Id>
+          <iso3166Id>HN</iso3166Id>
+          <iso3166Id>HT</iso3166Id>
+          <iso3166Id>MX</iso3166Id>
+          <iso3166Id>NI</iso3166Id>
+          <iso3166Id>PA</iso3166Id>
+          <iso3166Id>PE</iso3166Id>
+          <iso3166Id>PR</iso3166Id>
+          <iso3166Id>PY</iso3166Id>
+          <iso3166Id>SV</iso3166Id>
+          <iso3166Id>US</iso3166Id>
+          <iso3166Id>UY</iso3166Id>
+          <iso3166Id>VE</iso3166Id>
+        </countryList>
+        <languageList>
+          <iso639Id>spa</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Spanish (Latin American, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>deadtilde</name>
+            <description>Spanish (Latin American, dead tilde)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>Spanish (Latin American, with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Spanish (Latin American, Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak</name>
+            <description>Spanish (Latin American, Colemak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak-gaming</name>
+            <description>Spanish (Latin American, Colemak for gaming)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>lt</name>
+        <!-- Keyboard indicator for Lithuanian layouts -->
+        <shortDescription>lt</shortDescription>
+        <description>Lithuanian</description>
+        <languageList>
+          <iso639Id>lit</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>std</name>
+            <description>Lithuanian (standard)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Lithuanian (US, with Lithuanian letters)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ibm</name>
+            <description>Lithuanian (IBM LST 1205-92)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>lekp</name>
+            <description>Lithuanian (LEKP)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>lekpa</name>
+            <description>Lithuanian (LEKPa)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sgs</name>
+            <description>Samogitian</description>
+            <languageList>
+              <iso639Id>sgs</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>lv</name>
+        <!-- Keyboard indicator for Latvian layouts -->
+        <shortDescription>lv</shortDescription>
+        <description>Latvian</description>
+        <languageList>
+          <iso639Id>lav</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>apostrophe</name>
+            <description>Latvian (apostrophe)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tilde</name>
+            <description>Latvian (tilde)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fkey</name>
+            <description>Latvian (F)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>modern</name>
+            <description>Latvian (modern)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ergonomic</name>
+            <description>Latvian (ergonomic, ŪGJRMV)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>adapted</name>
+            <description>Latvian (adapted)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>mao</name>
+        <!-- Keyboard indicator for Maori layouts -->
+        <shortDescription>mi</shortDescription>
+        <description>Maori</description>
+        <languageList>
+          <iso639Id>mri</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>me</name>
+        <!-- Keyboard indicator for Montenegrin layouts -->
+        <shortDescription>sr</shortDescription>
+        <description>Montenegrin</description>
+        <languageList>
+          <iso639Id>srp</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>cyrillic</name>
+            <description>Montenegrin (Cyrillic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>cyrillicyz</name>
+            <description>Montenegrin (Cyrillic, ZE and ZHE swapped)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinunicode</name>
+            <description>Montenegrin (Latin, Unicode)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinyz</name>
+            <description>Montenegrin (Latin, QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinunicodeyz</name>
+            <description>Montenegrin (Latin, Unicode, QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>cyrillicalternatequotes</name>
+            <description>Montenegrin (Cyrillic with guillemets)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinalternatequotes</name>
+            <description>Montenegrin (Latin with guillemets)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>mk</name>
+        <!-- Keyboard indicator for Macedonian layouts -->
+        <shortDescription>mk</shortDescription>
+        <description>Macedonian</description>
+        <languageList>
+          <iso639Id>mkd</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Macedonian (no dead keys)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>mt</name>
+        <!-- Keyboard indicator for Maltese layouts -->
+        <shortDescription>mt</shortDescription>
+        <description>Maltese</description>
+        <languageList>
+          <iso639Id>mlt</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Maltese (with US layout)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>alt-us</name>
+            <description>Maltese (US layout with AltGr overrides)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>alt-gb</name>
+            <description>Maltese (UK layout with AltGr overrides)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>mn</name>
+        <!-- Keyboard indicator for Mongolian layouts -->
+        <shortDescription>mn</shortDescription>
+        <description>Mongolian</description>
+        <languageList>
+          <iso639Id>mon</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>no</name>
+        <!-- Keyboard indicator for Norwegian layouts -->
+        <shortDescription>no</shortDescription>
+        <description>Norwegian</description>
+        <languageList>
+          <iso639Id>nor</iso639Id>
+          <iso639Id>nob</iso639Id>
+          <iso639Id>nno</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Norwegian (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Norwegian (Win keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Norwegian (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>smi</name>
+            <description>Northern Saami (Norway)</description>
+            <languageList>
+              <iso639Id>sme</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>smi_nodeadkeys</name>
+            <description>Northern Saami (Norway, no dead keys)</description>
+            <languageList>
+              <iso639Id>sme</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Norwegian (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_nodeadkeys</name>
+            <description>Norwegian (Macintosh, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak</name>
+            <description>Norwegian (Colemak)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>pl</name>
+        <!-- Keyboard indicator for Polish layouts -->
+        <shortDescription>pl</shortDescription>
+        <description>Polish</description>
+        <languageList>
+          <iso639Id>pol</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>Polish (legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwertz</name>
+            <description>Polish (QWERTZ)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Polish (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak_quotes</name>
+            <description>Polish (Dvorak, with Polish quotes on quotemark key)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak_altquotes</name>
+            <description>Polish (Dvorak, with Polish quotes on key 1)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>csb</name>
+            <description>Kashubian</description>
+            <languageList>
+              <iso639Id>csb</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>szl</name>
+            <description>Silesian</description>
+            <languageList>
+              <iso639Id>szl</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ru_phonetic_dvorak</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Poland, phonetic Dvorak)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvp</name>
+            <description>Polish (programmer Dvorak)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>pt</name>
+        <!-- Keyboard indicator for Portuguese layouts -->
+        <shortDescription>pt</shortDescription>
+        <description>Portuguese</description>
+        <languageList>
+          <iso639Id>por</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Portuguese (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>Portuguese (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Portuguese (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_nodeadkeys</name>
+            <description>Portuguese (Macintosh, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_sundeadkeys</name>
+            <description>Portuguese (Macintosh, with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nativo</name>
+            <description>Portuguese (Nativo)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nativo-us</name>
+            <description>Portuguese (Nativo for US keyboards)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nativo-epo</name>
+            <description>Esperanto (Portugal, Nativo)</description>
+            <languageList>
+              <iso639Id>epo</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ro</name>
+        <!-- Keyboard indicator for Romanian layouts -->
+        <shortDescription>ro</shortDescription>
+        <description>Romanian</description>
+        <languageList>
+          <iso639Id>ron</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>cedilla</name>
+            <description>Romanian (cedilla)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>std</name>
+            <description>Romanian (standard)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>std_cedilla</name>
+            <description>Romanian (standard cedilla)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Romanian (Win keys)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ru</name>
+        <!-- Keyboard indicator for Russian layouts -->
+        <shortDescription>ru</shortDescription>
+        <description>Russian</description>
+        <languageList>
+          <iso639Id>rus</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>phonetic</name>
+            <description>Russian (phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic_winkeys</name>
+            <description>Russian (phonetic, with Win keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic_yazherty</name>
+            <description>Russian (phonetic yazherty)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>typewriter</name>
+            <description>Russian (typewriter)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>Russian (legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>typewriter-legacy</name>
+            <description>Russian (typewriter, legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tt</name>
+            <description>Tatar</description>
+            <languageList>
+              <iso639Id>tat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>os_legacy</name>
+            <description>Ossetian (legacy)</description>
+            <languageList>
+              <iso639Id>oss</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>os_winkeys</name>
+            <description>Ossetian (Win keys)</description>
+            <languageList>
+              <iso639Id>oss</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>cv</name>
+            <description>Chuvash</description>
+            <languageList>
+              <iso639Id>chv</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>cv_latin</name>
+            <description>Chuvash (Latin)</description>
+            <languageList>
+              <iso639Id>chv</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>udm</name>
+            <description>Udmurt</description>
+            <languageList>
+              <iso639Id>udm</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>kom</name>
+            <description>Komi</description>
+            <languageList>
+              <iso639Id>kom</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sah</name>
+            <description>Yakut</description>
+            <languageList>
+              <iso639Id>sah</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>xal</name>
+            <description>Kalmyk</description>
+            <languageList>
+              <iso639Id>xal</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dos</name>
+            <description>Russian (DOS)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Russian (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>srp</name>
+            <description>Serbian (Russia)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+              <iso639Id>srp</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bak</name>
+            <description>Bashkirian</description>
+            <languageList>
+              <iso639Id>bak</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>chm</name>
+            <description>Mari</description>
+            <languageList>
+              <iso639Id>chm</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic_azerty</name>
+            <description>Russian (phonetic, AZERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic_dvorak</name>
+            <description>Russian (phonetic, Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic_fr</name>
+            <description>Russian (phonetic, French)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>sc</name>
+        <!-- Keyboard indicator for Scots layouts -->
+        <shortDescription>sc</shortDescription>
+        <description>Scots</description>
+        <languageList>
+          <iso639Id>sco</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>Sundeadkeys</name>
+            <description>Scots (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Scots (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_legacy</name>
+            <description>Scots (Macintosh, legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Scots (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Scots (Dvorak)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>rs</name>
+        <!-- Keyboard indicator for Serbian layouts -->
+        <shortDescription>sr</shortDescription>
+        <description>Serbian</description>
+        <languageList>
+          <iso639Id>srp</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>yz</name>
+            <description>Serbian (Cyrillic, ZE and ZHE swapped)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latin</name>
+            <description>Serbian (Latin)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinunicode</name>
+            <description>Serbian (Latin, Unicode)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinyz</name>
+            <description>Serbian (Latin, QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinunicodeyz</name>
+            <description>Serbian (Latin, Unicode, QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>alternatequotes</name>
+            <description>Serbian (Cyrillic with guillemets)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinalternatequotes</name>
+            <description>Serbian (Latin with guillemets)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rue</name>
+            <description>Pannonian Rusyn</description>
+            <languageList>
+              <iso639Id>rue</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>si</name>
+        <!-- Keyboard indicator for Slovenian layouts -->
+        <shortDescription>sl</shortDescription>
+        <description>Slovenian</description>
+        <languageList>
+          <iso639Id>slv</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>alternatequotes</name>
+            <description>Slovenian (with guillemets)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Slovenian (US, with Slovenian letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>sk</name>
+        <!-- Keyboard indicator for Slovak layouts -->
+        <shortDescription>sk</shortDescription>
+        <description>Slovak</description>
+        <languageList>
+          <iso639Id>slk</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>bksl</name>
+            <description>Slovak (extended backslash)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty</name>
+            <description>Slovak (QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty_bksl</name>
+            <description>Slovak (QWERTY, extended backslash)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>es</name>
+        <!-- Keyboard indicator for Spanish layouts -->
+        <shortDescription>es</shortDescription>
+        <description>Spanish</description>
+        <languageList>
+          <iso639Id>spa</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Spanish (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Spanish (Win keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>deadtilde</name>
+            <description>Spanish (dead tilde)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>Spanish (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Spanish (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ast</name>
+            <shortDescription>ast</shortDescription>
+            <description>Asturian (Spain, with bottom-dot H and bottom-dot L)</description>
+            <languageList>
+              <iso639Id>ast</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>cat</name>
+            <shortDescription>ca</shortDescription>
+            <description>Catalan (Spain, with middle-dot L)</description>
+            <languageList>
+              <iso639Id>cat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Spanish (Macintosh)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>se</name>
+        <!-- Keyboard indicator for Swedish layouts -->
+        <shortDescription>sv</shortDescription>
+        <description>Swedish</description>
+        <languageList>
+          <iso639Id>swe</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Swedish (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Swedish (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rus</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Sweden, phonetic)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rus_nodeadkeys</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Sweden, phonetic, no dead keys)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>smi</name>
+            <description>Northern Saami (Sweden)</description>
+            <languageList>
+              <iso639Id>sme</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Swedish (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>svdvorak</name>
+            <description>Swedish (Svdvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us_dvorak</name>
+            <description>Swedish (based on US Intl. Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Swedish (US, with Swedish letters)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>swl</name>
+            <description>Swedish Sign Language</description>
+            <languageList>
+              <iso639Id>swl</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ch</name>
+        <!-- Keyboard indicator for German layouts -->
+        <shortDescription>de</shortDescription>
+        <description>German (Switzerland)</description>
+        <languageList>
+          <iso639Id>deu</iso639Id>
+          <iso639Id>gsw</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>German (Switzerland, legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>de_nodeadkeys</name>
+            <!-- Keyboard indicator for German layouts -->
+            <shortDescription>de</shortDescription>
+            <description>German (Switzerland, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>de_sundeadkeys</name>
+            <!-- Keyboard indicator for German layouts -->
+            <shortDescription>de</shortDescription>
+            <description>German (Switzerland, with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fr</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Switzerland)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fr_nodeadkeys</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Switzerland, no dead keys)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fr_sundeadkeys</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Switzerland, with Sun dead keys)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fr_mac</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Switzerland, Macintosh)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>de_mac</name>
+            <!-- Keyboard indicator for German layouts -->
+            <shortDescription>de</shortDescription>
+            <description>German (Switzerland, Macintosh)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>sy</name>
+        <!-- Keyboard indicator for Arabic layouts -->
+        <shortDescription>ar</shortDescription>
+        <description>Arabic (Syria)</description>
+        <languageList>
+          <iso639Id>syr</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>syc</name>
+            <!-- Keyboard indicator for Syriac layouts -->
+            <shortDescription>syc</shortDescription>
+            <description>Syriac</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>syc_phonetic</name>
+            <!-- Keyboard indicator for Syriac layouts -->
+            <shortDescription>syc</shortDescription>
+            <description>Syriac (phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Syria, Latin Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_f</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Syria, F)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_alt</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Syria, Latin Alt-Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>tj</name>
+        <!-- Keyboard indicator for Tajik layouts -->
+        <shortDescription>tg</shortDescription>
+        <description>Tajik</description>
+        <languageList>
+          <iso639Id>tgk</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>Tajik (legacy)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>lk</name>
+        <!-- Keyboard indicator for Sinhala layouts -->
+        <shortDescription>si</shortDescription>
+        <description>Sinhala (phonetic)</description>
+        <languageList>
+          <iso639Id>sin</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>tam_unicode</name>
+            <!-- Keyboard indicator for Tamil layouts -->
+            <shortDescription>ta</shortDescription>
+            <description>Tamil (Sri Lanka, TamilNet '99)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tam_TAB</name>
+            <description>Tamil (Sri Lanka, TamilNet '99, TAB encoding)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <!-- Keyboard indicator for US layouts -->
+            <shortDescription>us</shortDescription>
+            <description>Sinhala (US, with Sinhala letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>th</name>
+        <!-- Keyboard indicator for Thai layouts -->
+        <shortDescription>th</shortDescription>
+        <description>Thai</description>
+        <languageList>
+          <iso639Id>tha</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>tis</name>
+            <description>Thai (TIS-820.2538)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>pat</name>
+            <description>Thai (Pattachote)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>tr</name>
+        <!-- Keyboard indicator for Turkish layouts -->
+        <shortDescription>tr</shortDescription>
+        <description>Turkish</description>
+        <languageList>
+          <iso639Id>tur</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>f</name>
+            <description>Turkish (F)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>alt</name>
+            <description>Turkish (Alt-Q)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>Turkish (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Turkey, Latin Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_f</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Turkey, F)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_alt</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Turkey, Latin Alt-Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>intl</name>
+            <description>Turkish (intl., with dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>crh</name>
+            <!-- Keyboard indicator for Crimean Tatar layouts -->
+            <shortDescription>crh</shortDescription>
+            <description>Crimean Tatar (Turkish Q)</description>
+            <languageList>
+              <iso639Id>crh</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>crh_f</name>
+            <!-- Keyboard indicator for Crimean Tatar layouts -->
+            <shortDescription>crh</shortDescription>
+            <description>Crimean Tatar (Turkish F)</description>
+            <languageList>
+              <iso639Id>crh</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>crh_alt</name>
+            <!-- Keyboard indicator for Crimean Tatar layouts -->
+            <shortDescription>crh</shortDescription>
+            <description>Crimean Tatar (Turkish Alt-Q)</description>
+            <languageList>
+              <iso639Id>crh</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>tw</name>
+        <!-- Keyboard indicator for Taiwanese layouts -->
+        <shortDescription>zh</shortDescription>
+        <description>Taiwanese</description>
+        <languageList>
+          <iso639Id>fox</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>indigenous</name>
+            <description>Taiwanese (indigenous)</description>
+            <languageList>
+              <iso639Id>ami</iso639Id>
+              <iso639Id>tay</iso639Id>
+              <iso639Id>bnn</iso639Id>
+              <iso639Id>ckv</iso639Id>
+              <iso639Id>pwn</iso639Id>
+              <iso639Id>pyu</iso639Id>
+              <iso639Id>dru</iso639Id>
+              <iso639Id>ais</iso639Id>
+              <iso639Id>ssf</iso639Id>
+              <iso639Id>tao</iso639Id>
+              <iso639Id>tsu</iso639Id>
+              <iso639Id>trv</iso639Id>
+              <iso639Id>xnb</iso639Id>
+              <iso639Id>sxr</iso639Id>
+              <iso639Id>uun</iso639Id>
+              <iso639Id>fos</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>saisiyat</name>
+            <!-- Keyboard indicator for Saisiyat layouts -->
+            <shortDescription>xsy</shortDescription>
+            <description>Saisiyat (Taiwan)</description>
+            <languageList>
+              <iso639Id>xsy</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ua</name>
+        <!-- Keyboard indicator for Ukranian layouts -->
+        <shortDescription>uk</shortDescription>
+        <description>Ukrainian</description>
+        <languageList>
+          <iso639Id>ukr</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>phonetic</name>
+            <description>Ukrainian (phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>typewriter</name>
+            <description>Ukrainian (typewriter)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Ukrainian (Win keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>Ukrainian (legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rstu</name>
+            <description>Ukrainian (standard RSTU)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rstu_ru</name>
+            <description>Russian (Ukraine, standard RSTU)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>homophonic</name>
+            <description>Ukrainian (homophonic)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>gb</name>
+        <!-- Keyboard indicator for English layouts -->
+        <shortDescription>en</shortDescription>
+        <description>English (UK)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>extd</name>
+            <description>English (UK, extended, with Win keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>intl</name>
+            <description>English (UK, intl., with dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>English (UK, Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorakukp</name>
+            <description>English (UK, Dvorak, with UK punctuation)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>English (UK, Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_intl</name>
+            <description>English (UK, intl., Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak</name>
+            <description>English (UK, Colemak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>pl</name>
+            <!-- Keyboard indicator for Polish layouts -->
+            <shortDescription>pl</shortDescription>
+            <description>Polish (British keyboard)</description>
+            <languageList>
+              <iso639Id>pol</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>uz</name>
+        <!-- Keyboard indicator for Uzbek layouts -->
+        <shortDescription>uz</shortDescription>
+        <description>Uzbek</description>
+        <languageList>
+          <iso639Id>uzb</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>latin</name>
+            <description>Uzbek (Latin)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>vn</name>
+        <!-- Keyboard indicator for Vietnamese layouts -->
+        <shortDescription>vi</shortDescription>
+        <description>Vietnamese</description>
+        <languageList>
+          <iso639Id>vie</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Vietnamese (US, with Vietnamese letters)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fr</name>
+            <description>Vietnamese (French, with Vietnamese letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>kr</name>
+        <!-- Keyboard indicator for Korean layouts -->
+        <shortDescription>ko</shortDescription>
+        <description>Korean</description>
+        <languageList>
+          <iso639Id>kor</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>kr104</name>
+            <description>Korean (101/104 key compatible)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>nec_vndr/jp</name>
+        <!-- Keyboard indicator for Japaneses -->
+        <shortDescription>ja</shortDescription>
+        <description>Japanese (PC-98)</description>
+        <countryList>
+          <iso3166Id>JP</iso3166Id>
+        </countryList>
+        <languageList>
+          <iso639Id>jpn</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ie</name>
+        <!-- Keyboard indicator for Irish layouts -->
+        <shortDescription>ie</shortDescription>
+        <description>Irish</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>CloGaelach</name>
+            <description>CloGaelach</description>
+            <languageList>
+              <iso639Id>gle</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>UnicodeExpert</name>
+            <description>Irish (UnicodeExpert)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ogam</name>
+            <description>Ogham</description>
+            <languageList>
+              <iso639Id>sga</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ogam_is434</name>
+            <description>Ogham (IS434)</description>
+            <languageList>
+              <iso639Id>sga</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>pk</name>
+        <!-- Keyboard indicator for Urdu layouts -->
+        <shortDescription>ur</shortDescription>
+        <description>Urdu (Pakistan)</description>
+        <languageList>
+          <iso639Id>urd</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>urd-crulp</name>
+            <description>Urdu (Pakistan, CRULP)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>urd-nla</name>
+            <description>Urdu (Pakistan, NLA)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ara</name>
+            <shortDescription>ar</shortDescription>
+            <description>Arabic (Pakistan)</description>
+            <languageList>
+              <iso639Id>ara</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>snd</name>
+            <!-- Keyboard indicator for Sindhi layouts -->
+            <shortDescription>sd</shortDescription>
+            <description>Sindhi</description>
+            <languageList>
+              <iso639Id>snd</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>mv</name>
+        <!-- Keyboard indicator for Dhivehi layouts -->
+        <shortDescription>dv</shortDescription>
+        <description>Dhivehi</description>
+        <languageList>
+          <iso639Id>div</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>za</name>
+        <!-- Keyboard indicator for English layouts -->
+        <shortDescription>en</shortDescription>
+        <description>English (South Africa)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>epo</name>
+        <!-- Keyboard indicator for Esperanto layouts -->
+        <shortDescription>eo</shortDescription>
+        <description>Esperanto</description>
+        <languageList>
+          <iso639Id>epo</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>Esperanto (displaced semicolon and quote, obsolete)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>np</name>
+        <!-- Keyboard indicator for Nepali layouts -->
+        <shortDescription>ne</shortDescription>
+        <description>Nepali</description>
+        <languageList>
+          <iso639Id>nep</iso639Id>
+          <!-- sat-Deva used in Nepal: http://www.ethnologue.com/language/sat -->
+          <iso639Id>sat</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ng</name>
+        <!-- Keyboard indicator for English layouts -->
+        <shortDescription>en</shortDescription>
+        <description>English (Nigeria)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>igbo</name>
+            <!-- Keyboard indicator for Igbo layouts -->
+            <shortDescription>ig</shortDescription>
+            <description>Igbo</description>
+            <languageList>
+              <iso639Id>ibo</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>yoruba</name>
+            <!-- Keyboard indicator for Yoruba layouts -->
+            <shortDescription>yo</shortDescription>
+            <description>Yoruba</description>
+            <languageList>
+              <iso639Id>yor</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>hausa</name>
+            <!-- Keyboard indicator for Hausa layouts -->
+            <shortDescription>ha</shortDescription>
+            <description>Hausa (Nigeria)</description>
+            <languageList>
+              <iso639Id>hau</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>et</name>
+        <!-- Keyboard indicator for Amharic layouts -->
+        <shortDescription>am</shortDescription>
+        <description>Amharic</description>
+        <languageList>
+          <iso639Id>amh</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>sn</name>
+        <!-- Keyboard indicator for Wolof layouts -->
+        <shortDescription>wo</shortDescription>
+        <description>Wolof</description>
+        <languageList>
+          <iso639Id>wol</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>brai</name>
+        <!-- Keyboard indicator for Braille layouts -->
+        <shortDescription>brl</shortDescription>
+        <description>Braille</description>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>left_hand</name>
+            <description>Braille (left-handed)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>left_hand_invert</name>
+            <description>Braille (left-handed inverted thumb)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>right_hand</name>
+            <description>Braille (right-handed)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>right_hand_invert</name>
+            <description>Braille (right-handed inverted thumb)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>tm</name>
+        <!-- Keyboard indicator for Turkmen layouts -->
+        <shortDescription>tk</shortDescription>
+        <description>Turkmen</description>
+        <languageList>
+          <iso639Id>tuk</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>alt</name>
+            <description>Turkmen (Alt-Q)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ml</name>
+        <!-- Keyboard indicator for Bambara layouts -->
+        <shortDescription>bm</shortDescription>
+        <description>Bambara</description>
+        <languageList>
+          <iso639Id>bam</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>fr-oss</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Mali, alt.)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us-mac</name>
+            <!-- Keyboard indicator for English layouts -->
+            <shortDescription>en</shortDescription>
+            <description>English (Mali, US, Macintosh)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us-intl</name>
+            <!-- Keyboard indicator for English layouts -->
+            <shortDescription>en</shortDescription>
+            <description>English (Mali, US, intl.)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>tz</name>
+        <!-- Keyboard indicator for Swahili layouts -->
+        <shortDescription>sw</shortDescription>
+        <description>Swahili (Tanzania)</description>
+        <languageList>
+          <iso639Id>swa</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>tg</name>
+        <shortDescription>fr-tg</shortDescription>
+        <description>French (Togo)</description>
+        <languageList>
+          <iso639Id>fra</iso639Id>
+          <iso639Id>ajg</iso639Id>
+          <iso639Id>blo</iso639Id>
+          <iso639Id>kpo</iso639Id>
+          <iso639Id>ewe</iso639Id>
+          <iso639Id>fon</iso639Id>
+          <iso639Id>fue</iso639Id>
+          <iso639Id>gej</iso639Id>
+          <iso639Id>ife</iso639Id>
+          <iso639Id>kbp</iso639Id>
+          <iso639Id>las</iso639Id>
+          <iso639Id>dop</iso639Id>
+          <iso639Id>mfg</iso639Id>
+          <iso639Id>nmz</iso639Id>
+          <iso639Id>bud</iso639Id>
+          <iso639Id>gng</iso639Id>
+          <iso639Id>kdh</iso639Id>
+          <iso639Id>soy</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ke</name>
+        <!-- Keyboard indicator for Swahili layouts -->
+        <shortDescription>sw</shortDescription>
+        <description>Swahili (Kenya)</description>
+        <languageList>
+          <iso639Id>swa</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>kik</name>
+            <!-- Keyboard indicator for Kikuyu layouts -->
+            <shortDescription>ki</shortDescription>
+            <description>Kikuyu</description>
+            <languageList>
+              <iso639Id>kik</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>bw</name>
+        <!-- Keyboard indicator for Tswana layouts -->
+        <shortDescription>tn</shortDescription>
+        <description>Tswana</description>
+        <languageList>
+          <iso639Id>tsn</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ph</name>
+        <!-- Keyboard indicator for Filipino layouts -->
+        <shortDescription>ph</shortDescription>
+        <description>Filipino</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+          <iso639Id>bik</iso639Id>
+          <iso639Id>ceb</iso639Id>
+          <iso639Id>fil</iso639Id>
+          <iso639Id>hil</iso639Id>
+          <iso639Id>ilo</iso639Id>
+          <iso639Id>pam</iso639Id>
+          <iso639Id>pag</iso639Id>
+          <iso639Id>phi</iso639Id>
+          <iso639Id>tgl</iso639Id>
+          <iso639Id>war</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>qwerty-bay</name>
+            <description>Filipino (QWERTY, Baybayin)</description>
+            <languageList>
+              <iso639Id>bik</iso639Id>
+              <iso639Id>ceb</iso639Id>
+              <iso639Id>fil</iso639Id>
+              <iso639Id>hil</iso639Id>
+              <iso639Id>ilo</iso639Id>
+              <iso639Id>pam</iso639Id>
+              <iso639Id>pag</iso639Id>
+              <iso639Id>phi</iso639Id>
+              <iso639Id>tgl</iso639Id>
+              <iso639Id>war</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>capewell-dvorak</name>
+            <description>Filipino (Capewell-Dvorak, Latin)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>capewell-dvorak-bay</name>
+            <description>Filipino (Capewell-Dvorak, Baybayin)</description>
+            <languageList>
+              <iso639Id>bik</iso639Id>
+              <iso639Id>ceb</iso639Id>
+              <iso639Id>fil</iso639Id>
+              <iso639Id>hil</iso639Id>
+              <iso639Id>ilo</iso639Id>
+              <iso639Id>pam</iso639Id>
+              <iso639Id>pag</iso639Id>
+              <iso639Id>phi</iso639Id>
+              <iso639Id>tgl</iso639Id>
+              <iso639Id>war</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>capewell-qwerf2k6</name>
+            <description>Filipino (Capewell-QWERF 2006, Latin)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>capewell-qwerf2k6-bay</name>
+            <description>Filipino (Capewell-QWERF 2006, Baybayin)</description>
+            <languageList>
+              <iso639Id>bik</iso639Id>
+              <iso639Id>ceb</iso639Id>
+              <iso639Id>fil</iso639Id>
+              <iso639Id>hil</iso639Id>
+              <iso639Id>ilo</iso639Id>
+              <iso639Id>pam</iso639Id>
+              <iso639Id>pag</iso639Id>
+              <iso639Id>phi</iso639Id>
+              <iso639Id>tgl</iso639Id>
+              <iso639Id>war</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak</name>
+            <description>Filipino (Colemak, Latin)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak-bay</name>
+            <description>Filipino (Colemak, Baybayin)</description>
+            <languageList>
+              <iso639Id>bik</iso639Id>
+              <iso639Id>ceb</iso639Id>
+              <iso639Id>fil</iso639Id>
+              <iso639Id>hil</iso639Id>
+              <iso639Id>ilo</iso639Id>
+              <iso639Id>pam</iso639Id>
+              <iso639Id>pag</iso639Id>
+              <iso639Id>phi</iso639Id>
+              <iso639Id>tgl</iso639Id>
+              <iso639Id>war</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Filipino (Dvorak, Latin)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-bay</name>
+            <description>Filipino (Dvorak, Baybayin)</description>
+            <languageList>
+              <iso639Id>bik</iso639Id>
+              <iso639Id>ceb</iso639Id>
+              <iso639Id>fil</iso639Id>
+              <iso639Id>hil</iso639Id>
+              <iso639Id>ilo</iso639Id>
+              <iso639Id>pam</iso639Id>
+              <iso639Id>pag</iso639Id>
+              <iso639Id>phi</iso639Id>
+              <iso639Id>tgl</iso639Id>
+              <iso639Id>war</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>md</name>
+        <shortDescription>md</shortDescription>
+        <description>Moldavian</description>
+        <languageList>
+          <iso639Id>ron</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>gag</name>
+            <shortDescription>gag</shortDescription>
+            <description>Moldavian (Gagauz)</description>
+            <languageList>
+              <iso639Id>gag</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>id</name>
+        <shortDescription>id</shortDescription>
+        <description>Indonesian (Arab Melayu, phonetic)</description>
+        <languageList>
+          <iso639Id>ind</iso639Id>
+          <iso639Id>msa</iso639Id>
+          <iso639Id>min</iso639Id>
+          <iso639Id>ace</iso639Id>
+          <iso639Id>bjn</iso639Id>
+          <iso639Id>tsg</iso639Id>
+          <iso639Id>mfa</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+       <variant>
+         <configItem>
+          <name>phoneticx</name>
+            <description>Indonesian (Arab Melayu, ext. phonetic)</description>
+         </configItem>
+       </variant>
+      </variantList>
+    </layout>
+    <layout> 
+      <configItem>
+        <name>jv</name>
+        <shortDescription>jv</shortDescription>
+        <description>Indonesian (Javanese)</description>
+        <languageList>
+          <iso639Id>jv</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>my</name>
+        <shortDescription>ms</shortDescription>
+        <description>Malay (Jawi, Arabic Keyboard)</description>
+        <languageList>
+          <iso639Id>ind</iso639Id>
+          <iso639Id>msa</iso639Id>
+          <iso639Id>min</iso639Id>
+          <iso639Id>ace</iso639Id>
+          <iso639Id>bjn</iso639Id>
+          <iso639Id>tsg</iso639Id>
+          <iso639Id>mfa</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+       <variant>
+         <configItem>
+          <name>phonetic</name>
+            <description>Malay (Jawi, phonetic)</description>
+         </configItem>
+       </variant>
+      </variantList>
+    </layout>
+  </layoutList>
+  <optionList>
+    <group allowMultipleSelection="true">
+      <!-- The key combination used to switch between groups -->
+      <configItem>
+        <name>grp</name>
+        <description>Switching to another layout</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>grp:switch</name>
+          <description>Right Alt (while pressed)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lswitch</name>
+          <description>Left Alt (while pressed)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lwin_switch</name>
+          <description>Left Win (while pressed)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:rwin_switch</name>
+          <description>Right Win (while pressed)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:win_switch</name>
+          <description>Any Win (while pressed)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:menu_switch</name>
+          <description>Menu (while pressed), Shift+Menu for Menu</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:caps_switch</name>
+          <description>Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:rctrl_switch</name>
+          <description>Right Ctrl (while pressed)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:toggle</name>
+          <description>Right Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lalt_toggle</name>
+          <description>Left Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:caps_toggle</name>
+          <description>Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:shift_caps_toggle</name>
+          <description>Shift+Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:shift_caps_switch</name>
+          <description>Caps Lock to first layout; Shift+Caps Lock to last layout</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:win_menu_switch</name>
+          <description>Left Win to first layout; Right Win/Menu to last layout</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lctrl_rctrl_switch</name>
+          <description>Left Ctrl to first layout; Right Ctrl to last layout</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:alt_caps_toggle</name>
+          <description>Alt+Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:shifts_toggle</name>
+          <description>Both Shift together</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:alts_toggle</name>
+          <description>Both Alt together</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:ctrls_toggle</name>
+          <description>Both Ctrl together</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:ctrl_shift_toggle</name>
+          <description>Ctrl+Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lctrl_lshift_toggle</name>
+          <description>Left Ctrl+Left Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:rctrl_rshift_toggle</name>
+          <description>Right Ctrl+Right Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:ctrl_alt_toggle</name>
+          <description>Alt+Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:alt_shift_toggle</name>
+          <description>Alt+Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lalt_lshift_toggle</name>
+          <description>Left Alt+Left Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:alt_space_toggle</name>
+          <description>Alt+Space</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:menu_toggle</name>
+          <description>Menu</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lwin_toggle</name>
+          <description>Left Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:win_space_toggle</name>
+          <description>Win+Space</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:rwin_toggle</name>
+          <description>Right Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lshift_toggle</name>
+          <description>Left Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:rshift_toggle</name>
+          <description>Right Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lctrl_toggle</name>
+          <description>Left Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:rctrl_toggle</name>
+          <description>Right Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:sclk_toggle</name>
+          <description>Scroll Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lctrl_lwin_rctrl_menu</name>
+          <description>Left Ctrl+Left Win to first layout; Right Ctrl+Menu to second layout</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lctrl_lwin_toggle</name>
+          <description>Left Ctrl+Left Win</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <!-- The key combination used to choose the 3rd (and 4th, together with Shift)
+           level of symbols -->
+      <configItem>
+        <name>lv3</name>
+        <description>Key to choose the 3rd level</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>lv3:switch</name>
+          <description>Right Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:menu_switch</name>
+          <description>Menu</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:win_switch</name>
+          <description>Any Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:lwin_switch</name>
+          <description>Left Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:rwin_switch</name>
+          <description>Right Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:alt_switch</name>
+          <description>Any Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:lalt_switch</name>
+          <description>Left Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:ralt_switch</name>
+          <description>Right Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:ralt_switch_multikey</name>
+          <description>Right Alt; Shift+Right Alt as Compose</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:ralt_alt</name>
+          <description>Right Alt never chooses 3rd level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:enter_switch</name>
+          <description>Enter on keypad</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:caps_switch</name>
+          <description>Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:bksl_switch</name>
+          <description>Backslash</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:lsgt_switch</name>
+          <description>&lt;Less/Greater&gt;</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:caps_switch_latch</name>
+          <description>Caps Lock; acts as onetime lock when pressed together with another 3rd-level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:bksl_switch_latch</name>
+          <description>Backslash; acts as onetime lock when pressed together with another 3rd level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:lsgt_switch_latch</name>
+          <description>&lt;Less/Greater&gt;; acts as onetime lock when pressed together with another 3rd level chooser</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <!-- Tweaking the position of the "Ctrl" key -->
+      <configItem>
+        <name>ctrl</name>
+        <description>Ctrl position</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>ctrl:nocaps</name>
+          <description>Caps Lock as Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:lctrl_meta</name>
+          <description>Left Ctrl as Meta</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:swapcaps</name>
+          <description>Swap Ctrl and Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:swapcaps_hyper</name>
+          <description>Caps Lock as Control, Control as Hyper</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:ac_ctrl</name>
+          <description>At left of 'A'</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:aa_ctrl</name>
+          <description>At bottom left</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:rctrl_ralt</name>
+          <description>Right Ctrl as Right Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:menu_rctrl</name>
+          <description>Menu as Right Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:swap_lalt_lctl</name>
+          <description>Swap Left Alt with Left Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:swap_lwin_lctl</name>
+          <description>Swap Left Win with Left Ctrl</description>
+        </configItem>
+      </option><option>
+        <configItem>
+          <name>ctrl:swap_rwin_rctl</name>
+          <description>Swap Right Win with Right Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:swap_lalt_lctl_lwin</name>
+          <description>Left Alt as Ctrl, Left Ctrl as Win, Left Win as Left Alt</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <!-- Using startard LEDs to indicate the alternative (not first) group(s) -->
+      <configItem>
+        <name>grp_led</name>
+        <description>Use keyboard LED to show alternative layout</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>grp_led:num</name>
+          <description>Num Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp_led:caps</name>
+          <description>Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp_led:scroll</name>
+          <description>Scroll Lock</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <!-- Using LEDs to indicate modifiers -->
+      <configItem>
+        <name>mod_led</name>
+        <description>Use keyboard LED to indicate modifiers</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>mod_led:compose</name>
+          <description>Compose</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="false">
+      <!-- Select a keypad type -->
+      <configItem>
+        <name>keypad</name>
+        <description>Layout of numeric keypad</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>keypad:legacy</name>
+          <description>Legacy</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:oss</name>
+          <description>Unicode additions (arrows and math operators)</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:future</name>
+          <description>Unicode additions (arrows and math operators; math operators on default level)</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:legacy_wang</name>
+          <description>Legacy Wang 724</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:oss_wang</name>
+          <description>Wang 724 keypad with Unicode additions (arrows and math operators)</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:future_wang</name>
+          <description>Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:hex</name>
+          <description>Hexadecimal</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:atm</name>
+          <description>ATM/phone-style</description>
+       </configItem>
+      </option>
+    </group>
+    <!-- This option should override the KPDL key defined in keypad; I hope it's declared in the right place -->
+    <group allowMultipleSelection="false">
+      <!-- Select a keypad KPDL variant -->
+      <configItem>
+        <name>kpdl</name>
+        <description>Numeric keypad Delete behavior</description>
+      </configItem>
+      <option>
+        <configItem>
+          <!-- Actually, with KP_DECIMAL, as the old keypad(dot) -->
+          <name>kpdl:dot</name>
+          <description>Legacy key with dot</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:comma</name>
+          <!-- Actually, with KP_SEPARATOR, as the old keypad(comma) -->
+          <description>Legacy key with comma</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:dotoss</name>
+          <description>Four-level key with dot</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:dotoss_latin9</name>
+          <description>Four-level key with dot, Latin-9 only</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:commaoss</name>
+          <description>Four-level key with comma</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:momayyezoss</name>
+          <description>Four-level key with momayyez</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:kposs</name>
+          <!-- This assumes the KP_ abstract symbols are actually useful for some apps
+               The description needs to be rewritten -->
+          <description>Four-level key with abstract separators</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:semi</name>
+          <description>Semicolon on third level</description>
+       </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="false">
+      <!-- Caps Lock tweaks.
+           "Internal" capitalization means capitalization using some internal tables.
+           Otherwise "as Shift" - means using next group. -->
+      <configItem>
+        <name>caps</name>
+        <description>Caps Lock behavior</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>caps:internal</name>
+          <description>Caps Lock uses internal capitalization; Shift "pauses" Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:internal_nocancel</name>
+          <description>Caps Lock uses internal capitalization; Shift does not affect Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:shift</name>
+          <description>Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:shift_nocancel</name>
+          <description>Caps Lock acts as Shift with locking; Shift does not affect Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:capslock</name>
+          <description>Caps Lock toggles normal capitalization of alphabetic characters</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:shiftlock</name>
+          <description>Caps Lock toggles ShiftLock (affects all keys)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:swapescape</name>
+          <description>Swap ESC and Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:escape</name>
+          <description>Make Caps Lock an additional Esc</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:escape_shifted_capslock</name>
+          <description>Make unmodified Caps Lock an additional Esc, but Shift + Caps Lock behaves like regular Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:backspace</name>
+          <description>Make Caps Lock an additional Backspace</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:super</name>
+          <description>Make Caps Lock an additional Super</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:hyper</name>
+          <description>Make Caps Lock an additional Hyper</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:menu</name>
+          <description>Make Caps Lock an additional Menu key</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:numlock</name>
+          <description>Make Caps Lock an additional Num Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:ctrl_modifier</name>
+          <description>Caps Lock is also a Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:none</name>
+          <description>Caps Lock is disabled</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="false">
+      <!-- Using special PC keys (Win, Menu) to work as standard X keys (Super, Hyper, etc.) -->
+      <configItem>
+        <name>altwin</name>
+        <description>Alt/Win key behavior</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>altwin:menu</name>
+          <description>Add the standard behavior to Menu key</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:menu_win</name>
+          <description>Menu is mapped to Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:meta_alt</name>
+          <description>Alt and Meta are on Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:alt_win</name>
+          <description>Alt is mapped to Win and the usual Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:ctrl_win</name>
+          <description>Ctrl is mapped to Win and the usual Ctrl keys</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:ctrl_alt_win</name>
+          <description>Ctrl is mapped to Alt; Alt is mapped to Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:meta_win</name>
+          <description>Meta is mapped to Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:left_meta_win</name>
+          <description>Meta is mapped to Left Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:hyper_win</name>
+          <description>Hyper is mapped to Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:alt_super_win</name>
+          <description>Alt is mapped to Right Win, Super to Menu</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:swap_lalt_lwin</name>
+          <description>Left Alt is swapped with Left Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:swap_alt_win</name>
+          <description>Alt is swapped with Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:prtsc_rwin</name>
+          <description>Win is mapped to PrtSc and the usual Win</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <!-- Tweaking the position of the "Compose" key: mapping to existing PC keys -->
+      <configItem>
+        <name>Compose key</name>
+        <description>Position of Compose key</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>compose:ralt</name>
+          <description>Right Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:lwin</name>
+          <description>Left Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:lwin-altgr</name>
+          <description>3rd level of Left Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:rwin</name>
+          <description>Right Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:rwin-altgr</name>
+          <description>3rd level of Right Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:menu</name>
+          <description>Menu</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:menu-altgr</name>
+          <description>3rd level of Menu</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:lctrl</name>
+          <description>Left Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:lctrl-altgr</name>
+          <description>3rd level of Left Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:rctrl</name>
+          <description>Right Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:rctrl-altgr</name>
+          <description>3rd level of Right Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:caps</name>
+          <description>Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:caps-altgr</name>
+          <description>3rd level of Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:102</name>
+          <description>&lt;Less/Greater&gt;</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:102-altgr</name>
+          <description>3rd level of &lt;Less/Greater&gt;</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:paus</name>
+          <description>Pause</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:prsc</name>
+          <description>PrtSc</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:sclk</name>
+          <description>Scroll Lock</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <configItem>
+        <name>compat</name>
+        <description>Miscellaneous compatibility options</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>numpad:pc</name>
+          <description>Default numeric keypad keys</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>numpad:mac</name>
+          <description>Numeric keypad always enters digits (as in macOS)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>numpad:microsoft</name>
+          <description>Num Lock on: digits; Shift for arrow keys. Num Lock off: arrow keys (as in Windows)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>numpad:shift3</name>
+          <description>Shift does not cancel Num Lock, chooses 3rd level instead</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>srvrkeys:none</name>
+          <description>Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>apple:alupckeys</name>
+          <description>Apple Aluminium: emulate PC keys (PrtSc, Scroll Lock, Pause, Num Lock)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>shift:breaks_caps</name>
+          <description>Shift cancels Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>misc:typo</name>
+          <description>Enable extra typographic characters</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>shift:both_capslock</name>
+          <description>Both Shift together enable Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>shift:both_capslock_cancel</name>
+          <description>Both Shift together enable Caps Lock; one Shift key disables it</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>shift:both_shiftlock</name>
+          <description>Both Shift together enable Shift Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:pointerkeys</name>
+          <description>Shift + Num Lock enables PointerKeys</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grab:break_actions</name>
+          <description>Allow breaking grabs with keyboard actions (warning: security risk)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grab:debug</name>
+          <description>Allow grab and window tree logging</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <!-- Special shortcuts for the Euro character -->
+      <configItem>
+        <name>currencysign</name>
+        <description>Adding currency signs to certain keys</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>eurosign:e</name>
+          <description>Euro on E</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>eurosign:2</name>
+          <description>Euro on 2</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>eurosign:4</name>
+          <description>Euro on 4</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>eurosign:5</name>
+          <description>Euro on 5</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>rupeesign:4</name>
+          <description>Rupee on 4</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <configItem>
+        <name>lv5</name>
+        <description>Key to choose 5th level</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>lv5:lsgt_switch</name>
+          <description>&lt;Less/Greater&gt; chooses 5th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:ralt_switch</name>
+          <description>Right Alt chooses 5th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:lsgt_switch_lock</name>
+          <description>&lt;Less/Greater&gt; chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:ralt_switch_lock</name>
+          <description>Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:lwin_switch_lock</name>
+          <description>Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:rwin_switch_lock</name>
+          <description>Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+<!--
+      <option>
+        <configItem>
+          <name>lv5:lsgt_switch_lock_cancel</name>
+          <description>&lt;Less/Greater&gt; chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:ralt_switch_lock_cancel</name>
+          <description>Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:lwin_switch_lock_cancel</name>
+          <description>Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:rwin_switch_lock_cancel</name>
+          <description>Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:lsgt_switch_lock_cancel</name>
+          <description>&lt;Less/Greater&gt; chooses 5th level; acts as onetime lock lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:ralt_switch_lock_cancel</name>
+          <description>Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+-->
+    </group>
+    <group allowMultipleSelection="false">
+      <!-- Let space output NBSP, NNBSP, ZWNJ, and ZWJ for the desired level -->
+      <configItem>
+        <name>nbsp</name>
+        <description>Using space key to input non-breaking space</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>nbsp:none</name>
+          <description>Usual space at any level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level2</name>
+          <description>Non-breaking space at the 2nd level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level3</name>
+          <description>Non-breaking space at the 3rd level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level3s</name>
+          <description>Non-breaking space at the 3rd level, nothing at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level3n</name>
+          <description>Non-breaking space at the 3rd level, thin non-breaking space at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level4</name>
+          <description>Non-breaking space at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level4n</name>
+          <description>Non-breaking space at the 4th level, thin non-breaking space at the 6th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level4nl</name>
+          <description>Non-breaking space at the 4th level, thin non-breaking space at the 6th level (via Ctrl+Shift)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2</name>
+          <description>Zero-width non-joiner at the 2nd level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2zwj3</name>
+          <description>Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2zwj3nb4</name>
+          <description>Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level, non-breaking space at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2nb3</name>
+          <description>Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2nb3s</name>
+          <description>Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, nothing at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2nb3zwj4</name>
+          <description>Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, zero-width joiner at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2nb3nnb4</name>
+          <description>Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, thin non-breaking space at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj3zwj4</name>
+          <description>Zero-width non-joiner at the 3rd level, zero-width joiner at the 4th level</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <configItem>
+        <name>japan</name>
+        <description>Japanese keyboard options</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>japan:kana_lock</name>
+          <description>Kana Lock key is locking</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>japan:nicola_f_bs</name>
+          <description>NICOLA-F style Backspace</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>japan:hztg_escape</name>
+          <description>Make Zenkaku Hankaku an additional Esc</description>
+       </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <configItem>
+        <name>korean</name>
+        <description>Korean Hangul/Hanja keys</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>korean:ralt_hangul</name>
+          <description>Make right Alt a Hangul key</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>korean:rctrl_hangul</name>
+          <description>Make right Ctrl a Hangul key</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>korean:ralt_hanja</name>
+          <description>Make right Alt a Hanja key</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>korean:rctrl_hanja</name>
+          <description>Make right Ctrl a Hanja key</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="false">
+      <configItem>
+        <name>esperanto</name>
+        <description>Adding Esperanto supersigned letters</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>esperanto:qwerty</name>
+          <description>To the corresponding key in a QWERTY layout</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>esperanto:dvorak</name>
+          <description>To the corresponding key in a Dvorak layout</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>esperanto:colemak</name>
+          <description>To the corresponding key in a Colemak layout</description>
+       </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <configItem>
+        <name>solaris</name>
+        <description>Maintain key compatibility with old Solaris keycodes</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>solaris:sun_compat</name>
+          <description>Sun Key compatibility</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <configItem>
+        <name>terminate</name>
+        <description>Key sequence to kill the X server</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>terminate:ctrl_alt_bksp</name>
+          <description>Ctrl+Alt+Backspace</description>
+        </configItem>
+      </option>
+    </group>
+  </optionList>
+</xkbConfigRegistry>
diff --git a/unix/usr/share/X11/xkb/rules/evdev.lst b/unix/usr/share/X11/xkb/rules/evdev.lst
new file mode 100644
index 0000000..7dd1b94
--- /dev/null
+++ b/unix/usr/share/X11/xkb/rules/evdev.lst
@@ -0,0 +1,975 @@
+! model
+  pc101           Generic 101-key PC
+  pc102           Generic 102-key PC (intl.)
+  pc104           Generic 104-key PC
+  pc105           Generic 105-key PC (intl.)
+  dell101         Dell 101-key PC
+  latitude        Dell Latitude laptop
+  dellm65         Dell Precision M65 laptop
+  everex          Everex STEPnote
+  flexpro         Keytronic FlexPro
+  microsoft       Microsoft Natural
+  omnikey101      Northgate OmniKey 101
+  winbook         Winbook Model XP5
+  pc98            PC-98
+  a4techKB21      A4Tech KB-21
+  a4techKBS8      A4Tech KBS-8
+  a4_rfkb23       A4Tech Wireless Desktop RFKB-23
+  airkey          Acer AirKey V
+  azonaRF2300     Azona RF2300 wireless Internet
+  scorpius        Advance Scorpius KI
+  brother         Brother Internet
+  btc5113rf       BTC 5113RF Multimedia
+  btc5126t        BTC 5126T
+  btc6301urf      BTC 6301URF
+  btc9000         BTC 9000
+  btc9000a        BTC 9000A
+  btc9001ah       BTC 9001AH
+  btc5090         BTC 5090
+  btc9019u        BTC 9019U
+  btc9116u        BTC 9116U Mini Wireless Internet and Gaming
+  cherryblue      Cherry Blue Line CyBo@rd
+  cherryblueb     Cherry CyMotion Master XPress
+  cherrybluea     Cherry Blue Line CyBo@rd (alt.)
+  cherrycyboard   Cherry CyBo@rd USB-Hub
+  cherrycmexpert  Cherry CyMotion Expert
+  cherrybunlim    Cherry B.UNLIMITED
+  chicony         Chicony Internet
+  chicony0108     Chicony KU-0108
+  chicony0420     Chicony KU-0420
+  chicony9885     Chicony KB-9885
+  compaqeak8      Compaq Easy Access
+  compaqik7       Compaq Internet (7 keys)
+  compaqik13      Compaq Internet (13 keys)
+  compaqik18      Compaq Internet (18 keys)
+  cymotionlinux   Cherry CyMotion Master Linux
+  armada          Compaq Armada laptop
+  presario        Compaq Presario laptop
+  ipaq            Compaq iPaq
+  dell            Dell
+  dellsk8125      Dell SK-8125
+  dellsk8135      Dell SK-8135
+  dellusbmm       Dell USB Multimedia
+  inspiron        Dell Inspiron 6000/8000 laptop
+  precision_m     Dell Precision M laptop
+  dexxa           Dexxa Wireless Desktop
+  diamond         Diamond 9801/9802
+  dtk2000         DTK2000
+  ennyah_dkb1008  Ennyah DKB-1008
+  fscaa1667g      Fujitsu-Siemens Amilo laptop
+  genius          Genius Comfy KB-16M/Multimedia KWD-910
+  geniuscomfy     Genius Comfy KB-12e
+  geniuscomfy2    Genius Comfy KB-21e-Scroll
+  geniuskb19e     Genius KB-19e NB
+  geniuskkb2050hs Genius KKB-2050HS
+  gyration        Gyration
+  kinesis         Kinesis
+  logitech_base   Logitech
+  logitech_g15    Logitech G15 extra keys via G15daemon
+  hpi6            Hewlett-Packard Internet
+  hp250x          Hewlett-Packard NEC SK-2500 Multimedia
+  hpxe3gc         Hewlett-Packard Omnibook XE3 GC
+  hpxe3gf         Hewlett-Packard Omnibook XE3 GF
+  hpxt1000        Hewlett-Packard Omnibook XT1000
+  hpdv5           Hewlett-Packard Pavilion dv5
+  hpzt11xx        Hewlett-Packard Pavilion ZT1100
+  hp500fa         Hewlett-Packard Omnibook 500 FA
+  hp5xx           Hewlett-Packard Omnibook 500
+  hpnx9020        Hewlett-Packard nx9020
+  hp6000          Hewlett-Packard Omnibook 6000/6100
+  honeywell_euroboard Honeywell Euroboard
+  hpmini110       Hewlett-Packard Mini 110 laptop
+  rapidaccess     IBM Rapid Access
+  rapidaccess2    IBM Rapid Access II
+  thinkpad        IBM ThinkPad 560Z/600/600E/A22E
+  thinkpad60      IBM ThinkPad R60/T60/R61/T61
+  thinkpadz60     IBM ThinkPad Z60m/Z60t/Z61m/Z61t
+  ibm_spacesaver  IBM Space Saver
+  logiaccess      Logitech Access
+  logiclx300      Logitech Cordless Desktop LX-300
+  logii350        Logitech Internet 350
+  logimel         Logitech Internet 350
+  logicd          Logitech Cordless Desktop
+  logicd_it       Logitech Cordless Desktop iTouch
+  logicd_nav      Logitech Cordless Desktop Navigator
+  logicd_opt      Logitech Cordless Desktop Optical
+  logicda         Logitech Cordless Desktop (alt.)
+  logicdpa2       Logitech Cordless Desktop Pro (2nd alt.)
+  logicfn         Logitech Cordless Freedom/Desktop Navigator
+  logicdn         Logitech Cordless Desktop Navigator
+  logiitc         Logitech iTouch Cordless Y-RB6
+  logiik          Logitech Internet
+  itouch          Logitech iTouch
+  logicink        Logitech Internet Navigator
+  logiex110       Logitech Cordless Desktop EX110
+  logiinkse       Logitech iTouch Internet Navigator SE
+  logiinkseusb    Logitech iTouch Internet Navigator SE USB
+  logiultrax      Logitech Ultra-X
+  logiultraxc     Logitech Ultra-X Cordless Media Desktop
+  logidinovo      Logitech diNovo
+  logidinovoedge  Logitech diNovo Edge
+  mx1998          Memorex MX1998
+  mx2500          Memorex MX2500 EZ-Access
+  mx2750          Memorex MX2750
+  microsoft4000   Microsoft Natural Ergonomic 4000
+  microsoft7000   Microsoft Natural Wireless Ergonomic 7000
+  microsoftinet   Microsoft Internet
+  microsoftpro    Microsoft Natural Pro/Internet Pro
+  microsoftprousb Microsoft Natural Pro USB/Internet Pro
+  microsoftprooem Microsoft Natural Pro OEM
+  vsonku306       ViewSonic KU-306 Internet
+  microsoftprose  Microsoft Internet Pro (Swedish)
+  microsoftoffice Microsoft Office Keyboard
+  microsoftmult   Microsoft Wireless Multimedia 1.0A
+  microsoftsurface Microsoft Surface
+  microsoftelite  Microsoft Natural Elite
+  microsoftccurve2k Microsoft Comfort Curve 2000
+  oretec          Ortek Multimedia/Internet MCK-800
+  propeller       Propeller Voyager KTEZ-1000
+  qtronix         QTronix Scorpius 98N+
+  samsung4500     Samsung SDM 4500P
+  samsung4510     Samsung SDM 4510P
+  sanwaskbkg3     Sanwa Supply SKB-KG3
+  sk1300          NEC SK-1300
+  sk2500          NEC SK-2500
+  sk6200          NEC SK-6200
+  sk7100          NEC SK-7100
+  sp_inet         Super Power Multimedia
+  sven            SVEN Ergonomic 2500
+  sven303         SVEN Slim 303
+  symplon         Symplon PaceBook tablet
+  toshiba_s3000   Toshiba Satellite S3000
+  trust           Trust Wireless Classic
+  trustda         Trust Direct Access
+  trust_slimline  Trust Slimline
+  tm2020          TypeMatrix EZ-Reach 2020
+  tm2030PS2       TypeMatrix EZ-Reach 2030 PS2
+  tm2030USB       TypeMatrix EZ-Reach 2030 USB
+  tm2030USB-102   TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)
+  tm2030USB-106   TypeMatrix EZ-Reach 2030 USB (106:JP mode)
+  yahoo           Yahoo! Internet
+  macbook78       MacBook/MacBook Pro
+  macbook79       MacBook/MacBook Pro (intl.)
+  macintosh       Macintosh
+  macintosh_old   Macintosh Old
+  macintosh_hhk   Happy Hacking for Mac
+  acer_c300       Acer C300
+  acer_ferrari4k  Acer Ferrari 4000
+  acer_laptop     Acer laptop
+  asus_laptop     Asus laptop
+  apple           Apple
+  apple_laptop    Apple laptop
+  applealu_ansi   Apple Aluminium (ANSI)
+  applealu_iso    Apple Aluminium (ISO)
+  applealu_jis    Apple Aluminium (JIS)
+  silvercrest     Silvercrest Multimedia Wireless
+  emachines       eMachines m6800 laptop
+  benqx           BenQ X-Touch
+  benqx730        BenQ X-Touch 730
+  benqx800        BenQ X-Touch 800
+  hhk             Happy Hacking
+  classmate       Classmate PC
+  olpc            OLPC
+  sun_type7_usb   Sun Type 7 USB
+  sun_type7_euro_usb Sun Type 7 USB (European)
+  sun_type7_unix_usb Sun Type 7 USB (Unix)
+  sun_type7_jp_usb Sun Type 7 USB (Japanese)/Japanese 106-key
+  sun_type6_usb   Sun Type 6/7 USB
+  sun_type6_euro_usb Sun Type 6/7 USB (European)
+  sun_type6_unix_usb Sun Type 6 USB (Unix)
+  sun_type6_jp_usb Sun Type 6 USB (Japanese)
+  sun_type6_jp    Sun Type 6 (Japanese)
+  targa_v811      Targa Visionary 811
+  unitekkb1925    Unitek KB-1925
+  compalfl90      FL90
+  creativedw7000  Creative Desktop Wireless 7000
+  teck227         Truly Ergonomic 227
+  teck229         Truly Ergonomic 229
+  apex300         SteelSeries Apex 300 (Apex RAW)
+  chromebook      Chromebook
+  teck227         Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys)
+  teck229         Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key)
+
+! layout
+  us              English (US)
+  af              Afghani
+  ara             Arabic
+  al              Albanian
+  am              Armenian
+  at              German (Austria)
+  au              English (Australian)
+  az              Azerbaijani
+  by              Belarusian
+  be              Belgian
+  bd              Bangla
+  in              Indian
+  ba              Bosnian
+  br              Portuguese (Brazil)
+  bg              Bulgarian
+  dz              Berber (Algeria, Latin)
+  ma              Arabic (Morocco)
+  cm              English (Cameroon)
+  mm              Burmese
+  ca              French (Canada)
+  cd              French (Democratic Republic of the Congo)
+  cn              Chinese
+  hr              Croatian
+  cz              Czech
+  dk              Danish
+  nl              Dutch
+  bt              Dzongkha
+  ee              Estonian
+  ir              Persian
+  iq              Iraqi
+  fo              Faroese
+  fi              Finnish
+  fr              French
+  gh              English (Ghana)
+  gn              French (Guinea)
+  ge              Georgian
+  de              German
+  gr              Greek
+  hu              Hungarian
+  is              Icelandic
+  il              Hebrew
+  it              Italian
+  jp              Japanese
+  kg              Kyrgyz
+  kh              Khmer (Cambodia)
+  kz              Kazakh
+  la              Lao
+  latam           Spanish (Latin American)
+  lt              Lithuanian
+  lv              Latvian
+  mao             Maori
+  me              Montenegrin
+  mk              Macedonian
+  mt              Maltese
+  mn              Mongolian
+  no              Norwegian
+  pl              Polish
+  pt              Portuguese
+  ro              Romanian
+  ru              Russian
+  rs              Serbian
+  sc		  Scots
+  si              Slovenian
+  sk              Slovak
+  es              Spanish
+  se              Swedish
+  ch              German (Switzerland)
+  sy              Arabic (Syria)
+  tj              Tajik
+  lk              Sinhala (phonetic)
+  th              Thai
+  tr              Turkish
+  tw              Taiwanese
+  ua              Ukrainian
+  gb              English (UK)
+  uz              Uzbek
+  vn              Vietnamese
+  kr              Korean
+  nec_vndr/jp     Japanese (PC-98)
+  ie              Irish
+  pk              Urdu (Pakistan)
+  mv              Dhivehi
+  za              English (South Africa)
+  epo             Esperanto
+  np              Nepali
+  ng              English (Nigeria)
+  et              Amharic
+  sn              Wolof
+  brai            Braille
+  tm              Turkmen
+  ml              Bambara
+  tz              Swahili (Tanzania)
+  tg              French (Togo)
+  ke              Swahili (Kenya)
+  bw              Tswana
+  ph              Filipino
+  md              Moldavian
+  id              Indonesian (Arab Melayu, phonetic)
+  jv              Indonesian (Javanese)
+  my              Malay (Jawi, Arabic Keyboard)
+
+! variant
+  chr             us: Cherokee
+  euro            us: English (US, euro on 5)
+  intl            us: English (US, intl., with dead keys)
+  alt-intl        us: English (US, alt. intl.)
+  colemak         us: English (Colemak)
+  dvorak          us: English (Dvorak)
+  dvorak-intl     us: English (Dvorak, intl., with dead keys)
+  dvorak-alt-intl us: English (Dvorak, alt. intl.)
+  dvorak-l        us: English (Dvorak, left-handed)
+  dvorak-r        us: English (Dvorak, right-handed)
+  dvorak-classic  us: English (classic Dvorak)
+  dvp             us: English (programmer Dvorak)
+  rus             us: Russian (US, phonetic)
+  mac             us: English (Macintosh)
+  altgr-intl      us: English (intl., with AltGr dead keys)
+  olpc2           us: English (the divide/multiply keys toggle the layout)
+  hbs             us: Serbo-Croatian (US)
+  norman          us: English (Norman)
+  workman         us: English (Workman)
+  workman-intl    us: English (Workman, intl., with dead keys)
+  ps              af: Pashto
+  uz              af: Uzbek (Afghanistan)
+  olpc-ps         af: Pashto (Afghanistan, OLPC)
+  fa-olpc         af: Persian (Afghanistan, Dari OLPC)
+  uz-olpc         af: Uzbek (Afghanistan, OLPC)
+  azerty          ara: Arabic (AZERTY)
+  azerty_digits   ara: Arabic (AZERTY/digits)
+  digits          ara: Arabic (digits)
+  qwerty          ara: Arabic (QWERTY)
+  qwerty_digits   ara: Arabic (qwerty/digits)
+  buckwalter      ara: Arabic (Buckwalter)
+  olpc            ara: Arabic (OLPC)
+  mac             ara: Arabic (Macintosh)
+  plisi           al: Albanian (Plisi)
+  veqilharxhi     al: Albanian (Veqilharxhi)
+  phonetic        am: Armenian (phonetic)
+  phonetic-alt    am: Armenian (alt. phonetic)
+  eastern         am: Armenian (eastern)
+  western         am: Armenian (western)
+  eastern-alt     am: Armenian (alt. eastern)
+  nodeadkeys      at: German (Austria, no dead keys)
+  sundeadkeys     at: German (Austria, with Sun dead keys)
+  mac             at: German (Austria, Macintosh)
+  cyrillic        az: Azerbaijani (Cyrillic)
+  legacy          by: Belarusian (legacy)
+  latin           by: Belarusian (Latin)
+  oss             be: Belgian (alt.)
+  oss_latin9      be: Belgian (alt., Latin-9 only)
+  oss_sundeadkeys be: Belgian (alt., with Sun dead keys)
+  iso-alternate   be: Belgian (alt. ISO)
+  nodeadkeys      be: Belgian (no dead keys)
+  sundeadkeys     be: Belgian (with Sun dead keys)
+  wang            be: Belgian (Wang 724 AZERTY)
+  probhat         bd: Bangla (Probhat)
+  ben             in: Bangla (India)
+  ben_probhat     in: Bangla (India, Probhat)
+  ben_baishakhi   in: Bangla (India, Baishakhi)
+  ben_bornona     in: Bangla (India, Bornona)
+  ben_gitanjali   in: Bangla (India, Uni Gitanjali)
+  ben_inscript    in: Bangla (India, Baishakhi Inscript)
+  eeyek           in: Manipuri (Eeyek)
+  guj             in: Gujarati
+  guru            in: Punjabi (Gurmukhi)
+  jhelum          in: Punjabi (Gurmukhi Jhelum)
+  kan             in: Kannada
+  kan-kagapa      in: Kannada (KaGaPa phonetic)
+  mal             in: Malayalam
+  mal_lalitha     in: Malayalam (Lalitha)
+  mal_enhanced    in: Malayalam (enhanced Inscript, with rupee)
+  ori             in: Oriya
+  olck            in: Ol Chiki
+  tam_tamilnet    in: Tamil (TamilNet '99)
+  tam_tamilnet_with_tam_nums in: Tamil (TamilNet '99 with Tamil numerals)
+  tam_tamilnet_TAB in: Tamil (TamilNet '99, TAB encoding)
+  tam_tamilnet_TSCII in: Tamil (TamilNet '99, TSCII encoding)
+  tam             in: Tamil (Inscript)
+  tel             in: Telugu
+  tel-kagapa      in: Telugu (KaGaPa phonetic)
+  tel-sarala      in: Telugu (Sarala)
+  tel-kagapa      in: Telugu (KaGaPa phonetic)
+  urd-phonetic    in: Urdu (phonetic)
+  urd-phonetic3   in: Urdu (alt. phonetic)
+  urd-winkeys     in: Urdu (Win keys)
+  bolnagri        in: Hindi (Bolnagri)
+  hin-wx          in: Hindi (Wx)
+  hin-kagapa      in: Hindi (KaGaPa phonetic)
+  san-kagapa      in: Sanskrit (KaGaPa phonetic)
+  mar-kagapa      in: Marathi (KaGaPa phonetic)
+  eng             in: English (India, with rupee)
+  alternatequotes ba: Bosnian (with guillemets)
+  unicode         ba: Bosnian (with Bosnian digraphs)
+  unicodeus       ba: Bosnian (US, with Bosnian digraphs)
+  us              ba: Bosnian (US, with Bosnian letters)
+  nodeadkeys      br: Portuguese (Brazil, no dead keys)
+  dvorak          br: Portuguese (Brazil, Dvorak)
+  nativo          br: Portuguese (Brazil, Nativo)
+  nativo-us       br: Portuguese (Brazil, Nativo for US keyboards)
+  nativo-epo      br: Esperanto (Brazil, Nativo)
+  thinkpad        br: Portuguese (Brazil, IBM/Lenovo ThinkPad)
+  phonetic        bg: Bulgarian (traditional phonetic)
+  bas_phonetic    bg: Bulgarian (new phonetic)
+  ber             dz: Berber (Algeria, Tifinagh)
+  ar              dz: Arabic (Algeria)
+  french          ma: French (Morocco)
+  tifinagh        ma: Berber (Morocco, Tifinagh)
+  tifinagh-alt    ma: Berber (Morocco, Tifinagh alt.)
+  tifinagh-alt-phonetic ma: Berber (Morocco, Tifinagh alt. phonetic)
+  tifinagh-extended ma: Berber (Morocco, Tifinagh extended)
+  tifinagh-phonetic ma: Berber (Morocco, Tifinagh phonetic)
+  tifinagh-extended-phonetic ma: Berber (Morocco, Tifinagh extended phonetic)
+  french          cm: French (Cameroon)
+  qwerty          cm: Cameroon Multilingual (QWERTY)
+  azerty          cm: Cameroon Multilingual (AZERTY)
+  dvorak          cm: Cameroon Multilingual (Dvorak)
+  mmuock          cm: Mmuock
+  zawgyi          mm: Burmese Zawgyi
+  fr-dvorak       ca: French (Canada, Dvorak)
+  fr-legacy       ca: French (Canada, legacy)
+  multix          ca: Canadian Multilingual
+  multi           ca: Canadian Multilingual (1st part)
+  multi-2gr       ca: Canadian Multilingual (2nd part)
+  ike             ca: Inuktitut
+  eng             ca: English (Canada)
+  mon_trad        cn: Mongolian (Bichig)
+  mon_trad_todo   cn: Mongolian Todo
+  mon_trad_xibe   cn: Mongolian Xibe
+  mon_trad_manchu cn: Mongolian Manchu
+  mon_trad_galik  cn: Mongolian Galik
+  mon_todo_galik  cn: Mongolian Todo Galik
+  mon_manchu_galik cn: Mongolian Manchu Galik
+  tib             cn: Tibetan
+  tib_asciinum    cn: Tibetan (with ASCII numerals)
+  ug              cn: Uyghur
+  altgr-pinyin    cn: Hanyu Pinyin (altgr)
+  alternatequotes hr: Croatian (with guillemets)
+  unicode         hr: Croatian (with Croatian digraphs)
+  unicodeus       hr: Croatian (US, with Croatian digraphs)
+  us              hr: Croatian (US, with Croatian letters)
+  bksl            cz: Czech (with &lt;\|&gt; key)
+  qwerty          cz: Czech (QWERTY)
+  qwerty_bksl     cz: Czech (QWERTY, extended backslash)
+  qwerty-mac      cz: Czech (QWERTY, Macintosh)
+  ucw             cz: Czech (UCW, only accented letters)
+  dvorak-ucw      cz: Czech (US, Dvorak, UCW support)
+  rus             cz: Russian (Czech, phonetic)
+  nodeadkeys      dk: Danish (no dead keys)
+  winkeys         dk: Danish (Win keys)
+  mac             dk: Danish (Macintosh)
+  mac_nodeadkeys  dk: Danish (Macintosh, no dead keys)
+  dvorak          dk: Danish (Dvorak)
+  sundeadkeys     nl: Dutch (with Sun dead keys)
+  mac             nl: Dutch (Macintosh)
+  std             nl: Dutch (standard)
+  nodeadkeys      ee: Estonian (no dead keys)
+  dvorak          ee: Estonian (Dvorak)
+  us              ee: Estonian (US, with Estonian letters)
+  pes_keypad      ir: Persian (with Persian keypad)
+  ku              ir: Kurdish (Iran, Latin Q)
+  ku_f            ir: Kurdish (Iran, F)
+  ku_alt          ir: Kurdish (Iran, Latin Alt-Q)
+  ku_ara          ir: Kurdish (Iran, Arabic-Latin)
+  ku              iq: Kurdish (Iraq, Latin Q)
+  ku_f            iq: Kurdish (Iraq, F)
+  ku_alt          iq: Kurdish (Iraq, Latin Alt-Q)
+  ku_ara          iq: Kurdish (Iraq, Arabic-Latin)
+  nodeadkeys      fo: Faroese (no dead keys)
+  winkeys         fi: Finnish (Winkeys)
+  classic         fi: Finnish (classic)
+  nodeadkeys      fi: Finnish (classic, no dead keys)
+  smi             fi: Northern Saami (Finland)
+  mac             fi: Finnish (Macintosh)
+  nodeadkeys      fr: French (no dead keys)
+  sundeadkeys     fr: French (with Sun dead keys)
+  oss             fr: French (alt.)
+  oss_latin9      fr: French (alt., Latin-9 only)
+  oss_nodeadkeys  fr: French (alt., no dead keys)
+  oss_sundeadkeys fr: French (alt., with Sun dead keys)
+  latin9          fr: French (legacy, alt.)
+  latin9_nodeadkeys fr: French (legacy, alt., no dead keys)
+  latin9_sundeadkeys fr: French (legacy, alt., with Sun dead keys)
+  bepo            fr: French (Bepo, ergonomic, Dvorak way)
+  bepo_latin9     fr: French (Bepo, ergonomic, Dvorak way, Latin-9 only)
+  bepo_afnor      fr: French (Bepo, ergonomic, Dvorak way, AFNOR)
+  dvorak          fr: French (Dvorak)
+  mac             fr: French (Macintosh)
+  azerty          fr: French (AZERTY)
+  afnor           fr: French (AFNOR standardized AZERTY)
+  bre             fr: French (Breton)
+  oci             fr: Occitan
+  geo             fr: Georgian (France, AZERTY Tskapo)
+  us              fr: French (US, with French letters)
+  generic         gh: English (Ghana, multilingual)
+  akan            gh: Akan
+  ewe             gh: Ewe
+  fula            gh: Fula
+  ga              gh: Ga
+  hausa           gh: Hausa (Ghana)
+  avn             gh: Avatime
+  gillbt          gh: English (Ghana, GILLBT)
+  ergonomic       ge: Georgian (ergonomic)
+  mess            ge: Georgian (MESS)
+  ru              ge: Russian (Georgia)
+  os              ge: Ossetian (Georgia)
+  deadacute       de: German (dead acute)
+  deadgraveacute  de: German (dead grave acute)
+  nodeadkeys      de: German (no dead keys)
+  T3              de: German (T3)
+  ro              de: Romanian (Germany)
+  ro_nodeadkeys   de: Romanian (Germany, no dead keys)
+  dvorak          de: German (Dvorak)
+  sundeadkeys     de: German (with Sun dead keys)
+  neo             de: German (Neo 2)
+  mac             de: German (Macintosh)
+  mac_nodeadkeys  de: German (Macintosh, no dead keys)
+  dsb             de: Lower Sorbian
+  dsb_qwertz      de: Lower Sorbian (QWERTZ)
+  qwerty          de: German (QWERTY)
+  tr              de: Turkish (Germany)
+  ru              de: Russian (Germany, phonetic)
+  deadtilde       de: German (dead tilde)
+  simple          gr: Greek (simple)
+  extended        gr: Greek (extended)
+  nodeadkeys      gr: Greek (no dead keys)
+  polytonic       gr: Greek (polytonic)
+  standard        hu: Hungarian (standard)
+  nodeadkeys      hu: Hungarian (no dead keys)
+  qwerty          hu: Hungarian (QWERTY)
+  101_qwertz_comma_dead hu: Hungarian (101/QWERTZ/comma/dead keys)
+  101_qwertz_comma_nodead hu: Hungarian (101/QWERTZ/comma/no dead keys)
+  101_qwertz_dot_dead hu: Hungarian (101/QWERTZ/dot/dead keys)
+  101_qwertz_dot_nodead hu: Hungarian (101/QWERTZ/dot/no dead keys)
+  101_qwerty_comma_dead hu: Hungarian (101/QWERTY/comma/dead keys)
+  101_qwerty_comma_nodead hu: Hungarian (101/QWERTY/comma/no dead keys)
+  101_qwerty_dot_dead hu: Hungarian (101/QWERTY/dot/dead keys)
+  101_qwerty_dot_nodead hu: Hungarian (101/QWERTY/dot/no dead keys)
+  102_qwertz_comma_dead hu: Hungarian (102/QWERTZ/comma/dead keys)
+  102_qwertz_comma_nodead hu: Hungarian (102/QWERTZ/comma/no dead keys)
+  102_qwertz_dot_dead hu: Hungarian (102/QWERTZ/dot/dead keys)
+  102_qwertz_dot_nodead hu: Hungarian (102/QWERTZ/dot/no dead keys)
+  102_qwerty_comma_dead hu: Hungarian (102/QWERTY/comma/dead keys)
+  102_qwerty_comma_nodead hu: Hungarian (102/QWERTY/comma/no dead keys)
+  102_qwerty_dot_dead hu: Hungarian (102/QWERTY/dot/dead keys)
+  102_qwerty_dot_nodead hu: Hungarian (102/QWERTY/dot/no dead keys)
+  Sundeadkeys     is: Icelandic (with Sun dead keys)
+  nodeadkeys      is: Icelandic (no dead keys)
+  mac_legacy      is: Icelandic (Macintosh, legacy)
+  mac             is: Icelandic (Macintosh)
+  dvorak          is: Icelandic (Dvorak)
+  lyx             il: Hebrew (lyx)
+  phonetic        il: Hebrew (phonetic)
+  biblical        il: Hebrew (Biblical, Tiro)
+  nodeadkeys      it: Italian (no dead keys)
+  winkeys         it: Italian (Winkeys)
+  mac             it: Italian (Macintosh)
+  us              it: Italian (US, with Italian letters)
+  geo             it: Georgian (Italy)
+  ibm             it: Italian (IBM 142)
+  intl            it: Italian (intl., with dead keys)
+  scn             it: Sicilian
+  fur             it: Friulian (Italy)
+  kana            jp: Japanese (Kana)
+  kana86          jp: Japanese (Kana 86)
+  OADG109A        jp: Japanese (OADG 109A)
+  mac             jp: Japanese (Macintosh)
+  dvorak          jp: Japanese (Dvorak)
+  phonetic        kg: Kyrgyz (phonetic)
+  ruskaz          kz: Russian (Kazakhstan, with Kazakh)
+  kazrus          kz: Kazakh (with Russian)
+  ext             kz: Kazakh (extended)
+  latin           kz: Kazakh (Latin)
+  stea            la: Lao (STEA proposed standard layout)
+  nodeadkeys      latam: Spanish (Latin American, no dead keys)
+  deadtilde       latam: Spanish (Latin American, dead tilde)
+  sundeadkeys     latam: Spanish (Latin American, with Sun dead keys)
+  dvorak          latam: Spanish (Latin American, Dvorak)
+  colemak         latam: Spanish (Latin American, Colemak)
+  colemak-gaming  latam: Spanish (Latin American, Colemak for gaming)
+  std             lt: Lithuanian (standard)
+  us              lt: Lithuanian (US, with Lithuanian letters)
+  ibm             lt: Lithuanian (IBM LST 1205-92)
+  lekp            lt: Lithuanian (LEKP)
+  lekpa           lt: Lithuanian (LEKPa)
+  sgs             lt: Samogitian
+  apostrophe      lv: Latvian (apostrophe)
+  tilde           lv: Latvian (tilde)
+  fkey            lv: Latvian (F)
+  modern          lv: Latvian (modern)
+  ergonomic       lv: Latvian (ergonomic, ŪGJRMV)
+  adapted         lv: Latvian (adapted)
+  cyrillic        me: Montenegrin (Cyrillic)
+  cyrillicyz      me: Montenegrin (Cyrillic, ZE and ZHE swapped)
+  latinunicode    me: Montenegrin (Latin, Unicode)
+  latinyz         me: Montenegrin (Latin, QWERTY)
+  latinunicodeyz  me: Montenegrin (Latin, Unicode, QWERTY)
+  cyrillicalternatequotes me: Montenegrin (Cyrillic with guillemets)
+  latinalternatequotes me: Montenegrin (Latin with guillemets)
+  nodeadkeys      mk: Macedonian (no dead keys)
+  us              mt: Maltese (with US layout)
+  alt-us          mt: Maltese (US layout with AltGr overrides)
+  alt-gb          mt: Maltese (UK layout with AltGr overrides)
+  nodeadkeys      no: Norwegian (no dead keys)
+  winkeys         no: Norwegian (Win keys)
+  dvorak          no: Norwegian (Dvorak)
+  smi             no: Northern Saami (Norway)
+  smi_nodeadkeys  no: Northern Saami (Norway, no dead keys)
+  mac             no: Norwegian (Macintosh)
+  mac_nodeadkeys  no: Norwegian (Macintosh, no dead keys)
+  colemak         no: Norwegian (Colemak)
+  legacy          pl: Polish (legacy)
+  qwertz          pl: Polish (QWERTZ)
+  dvorak          pl: Polish (Dvorak)
+  dvorak_quotes   pl: Polish (Dvorak, with Polish quotes on quotemark key)
+  dvorak_altquotes pl: Polish (Dvorak, with Polish quotes on key 1)
+  csb             pl: Kashubian
+  szl             pl: Silesian
+  ru_phonetic_dvorak pl: Russian (Poland, phonetic Dvorak)
+  dvp             pl: Polish (programmer Dvorak)
+  nodeadkeys      pt: Portuguese (no dead keys)
+  sundeadkeys     pt: Portuguese (with Sun dead keys)
+  mac             pt: Portuguese (Macintosh)
+  mac_nodeadkeys  pt: Portuguese (Macintosh, no dead keys)
+  mac_sundeadkeys pt: Portuguese (Macintosh, with Sun dead keys)
+  nativo          pt: Portuguese (Nativo)
+  nativo-us       pt: Portuguese (Nativo for US keyboards)
+  nativo-epo      pt: Esperanto (Portugal, Nativo)
+  cedilla         ro: Romanian (cedilla)
+  std             ro: Romanian (standard)
+  std_cedilla     ro: Romanian (standard cedilla)
+  winkeys         ro: Romanian (Win keys)
+  phonetic        ru: Russian (phonetic)
+  phonetic_winkeys ru: Russian (phonetic, with Win keys)
+  phonetic_yazherty ru: Russian (phonetic yazherty)
+  typewriter      ru: Russian (typewriter)
+  legacy          ru: Russian (legacy)
+  typewriter-legacy ru: Russian (typewriter, legacy)
+  tt              ru: Tatar
+  os_legacy       ru: Ossetian (legacy)
+  os_winkeys      ru: Ossetian (Win keys)
+  cv              ru: Chuvash
+  cv_latin        ru: Chuvash (Latin)
+  udm             ru: Udmurt
+  kom             ru: Komi
+  sah             ru: Yakut
+  xal             ru: Kalmyk
+  dos             ru: Russian (DOS)
+  mac             ru: Russian (Macintosh)
+  srp             ru: Serbian (Russia)
+  bak             ru: Bashkirian
+  chm             ru: Mari
+  phonetic_azerty ru: Russian (phonetic, AZERTY)
+  phonetic_dvorak ru: Russian (phonetic, Dvorak)
+  phonetic_fr     ru: Russian (phonetic, French)
+  yz              rs: Serbian (Cyrillic, ZE and ZHE swapped)
+  latin           rs: Serbian (Latin)
+  latinunicode    rs: Serbian (Latin, Unicode)
+  latinyz         rs: Serbian (Latin, QWERTY)
+  latinunicodeyz  rs: Serbian (Latin, Unicode, QWERTY)
+  alternatequotes rs: Serbian (Cyrillic with guillemets)
+  latinalternatequotes rs: Serbian (Latin with guillemets)
+  rue             rs: Pannonian Rusyn
+  alternatequotes si: Slovenian (with guillemets)
+  us              si: Slovenian (US, with Slovenian letters)
+  bksl            sk: Slovak (extended backslash)
+  qwerty          sk: Slovak (QWERTY)
+  qwerty_bksl     sk: Slovak (QWERTY, extended backslash)
+  nodeadkeys      es: Spanish (no dead keys)
+  winkeys         es: Spanish (Win keys)
+  deadtilde       es: Spanish (dead tilde)
+  sundeadkeys     es: Spanish (with Sun dead keys)
+  dvorak          es: Spanish (Dvorak)
+  ast             es: Asturian (Spain, with bottom-dot H and bottom-dot L)
+  cat             es: Catalan (Spain, with middle-dot L)
+  mac             es: Spanish (Macintosh)
+  nodeadkeys      se: Swedish (no dead keys)
+  dvorak          se: Swedish (Dvorak)
+  rus             se: Russian (Sweden, phonetic)
+  rus_nodeadkeys  se: Russian (Sweden, phonetic, no dead keys)
+  smi             se: Northern Saami (Sweden)
+  mac             se: Swedish (Macintosh)
+  svdvorak        se: Swedish (Svdvorak)
+  us_dvorak       se: Swedish (based on US Intl. Dvorak)
+  us              se: Swedish (US, with Swedish letters)
+  swl             se: Swedish Sign Language
+  legacy          ch: German (Switzerland, legacy)
+  de_nodeadkeys   ch: German (Switzerland, no dead keys)
+  de_sundeadkeys  ch: German (Switzerland, with Sun dead keys)
+  fr              ch: French (Switzerland)
+  fr_nodeadkeys   ch: French (Switzerland, no dead keys)
+  fr_sundeadkeys  ch: French (Switzerland, with Sun dead keys)
+  fr_mac          ch: French (Switzerland, Macintosh)
+  de_mac          ch: German (Switzerland, Macintosh)
+  syc             sy: Syriac
+  syc_phonetic    sy: Syriac (phonetic)
+  ku              sy: Kurdish (Syria, Latin Q)
+  ku_f            sy: Kurdish (Syria, F)
+  ku_alt          sy: Kurdish (Syria, Latin Alt-Q)
+  legacy          tj: Tajik (legacy)
+  tam_unicode     lk: Tamil (Sri Lanka, TamilNet '99)
+  tam_TAB         lk: Tamil (Sri Lanka, TamilNet '99, TAB encoding)
+  us              lk: Sinhala (US, with Sinhala letters)
+  tis             th: Thai (TIS-820.2538)
+  pat             th: Thai (Pattachote)
+  f               tr: Turkish (F)
+  alt             tr: Turkish (Alt-Q)
+  sundeadkeys     tr: Turkish (with Sun dead keys)
+  ku              tr: Kurdish (Turkey, Latin Q)
+  ku_f            tr: Kurdish (Turkey, F)
+  ku_alt          tr: Kurdish (Turkey, Latin Alt-Q)
+  intl            tr: Turkish (intl., with dead keys)
+  crh             tr: Crimean Tatar (Turkish Q)
+  crh_f           tr: Crimean Tatar (Turkish F)
+  crh_alt         tr: Crimean Tatar (Turkish Alt-Q)
+  indigenous      tw: Taiwanese (indigenous)
+  saisiyat        tw: Saisiyat (Taiwan)
+  phonetic        ua: Ukrainian (phonetic)
+  typewriter      ua: Ukrainian (typewriter)
+  winkeys         ua: Ukrainian (Win keys)
+  legacy          ua: Ukrainian (legacy)
+  rstu            ua: Ukrainian (standard RSTU)
+  rstu_ru         ua: Russian (Ukraine, standard RSTU)
+  homophonic      ua: Ukrainian (homophonic)
+  extd            gb: English (UK, extended, with Win keys)
+  intl            gb: English (UK, intl., with dead keys)
+  dvorak          gb: English (UK, Dvorak)
+  dvorakukp       gb: English (UK, Dvorak, with UK punctuation)
+  mac             gb: English (UK, Macintosh)
+  mac_intl        gb: English (UK, intl., Macintosh)
+  colemak         gb: English (UK, Colemak)
+  pl              gb: Polish (British keyboard)
+  latin           uz: Uzbek (Latin)
+  us              vn: Vietnamese (US, with Vietnamese letters)
+  fr              vn: Vietnamese (French, with Vietnamese letters)
+  kr104           kr: Korean (101/104 key compatible)
+  CloGaelach      ie: CloGaelach
+  UnicodeExpert   ie: Irish (UnicodeExpert)
+  ogam            ie: Ogham
+  ogam_is434      ie: Ogham (IS434)
+  urd-crulp       pk: Urdu (Pakistan, CRULP)
+  urd-nla         pk: Urdu (Pakistan, NLA)
+  ara             pk: Arabic (Pakistan)
+  snd             pk: Sindhi
+  legacy          epo: Esperanto (displaced semicolon and quote, obsolete)
+  igbo            ng: Igbo
+  yoruba          ng: Yoruba
+  hausa           ng: Hausa (Nigeria)
+  left_hand       brai: Braille (left-handed)
+  left_hand_invert brai: Braille (left-handed inverted thumb)
+  right_hand      brai: Braille (right-handed)
+  right_hand_invert brai: Braille (right-handed inverted thumb)
+  alt             tm: Turkmen (Alt-Q)
+  fr-oss          ml: French (Mali, alt.)
+  us-mac          ml: English (Mali, US, Macintosh)
+  us-intl         ml: English (Mali, US, intl.)
+  kik             ke: Kikuyu
+  qwerty-bay      ph: Filipino (QWERTY, Baybayin)
+  capewell-dvorak ph: Filipino (Capewell-Dvorak, Latin)
+  capewell-dvorak-bay ph: Filipino (Capewell-Dvorak, Baybayin)
+  capewell-qwerf2k6 ph: Filipino (Capewell-QWERF 2006, Latin)
+  capewell-qwerf2k6-bay ph: Filipino (Capewell-QWERF 2006, Baybayin)
+  colemak         ph: Filipino (Colemak, Latin)
+  colemak-bay     ph: Filipino (Colemak, Baybayin)
+  dvorak          ph: Filipino (Dvorak, Latin)
+  dvorak-bay      ph: Filipino (Dvorak, Baybayin)
+  gag             md: Moldavian (Gagauz)
+  phoneticx       id: Indonesian (Arab Melayu, ext. phonetic)
+  phonetic        my: Malay (Jawi, phonetic)
+
+! option
+  grp                  Switching to another layout
+  grp:switch           Right Alt (while pressed)
+  grp:lswitch          Left Alt (while pressed)
+  grp:lwin_switch      Left Win (while pressed)
+  grp:rwin_switch      Right Win (while pressed)
+  grp:win_switch       Any Win (while pressed)
+  grp:menu_switch      Menu (while pressed), Shift+Menu for Menu
+  grp:caps_switch      Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action
+  grp:rctrl_switch     Right Ctrl (while pressed)
+  grp:toggle           Right Alt
+  grp:lalt_toggle      Left Alt
+  grp:caps_toggle      Caps Lock
+  grp:shift_caps_toggle Shift+Caps Lock
+  grp:shift_caps_switch Caps Lock to first layout; Shift+Caps Lock to last layout
+  grp:win_menu_switch  Left Win to first layout; Right Win/Menu to last layout
+  grp:lctrl_rctrl_switch Left Ctrl to first layout; Right Ctrl to last layout
+  grp:alt_caps_toggle  Alt+Caps Lock
+  grp:shifts_toggle    Both Shift together
+  grp:alts_toggle      Both Alt together
+  grp:ctrls_toggle     Both Ctrl together
+  grp:ctrl_shift_toggle Ctrl+Shift
+  grp:lctrl_lshift_toggle Left Ctrl+Left Shift
+  grp:rctrl_rshift_toggle Right Ctrl+Right Shift
+  grp:ctrl_alt_toggle  Alt+Ctrl
+  grp:alt_shift_toggle Alt+Shift
+  grp:lalt_lshift_toggle Left Alt+Left Shift
+  grp:alt_space_toggle Alt+Space
+  grp:menu_toggle      Menu
+  grp:lwin_toggle      Left Win
+  grp:win_space_toggle Win+Space
+  grp:rwin_toggle      Right Win
+  grp:lshift_toggle    Left Shift
+  grp:rshift_toggle    Right Shift
+  grp:lctrl_toggle     Left Ctrl
+  grp:rctrl_toggle     Right Ctrl
+  grp:sclk_toggle      Scroll Lock
+  grp:lctrl_lwin_rctrl_menu Left Ctrl+Left Win to first layout; Right Ctrl+Menu to second layout
+  grp:lctrl_lwin_toggle Left Ctrl+Left Win
+  lv3                  Key to choose the 3rd level
+  lv3:switch           Right Ctrl
+  lv3:menu_switch      Menu
+  lv3:win_switch       Any Win
+  lv3:lwin_switch      Left Win
+  lv3:rwin_switch      Right Win
+  lv3:alt_switch       Any Alt
+  lv3:lalt_switch      Left Alt
+  lv3:ralt_switch      Right Alt
+  lv3:ralt_switch_multikey Right Alt; Shift+Right Alt as Compose
+  lv3:ralt_alt         Right Alt never chooses 3rd level
+  lv3:enter_switch     Enter on keypad
+  lv3:caps_switch      Caps Lock
+  lv3:bksl_switch      Backslash
+  lv3:lsgt_switch      &lt;Less/Greater&gt;
+  lv3:caps_switch_latch Caps Lock; acts as onetime lock when pressed together with another 3rd-level chooser
+  lv3:bksl_switch_latch Backslash; acts as onetime lock when pressed together with another 3rd level chooser
+  lv3:lsgt_switch_latch &lt;Less/Greater&gt;; acts as onetime lock when pressed together with another 3rd level chooser
+  ctrl                 Ctrl position
+  ctrl:nocaps          Caps Lock as Ctrl
+  ctrl:lctrl_meta      Left Ctrl as Meta
+  ctrl:swapcaps        Swap Ctrl and Caps Lock
+  ctrl:swapcaps_hyper  Caps Lock as Control, Control as Hyper
+  ctrl:ac_ctrl         At left of 'A'
+  ctrl:aa_ctrl         At bottom left
+  ctrl:rctrl_ralt      Right Ctrl as Right Alt
+  ctrl:menu_rctrl      Menu as Right Ctrl
+  ctrl:swap_lalt_lctl  Swap Left Alt with Left Ctrl
+  ctrl:swap_lwin_lctl  Swap Left Win with Left Ctrl
+  ctrl:swap_rwin_rctl  Swap Right Win with Right Ctrl
+  ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Left Alt
+  grp_led              Use keyboard LED to show alternative layout
+  grp_led:num          Num Lock
+  grp_led:caps         Caps Lock
+  grp_led:scroll       Scroll Lock
+  mod_led              Use keyboard LED to indicate modifiers
+  mod_led:compose      Compose
+  keypad               Layout of numeric keypad
+  keypad:legacy        Legacy
+  keypad:oss           Unicode additions (arrows and math operators)
+  keypad:future        Unicode additions (arrows and math operators; math operators on default level)
+  keypad:legacy_wang   Legacy Wang 724
+  keypad:oss_wang      Wang 724 keypad with Unicode additions (arrows and math operators)
+  keypad:future_wang   Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)
+  keypad:hex           Hexadecimal
+  keypad:atm           ATM/phone-style
+  kpdl                 Numeric keypad Delete behavior
+  kpdl:dot             Legacy key with dot
+  kpdl:comma           Legacy key with comma
+  kpdl:dotoss          Four-level key with dot
+  kpdl:dotoss_latin9   Four-level key with dot, Latin-9 only
+  kpdl:commaoss        Four-level key with comma
+  kpdl:momayyezoss     Four-level key with momayyez
+  kpdl:kposs           Four-level key with abstract separators
+  kpdl:semi            Semicolon on third level
+  caps                 Caps Lock behavior
+  caps:internal        Caps Lock uses internal capitalization; Shift "pauses" Caps Lock
+  caps:internal_nocancel Caps Lock uses internal capitalization; Shift does not affect Caps Lock
+  caps:shift           Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock
+  caps:shift_nocancel  Caps Lock acts as Shift with locking; Shift does not affect Caps Lock
+  caps:capslock        Caps Lock toggles normal capitalization of alphabetic characters
+  caps:shiftlock       Caps Lock toggles ShiftLock (affects all keys)
+  caps:swapescape      Swap ESC and Caps Lock
+  caps:escape          Make Caps Lock an additional Esc
+  caps:escape_shifted_capslock Make unmodified Caps Lock an additional Esc, but Shift + Caps Lock behaves like regular Caps Lock
+  caps:backspace       Make Caps Lock an additional Backspace
+  caps:super           Make Caps Lock an additional Super
+  caps:hyper           Make Caps Lock an additional Hyper
+  caps:menu            Make Caps Lock an additional Menu key
+  caps:numlock         Make Caps Lock an additional Num Lock
+  caps:ctrl_modifier   Caps Lock is also a Ctrl
+  caps:none            Caps Lock is disabled
+  altwin               Alt/Win key behavior
+  altwin:menu          Add the standard behavior to Menu key
+  altwin:menu_win      Menu is mapped to Win
+  altwin:meta_alt      Alt and Meta are on Alt
+  altwin:alt_win       Alt is mapped to Win and the usual Alt
+  altwin:ctrl_win      Ctrl is mapped to Win and the usual Ctrl keys
+  altwin:ctrl_alt_win  Ctrl is mapped to Alt; Alt is mapped to Win
+  altwin:meta_win      Meta is mapped to Win
+  altwin:left_meta_win Meta is mapped to Left Win
+  altwin:hyper_win     Hyper is mapped to Win
+  altwin:alt_super_win Alt is mapped to Right Win, Super to Menu
+  altwin:swap_lalt_lwin Left Alt is swapped with Left Win
+  altwin:swap_alt_win  Alt is swapped with Win
+  altwin:prtsc_rwin    Win is mapped to PrtSc and the usual Win
+  Compose key          Position of Compose key
+  compose:ralt         Right Alt
+  compose:lwin         Left Win
+  compose:lwin-altgr   3rd level of Left Win
+  compose:rwin         Right Win
+  compose:rwin-altgr   3rd level of Right Win
+  compose:menu         Menu
+  compose:menu-altgr   3rd level of Menu
+  compose:lctrl        Left Ctrl
+  compose:lctrl-altgr  3rd level of Left Ctrl
+  compose:rctrl        Right Ctrl
+  compose:rctrl-altgr  3rd level of Right Ctrl
+  compose:caps         Caps Lock
+  compose:caps-altgr   3rd level of Caps Lock
+  compose:102          &lt;Less/Greater&gt;
+  compose:102-altgr    3rd level of &lt;Less/Greater&gt;
+  compose:paus         Pause
+  compose:prsc         PrtSc
+  compose:sclk         Scroll Lock
+  compat               Miscellaneous compatibility options
+  numpad:pc            Default numeric keypad keys
+  numpad:mac           Numeric keypad always enters digits (as in macOS)
+  numpad:microsoft     Num Lock on: digits; Shift for arrow keys. Num Lock off: arrow keys (as in Windows)
+  numpad:shift3        Shift does not cancel Num Lock, chooses 3rd level instead
+  srvrkeys:none        Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server
+  apple:alupckeys      Apple Aluminium: emulate PC keys (PrtSc, Scroll Lock, Pause, Num Lock)
+  shift:breaks_caps    Shift cancels Caps Lock
+  misc:typo            Enable extra typographic characters
+  shift:both_capslock  Both Shift together enable Caps Lock
+  shift:both_capslock_cancel Both Shift together enable Caps Lock; one Shift key disables it
+  shift:both_shiftlock Both Shift together enable Shift Lock
+  keypad:pointerkeys   Shift + Num Lock enables PointerKeys
+  grab:break_actions   Allow breaking grabs with keyboard actions (warning: security risk)
+  grab:debug           Allow grab and window tree logging
+  currencysign         Adding currency signs to certain keys
+  eurosign:e           Euro on E
+  eurosign:2           Euro on 2
+  eurosign:4           Euro on 4
+  eurosign:5           Euro on 5
+  rupeesign:4          Rupee on 4
+  lv5                  Key to choose 5th level
+  lv5:lsgt_switch      &lt;Less/Greater&gt; chooses 5th level
+  lv5:ralt_switch      Right Alt chooses 5th level
+  lv5:lsgt_switch_lock &lt;Less/Greater&gt; chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:ralt_switch_lock Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:lwin_switch_lock Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:rwin_switch_lock Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:lsgt_switch_lock_cancel &lt;Less/Greater&gt; chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:lsgt_switch      &lt;Less/Greater&gt; chooses 5th level
+  lv5:ralt_switch      Right Alt chooses 5th level
+  lv5:lsgt_switch_lock &lt;Less/Greater&gt; chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:ralt_switch_lock Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:lwin_switch_lock Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  lv5:rwin_switch_lock Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser
+  nbsp                 Using space key to input non-breaking space
+  nbsp:none            Usual space at any level
+  nbsp:level2          Non-breaking space at the 2nd level
+  nbsp:level3          Non-breaking space at the 3rd level
+  nbsp:level3s         Non-breaking space at the 3rd level, nothing at the 4th level
+  nbsp:level3n         Non-breaking space at the 3rd level, thin non-breaking space at the 4th level
+  nbsp:level4          Non-breaking space at the 4th level
+  nbsp:level4n         Non-breaking space at the 4th level, thin non-breaking space at the 6th level
+  nbsp:level4nl        Non-breaking space at the 4th level, thin non-breaking space at the 6th level (via Ctrl+Shift)
+  nbsp:zwnj2           Zero-width non-joiner at the 2nd level
+  nbsp:zwnj2zwj3       Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level
+  nbsp:zwnj2zwj3nb4    Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level, non-breaking space at the 4th level
+  nbsp:zwnj2nb3        Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level
+  nbsp:zwnj2nb3s       Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, nothing at the 4th level
+  nbsp:zwnj2nb3zwj4    Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, zero-width joiner at the 4th level
+  nbsp:zwnj2nb3nnb4    Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, thin non-breaking space at the 4th level
+  nbsp:zwnj3zwj4       Zero-width non-joiner at the 3rd level, zero-width joiner at the 4th level
+  japan                Japanese keyboard options
+  japan:kana_lock      Kana Lock key is locking
+  japan:nicola_f_bs    NICOLA-F style Backspace
+  japan:hztg_escape    Make Zenkaku Hankaku an additional Esc
+  korean               Korean Hangul/Hanja keys
+  korean:ralt_hangul   Make right Alt a Hangul key
+  korean:rctrl_hangul  Make right Ctrl a Hangul key
+  korean:ralt_hanja    Make right Alt a Hanja key
+  korean:rctrl_hanja   Make right Ctrl a Hanja key
+  esperanto            Adding Esperanto supersigned letters
+  esperanto:qwerty     To the corresponding key in a QWERTY layout
+  esperanto:dvorak     To the corresponding key in a Dvorak layout
+  esperanto:colemak    To the corresponding key in a Colemak layout
+  solaris              Maintain key compatibility with old Solaris keycodes
+  solaris:sun_compat   Sun Key compatibility
+  terminate            Key sequence to kill the X server
+  terminate:ctrl_alt_bksp Ctrl+Alt+Backspace
diff --git a/unix/usr/share/X11/xkb/rules/evdev.xml b/unix/usr/share/X11/xkb/rules/evdev.xml
new file mode 100644
index 0000000..58deed0
--- /dev/null
+++ b/unix/usr/share/X11/xkb/rules/evdev.xml
@@ -0,0 +1,7655 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
+<xkbConfigRegistry version="1.1">
+  <modelList>
+    <model>
+      <configItem>
+        <name>pc101</name>
+        <description>Generic 101-key PC</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>pc102</name>
+        <description>Generic 102-key PC (intl.)</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>pc104</name>
+        <description>Generic 104-key PC</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>pc105</name>
+        <description>Generic 105-key PC (intl.)</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dell101</name>
+        <description>Dell 101-key PC</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>latitude</name>
+        <description>Dell Latitude laptop</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dellm65</name>
+        <description>Dell Precision M65 laptop</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>everex</name>
+        <description>Everex STEPnote</description>
+        <vendor>Everex</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>flexpro</name>
+        <description>Keytronic FlexPro</description>
+        <vendor>Keytronic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoft</name>
+        <description>Microsoft Natural</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>omnikey101</name>
+        <description>Northgate OmniKey 101</description>
+        <vendor>Northgate</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>winbook</name>
+        <description>Winbook Model XP5</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>pc98</name>
+        <description>PC-98</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>a4techKB21</name>
+        <description>A4Tech KB-21</description>
+        <vendor>A4Tech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>a4techKBS8</name>
+        <description>A4Tech KBS-8</description>
+        <vendor>A4Tech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>a4_rfkb23</name>
+        <description>A4Tech Wireless Desktop RFKB-23</description>
+        <vendor>A4Tech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>airkey</name>
+        <description>Acer AirKey V</description>
+        <vendor>Acer</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>azonaRF2300</name>
+        <description>Azona RF2300 wireless Internet</description>
+        <vendor>Azona</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>scorpius</name>
+        <description>Advance Scorpius KI</description>
+        <vendor>Scorpius</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>brother</name>
+        <description>Brother Internet</description>
+        <vendor>Brother</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc5113rf</name>
+        <description>BTC 5113RF Multimedia</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc5126t</name>
+        <description>BTC 5126T</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc6301urf</name>
+        <description>BTC 6301URF</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc9000</name>
+        <description>BTC 9000</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc9000a</name>
+        <description>BTC 9000A</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc9001ah</name>
+        <description>BTC 9001AH</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc5090</name>
+        <description>BTC 5090</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc9019u</name>
+        <description>BTC 9019U</description>
+        <vendor>BTC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>btc9116u</name>
+        <description>BTC 9116U Mini Wireless Internet and Gaming</description>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cherryblue</name>
+        <description>Cherry Blue Line CyBo@rd</description>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cherryblueb</name>
+        <description>Cherry CyMotion Master XPress</description>
+        <vendor>Cherry</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cherrybluea</name>
+        <description>Cherry Blue Line CyBo@rd (alt.)</description>
+        <vendor>Cherry</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cherrycyboard</name>
+        <description>Cherry CyBo@rd USB-Hub</description>
+        <vendor>Cherry</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cherrycmexpert</name>
+        <description>Cherry CyMotion Expert</description>
+        <vendor>Cherry</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cherrybunlim</name>
+        <description>Cherry B.UNLIMITED</description>
+        <vendor>Cherry</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>chicony</name>
+        <description>Chicony Internet</description>
+        <vendor>Chicony</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>chicony0108</name>
+        <description>Chicony KU-0108</description>
+        <vendor>Chicony</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>chicony0420</name>
+        <description>Chicony KU-0420</description>
+        <vendor>Chicony</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>chicony9885</name>
+        <description>Chicony KB-9885</description>
+        <vendor>Chicony</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>compaqeak8</name>
+        <description>Compaq Easy Access</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>compaqik7</name>
+        <description>Compaq Internet (7 keys)</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>compaqik13</name>
+        <description>Compaq Internet (13 keys)</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>compaqik18</name>
+        <description>Compaq Internet (18 keys)</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>cymotionlinux</name>
+        <description>Cherry CyMotion Master Linux</description>
+        <vendor>Cherry</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>armada</name>
+        <description>Compaq Armada laptop</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>presario</name>
+        <description>Compaq Presario laptop</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>ipaq</name>
+        <description>Compaq iPaq</description>
+        <vendor>Compaq</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dell</name>
+        <description>Dell</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dellsk8125</name>
+        <description>Dell SK-8125</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dellsk8135</name>
+        <description>Dell SK-8135</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dellusbmm</name>
+        <description>Dell USB Multimedia</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>inspiron</name>
+        <description>Dell Inspiron 6000/8000 laptop</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>precision_m</name>
+        <description>Dell Precision M laptop</description>
+        <vendor>Dell</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dexxa</name>
+        <description>Dexxa Wireless Desktop</description>
+        <vendor>Dexxa</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>diamond</name>
+        <description>Diamond 9801/9802</description>
+        <vendor>Diamond</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>dtk2000</name>
+        <description>DTK2000</description>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>ennyah_dkb1008</name>
+        <description>Ennyah DKB-1008</description>
+        <vendor>Ennyah</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>fscaa1667g</name>
+        <description>Fujitsu-Siemens Amilo laptop</description>
+        <vendor>Fujitsu-Siemens</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>genius</name>
+        <description>Genius Comfy KB-16M/Multimedia KWD-910</description>
+        <vendor>Genius</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>geniuscomfy</name>
+        <description>Genius Comfy KB-12e</description>
+        <vendor>Genius</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>geniuscomfy2</name>
+        <description>Genius Comfy KB-21e-Scroll</description>
+        <vendor>Genius</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>geniuskb19e</name>
+        <description>Genius KB-19e NB</description>
+        <vendor>Genius</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>geniuskkb2050hs</name>
+        <description>Genius KKB-2050HS</description>
+        <vendor>Genius</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>gyration</name>
+        <description>Gyration</description>
+        <vendor>Gyration</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>kinesis</name>
+        <description>Kinesis</description>
+        <vendor>Kinesis</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logitech_base</name>
+        <description>Logitech</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logitech_g15</name>
+        <description>Logitech G15 extra keys via G15daemon</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpi6</name>
+        <description>Hewlett-Packard Internet</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hp250x</name>
+        <description>Hewlett-Packard NEC SK-2500 Multimedia</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpxe3gc</name>
+        <description>Hewlett-Packard Omnibook XE3 GC</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpxe3gf</name>
+        <description>Hewlett-Packard Omnibook XE3 GF</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpxt1000</name>
+        <description>Hewlett-Packard Omnibook XT1000</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpdv5</name>
+        <description>Hewlett-Packard Pavilion dv5</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpzt11xx</name>
+        <description>Hewlett-Packard Pavilion ZT1100</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hp500fa</name>
+        <description>Hewlett-Packard Omnibook 500 FA</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hp5xx</name>
+        <description>Hewlett-Packard Omnibook 500</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpnx9020</name>
+        <description>Hewlett-Packard nx9020</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hp6000</name>
+        <description>Hewlett-Packard Omnibook 6000/6100</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>honeywell_euroboard</name>
+        <description>Honeywell Euroboard</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hpmini110</name>
+        <description>Hewlett-Packard Mini 110 laptop</description>
+        <vendor>Hewlett-Packard</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>rapidaccess</name>
+        <description>IBM Rapid Access</description>
+        <vendor>Lenovo (previously IBM)</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>rapidaccess2</name>
+        <description>IBM Rapid Access II</description>
+        <vendor>Lenovo (previously IBM)</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>thinkpad</name>
+        <description>IBM ThinkPad 560Z/600/600E/A22E</description>
+        <vendor>Lenovo (previously IBM)</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>thinkpad60</name>
+        <description>IBM ThinkPad R60/T60/R61/T61</description>
+        <vendor>Lenovo (previously IBM)</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>thinkpadz60</name>
+        <description>IBM ThinkPad Z60m/Z60t/Z61m/Z61t</description>
+        <vendor>Lenovo (previously IBM)</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>ibm_spacesaver</name>
+        <description>IBM Space Saver</description>
+        <vendor>Lenovo (previously IBM)</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiaccess</name>
+        <description>Logitech Access</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiclx300</name>
+        <description>Logitech Cordless Desktop LX-300</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logii350</name>
+        <description>Logitech Internet 350</description>
+        <vendor>Logitech</vendor>
+        <hwList> <hwId>046d:c313</hwId></hwList>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logimel</name>
+        <description>Logitech Internet 350</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicd</name>
+        <description>Logitech Cordless Desktop</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicd_it</name>
+        <description>Logitech Cordless Desktop iTouch</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicd_nav</name>
+        <description>Logitech Cordless Desktop Navigator</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicd_opt</name>
+        <description>Logitech Cordless Desktop Optical</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicda</name>
+        <description>Logitech Cordless Desktop (alt.)</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicdpa2</name>
+        <description>Logitech Cordless Desktop Pro (2nd alt.)</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicfn</name>
+        <description>Logitech Cordless Freedom/Desktop Navigator</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicdn</name>
+        <description>Logitech Cordless Desktop Navigator</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiitc</name>
+        <description>Logitech iTouch Cordless Y-RB6</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiik</name>
+        <description>Logitech Internet</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>itouch</name>
+        <description>Logitech iTouch</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logicink</name>
+        <description>Logitech Internet Navigator</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiex110</name>
+        <description>Logitech Cordless Desktop EX110</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiinkse</name>
+        <description>Logitech iTouch Internet Navigator SE</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiinkseusb</name>
+        <description>Logitech iTouch Internet Navigator SE USB</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiultrax</name>
+        <description>Logitech Ultra-X</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logiultraxc</name>
+        <description>Logitech Ultra-X Cordless Media Desktop</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logidinovo</name>
+        <description>Logitech diNovo</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>logidinovoedge</name>
+        <description>Logitech diNovo Edge</description>
+        <vendor>Logitech</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>mx1998</name>
+        <description>Memorex MX1998</description>
+        <vendor>Memorex</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>mx2500</name>
+        <description>Memorex MX2500 EZ-Access</description>
+        <vendor>Memorex</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>mx2750</name>
+        <description>Memorex MX2750</description>
+        <vendor>Memorex</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoft4000</name>
+        <description>Microsoft Natural Ergonomic 4000</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoft7000</name>
+        <description>Microsoft Natural Wireless Ergonomic 7000</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftinet</name>
+        <description>Microsoft Internet</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftpro</name>
+        <description>Microsoft Natural Pro/Internet Pro</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftprousb</name>
+        <description>Microsoft Natural Pro USB/Internet Pro</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftprooem</name>
+        <description>Microsoft Natural Pro OEM</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>vsonku306</name>
+        <description>ViewSonic KU-306 Internet</description>
+        <vendor>ViewSonic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftprose</name>
+        <description>Microsoft Internet Pro (Swedish)</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftoffice</name>
+        <description>Microsoft Office Keyboard</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftmult</name>
+        <description>Microsoft Wireless Multimedia 1.0A</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftsurface</name>
+        <description>Microsoft Surface</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftelite</name>
+        <description>Microsoft Natural Elite</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>microsoftccurve2k</name>
+        <description>Microsoft Comfort Curve 2000</description>
+        <vendor>Microsoft</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>oretec</name>
+        <description>Ortek Multimedia/Internet MCK-800</description>
+        <vendor>Ortek</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>propeller</name>
+        <description>Propeller Voyager KTEZ-1000</description>
+        <vendor>KeyTronic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>qtronix</name>
+        <description>QTronix Scorpius 98N+</description>
+        <vendor>QTronix</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>samsung4500</name>
+        <description>Samsung SDM 4500P</description>
+        <vendor>Samsung</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>samsung4510</name>
+        <description>Samsung SDM 4510P</description>
+        <vendor>Samsung</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sanwaskbkg3</name>
+        <description>Sanwa Supply SKB-KG3</description>
+        <vendor>Sanwa Supply Inc.</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sk1300</name>
+        <description>NEC SK-1300</description>
+        <vendor>NEC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sk2500</name>
+        <description>NEC SK-2500</description>
+        <vendor>NEC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sk6200</name>
+        <description>NEC SK-6200</description>
+        <vendor>NEC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sk7100</name>
+        <description>NEC SK-7100</description>
+        <vendor>NEC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sp_inet</name>
+        <description>Super Power Multimedia</description>
+        <vendor>Generic</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sven</name>
+        <description>SVEN Ergonomic 2500</description>
+        <vendor>SVEN</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sven303</name>
+        <description>SVEN Slim 303</description>
+        <vendor>SVEN</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>symplon</name>
+        <description>Symplon PaceBook tablet</description>
+        <vendor>Symplon</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>toshiba_s3000</name>
+        <description>Toshiba Satellite S3000</description>
+        <vendor>Toshiba</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>trust</name>
+        <description>Trust Wireless Classic</description>
+        <vendor>Trust</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>trustda</name>
+        <description>Trust Direct Access</description>
+        <vendor>Trust</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>trust_slimline</name>
+        <description>Trust Slimline</description>
+        <vendor>Trust</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>tm2020</name>
+        <description>TypeMatrix EZ-Reach 2020</description>
+        <vendor>TypeMatrix</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>tm2030PS2</name>
+        <description>TypeMatrix EZ-Reach 2030 PS2</description>
+        <vendor>TypeMatrix</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>tm2030USB</name>
+        <description>TypeMatrix EZ-Reach 2030 USB</description>
+        <vendor>TypeMatrix</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>tm2030USB-102</name>
+        <description>TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)</description>
+        <vendor>TypeMatrix</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>tm2030USB-106</name>
+        <description>TypeMatrix EZ-Reach 2030 USB (106:JP mode)</description>
+        <vendor>TypeMatrix</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>yahoo</name>
+        <description>Yahoo! Internet</description>
+        <vendor>Yahoo!</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>macbook78</name>
+        <description>MacBook/MacBook Pro</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>macbook79</name>
+        <description>MacBook/MacBook Pro (intl.)</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>macintosh</name>
+        <description>Macintosh</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>macintosh_old</name>
+        <description>Macintosh Old</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>macintosh_hhk</name>
+        <description>Happy Hacking for Mac</description>
+        <vendor>Fujitsu</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>acer_c300</name>
+        <description>Acer C300</description>
+        <vendor>Acer</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>acer_ferrari4k</name>
+        <description>Acer Ferrari 4000</description>
+        <vendor>Acer</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>acer_laptop</name>
+        <description>Acer laptop</description>
+        <vendor>Acer</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>asus_laptop</name>
+        <description>Asus laptop</description>
+        <vendor>Asus</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>apple</name>
+        <description>Apple</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>apple_laptop</name>
+        <description>Apple laptop</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>applealu_ansi</name>
+        <description>Apple Aluminium (ANSI)</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>applealu_iso</name>
+        <description>Apple Aluminium (ISO)</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>applealu_jis</name>
+        <description>Apple Aluminium (JIS)</description>
+        <vendor>Apple</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>silvercrest</name>
+        <description>Silvercrest Multimedia Wireless</description>
+        <vendor>Silvercrest</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>emachines</name>
+        <description>eMachines m6800 laptop</description>
+        <vendor>eMachines</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>benqx</name>
+        <description>BenQ X-Touch</description>
+        <vendor>BenQ</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>benqx730</name>
+        <description>BenQ X-Touch 730</description>
+        <vendor>BenQ</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>benqx800</name>
+        <description>BenQ X-Touch 800</description>
+        <vendor>BenQ</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>hhk</name>
+        <description>Happy Hacking</description>
+        <vendor>Fujitsu</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>classmate</name>
+        <description>Classmate PC</description>
+        <vendor>Intel</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>olpc</name>
+        <description>OLPC</description>
+        <vendor>OLPC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type7_usb</name>
+        <description>Sun Type 7 USB</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type7_euro_usb</name>
+        <description>Sun Type 7 USB (European)</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type7_unix_usb</name>
+        <description>Sun Type 7 USB (Unix)</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type7_jp_usb</name>
+        <description>Sun Type 7 USB (Japanese)/Japanese 106-key</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type6_usb</name>
+        <description>Sun Type 6/7 USB</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type6_euro_usb</name>
+        <description>Sun Type 6/7 USB (European)</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type6_unix_usb</name>
+        <description>Sun Type 6 USB (Unix)</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type6_jp_usb</name>
+        <description>Sun Type 6 USB (Japanese)</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>sun_type6_jp</name>
+        <description>Sun Type 6 (Japanese)</description>
+        <vendor>Sun Microsystems</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>targa_v811</name>
+        <description>Targa Visionary 811</description>
+        <vendor>Targa</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>unitekkb1925</name>
+        <description>Unitek KB-1925</description>
+        <vendor>Unitek Group</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>compalfl90</name>
+        <description>FL90</description>
+        <vendor>Compal Electronics</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+        <name>creativedw7000</name>
+        <description>Creative Desktop Wireless 7000</description>
+        <vendor>Creative</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
+       <name>teck227</name>
+       <description>Truly Ergonomic 227</description>
+       <vendor>Truly Ergonomic</vendor>
+     </configItem>
+    </model>
+    <model>
+      <configItem>
+       <name>teck229</name>
+       <description>Truly Ergonomic 229</description>
+       <vendor>Truly Ergonomic</vendor>
+     </configItem>
+    </model>
+    <model>
+      <configItem>
+       <name>apex300</name>
+       <description>SteelSeries Apex 300 (Apex RAW)</description>
+       <vendor>SteelSeries</vendor>
+     </configItem>
+    </model>
+    <model>
+      <configItem>
+       <name>chromebook</name>
+       <description>Chromebook</description>
+       <vendor>Google</vendor>
+     </configItem>
+    </model>
+    <model>
+      <configItem>
+       <name>teck227</name>
+       <description>Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys)</description>
+       <vendor>Megawin Technology</vendor>
+     </configItem>
+    </model>
+    <model>
+      <configItem>
+       <name>teck229</name>
+       <description>Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key)</description>
+       <vendor>Megawin Technology</vendor>
+     </configItem>
+    </model>
+  </modelList>
+  <layoutList>
+    <layout>
+      <configItem>
+        <name>us</name>
+        <!-- Keyboard indicator for English layouts -->
+        <shortDescription>en</shortDescription>
+        <description>English (US)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>chr</name>
+            <!-- Keyboard indicator for Cherokee layouts -->
+            <shortDescription>chr</shortDescription>
+            <description>Cherokee</description>
+            <languageList>
+              <iso639Id>chr</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>euro</name>
+            <description>English (US, euro on 5)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>intl</name>
+            <description>English (US, intl., with dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>alt-intl</name>
+            <description>English (US, alt. intl.)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak</name>
+            <description>English (Colemak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>English (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-intl</name>
+            <description>English (Dvorak, intl., with dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-alt-intl</name>
+            <description>English (Dvorak, alt. intl.)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-l</name>
+            <description>English (Dvorak, left-handed)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-r</name>
+            <description>English (Dvorak, right-handed)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-classic</name>
+            <description>English (classic Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvp</name>
+            <description>English (programmer Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rus</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (US, phonetic)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>English (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>altgr-intl</name>
+            <description>English (intl., with AltGr dead keys)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+              <iso639Id>fra</iso639Id>
+              <iso639Id>deu</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>olpc2</name>
+            <description>English (the divide/multiply keys toggle the layout)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>hbs</name>
+            <description>Serbo-Croatian (US)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+              <iso639Id>bos</iso639Id>
+              <iso639Id>hbs</iso639Id>
+              <iso639Id>hrv</iso639Id>
+              <iso639Id>srp</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>norman</name>
+            <description>English (Norman)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>workman</name>
+            <description>English (Workman)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>workman-intl</name>
+            <description>English (Workman, intl., with dead keys)</description>
+           </configItem>
+         </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>af</name>
+        <!-- Keyboard indicator for Afghani layouts -->
+        <shortDescription>fa</shortDescription>
+        <description>Afghani</description>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>ps</name>
+            <!-- Keyboard indicator for Pashto layouts -->
+            <shortDescription>ps</shortDescription>
+            <description>Pashto</description>
+            <languageList>
+              <iso639Id>pus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>uz</name>
+            <!-- Keyboard indicator for Uzbek layouts -->
+            <shortDescription>uz</shortDescription>
+            <description>Uzbek (Afghanistan)</description>
+            <languageList>
+              <iso639Id>uzb</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>olpc-ps</name>
+            <!-- Keyboard indicator for Pashto layouts -->
+            <shortDescription>ps</shortDescription>
+            <description>Pashto (Afghanistan, OLPC)</description>
+            <languageList>
+              <iso639Id>pus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fa-olpc</name>
+            <!-- Keyboard indicator for Persian layouts -->
+            <shortDescription>fa</shortDescription>
+            <description>Persian (Afghanistan, Dari OLPC)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>uz-olpc</name>
+            <!-- Keyboard indicator for Uzbek layouts -->
+            <shortDescription>uz</shortDescription>
+            <description>Uzbek (Afghanistan, OLPC)</description>
+            <languageList>
+              <iso639Id>uzb</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ara</name>
+        <!-- Keyboard indicator for Arabic layouts -->
+        <shortDescription>ar</shortDescription>
+        <description>Arabic</description>
+        <countryList>
+          <iso3166Id>AE</iso3166Id>
+          <iso3166Id>BH</iso3166Id>
+          <iso3166Id>DZ</iso3166Id>
+          <iso3166Id>EG</iso3166Id>
+          <iso3166Id>EH</iso3166Id>
+          <iso3166Id>JO</iso3166Id>
+          <iso3166Id>KW</iso3166Id>
+          <iso3166Id>LB</iso3166Id>
+          <iso3166Id>LY</iso3166Id>
+          <iso3166Id>MA</iso3166Id>
+          <iso3166Id>MR</iso3166Id>
+          <iso3166Id>OM</iso3166Id>
+          <iso3166Id>PS</iso3166Id>
+          <iso3166Id>QA</iso3166Id>
+          <iso3166Id>SA</iso3166Id>
+          <iso3166Id>SD</iso3166Id>
+          <iso3166Id>SY</iso3166Id>
+          <iso3166Id>TN</iso3166Id>
+          <iso3166Id>YE</iso3166Id>
+        </countryList>
+        <languageList>
+          <iso639Id>ara</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>azerty</name>
+            <description>Arabic (AZERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>azerty_digits</name>
+            <description>Arabic (AZERTY/digits)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>digits</name>
+            <description>Arabic (digits)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty</name>
+            <description>Arabic (QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty_digits</name>
+            <description>Arabic (qwerty/digits)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>buckwalter</name>
+            <description>Arabic (Buckwalter)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>olpc</name>
+            <description>Arabic (OLPC)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Arabic (Macintosh)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>al</name>
+        <!-- Keyboard indicator for Albanian layouts -->
+        <shortDescription>sq</shortDescription>
+        <description>Albanian</description>
+        <languageList>
+          <iso639Id>sqi</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>plisi</name>
+            <description>Albanian (Plisi)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>veqilharxhi</name>
+            <description>Albanian (Veqilharxhi)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>am</name>
+        <!-- Keyboard indicator for Armenian layouts -->
+        <shortDescription>hy</shortDescription>
+        <description>Armenian</description>
+        <languageList>
+          <iso639Id>hye</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>phonetic</name>
+            <description>Armenian (phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic-alt</name>
+            <description>Armenian (alt. phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>eastern</name>
+            <description>Armenian (eastern)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>western</name>
+            <description>Armenian (western)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>eastern-alt</name>
+            <description>Armenian (alt. eastern)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>at</name>
+        <!-- Keyboard indicator for German layouts -->
+        <shortDescription>de</shortDescription>
+        <description>German (Austria)</description>
+        <languageList>
+          <iso639Id>deu</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>German (Austria, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>German (Austria, with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>German (Austria, Macintosh)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>au</name>
+        <!-- Keyboard indicator for Australian layouts -->
+        <shortDescription>en</shortDescription>
+        <description>English (Australian)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>az</name>
+        <!-- Keyboard indicator for Azerbaijani layouts -->
+        <shortDescription>az</shortDescription>
+        <description>Azerbaijani</description>
+        <languageList>
+          <iso639Id>aze</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>cyrillic</name>
+            <description>Azerbaijani (Cyrillic)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>by</name>
+        <!-- Keyboard indicator for Belarusian layouts -->
+        <shortDescription>by</shortDescription>
+        <description>Belarusian</description>
+        <languageList>
+          <iso639Id>bel</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>Belarusian (legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latin</name>
+            <description>Belarusian (Latin)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>be</name>
+        <!-- Keyboard indicator for Belgian layouts -->
+        <shortDescription>be</shortDescription>
+        <description>Belgian</description>
+        <languageList>
+          <iso639Id>deu</iso639Id>
+          <iso639Id>nld</iso639Id>
+          <iso639Id>fra</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>oss</name>
+            <description>Belgian (alt.)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oss_latin9</name>
+            <description>Belgian (alt., Latin-9 only)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oss_sundeadkeys</name>
+            <description>Belgian (alt., with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>iso-alternate</name>
+            <description>Belgian (alt. ISO)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Belgian (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>Belgian (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>wang</name>
+            <description>Belgian (Wang 724 AZERTY)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>bd</name>
+        <!-- Keyboard indicator for Bangla layouts -->
+        <shortDescription>bn</shortDescription>
+        <description>Bangla</description>
+        <languageList>
+          <iso639Id>ben</iso639Id>
+          <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+          <iso639Id>sat</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>probhat</name>
+            <description>Bangla (Probhat)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>in</name>
+        <!-- Keyboard indicator for Indian layouts -->
+        <shortDescription>in</shortDescription>
+        <description>Indian</description>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>ben</name>
+            <!-- Keyboard indicator for Bangla layouts -->
+            <shortDescription>bn</shortDescription>
+            <description>Bangla (India)</description>
+            <languageList>
+              <iso639Id>ben</iso639Id>
+              <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ben_probhat</name>
+            <!-- Keyboard indicator for Bangla layouts -->
+            <shortDescription>bn</shortDescription>
+            <description>Bangla (India, Probhat)</description>
+            <languageList>
+              <iso639Id>ben</iso639Id>
+              <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ben_baishakhi</name>
+            <description>Bangla (India, Baishakhi)</description>
+            <languageList>
+              <iso639Id>ben</iso639Id>
+              <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ben_bornona</name>
+            <description>Bangla (India, Bornona)</description>
+            <languageList>
+              <iso639Id>ben</iso639Id>
+              <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+         <variant>
+          <configItem>
+            <name>ben_gitanjali</name>
+            <description>Bangla (India, Uni Gitanjali)</description>
+            <languageList>
+              <iso639Id>ben</iso639Id>
+              <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ben_inscript</name>
+            <description>Bangla (India, Baishakhi Inscript)</description>
+            <languageList>
+              <iso639Id>ben</iso639Id>
+              <!-- sat-Beng: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>eeyek</name>
+            <description>Manipuri (Eeyek)</description>
+            <languageList>
+              <iso639Id>mni</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>guj</name>
+            <!-- Keyboard indicator for Gujarati layouts -->
+            <shortDescription>gu</shortDescription>
+            <description>Gujarati</description>
+            <languageList>
+              <iso639Id>guj</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>guru</name>
+            <!-- Keyboard indicator for Punjabi layouts -->
+            <shortDescription>pa</shortDescription>
+            <description>Punjabi (Gurmukhi)</description>
+            <languageList>
+              <iso639Id>pan</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>jhelum</name>
+            <!-- Keyboard indicator for Punjabi layouts -->
+            <shortDescription>pa</shortDescription>
+            <description>Punjabi (Gurmukhi Jhelum)</description>
+            <languageList>
+              <iso639Id>pan</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>kan</name>
+            <!-- Keyboard indicator for Kannada layouts -->
+            <shortDescription>kn</shortDescription>
+            <description>Kannada</description>
+            <languageList>
+              <iso639Id>kan</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>kan-kagapa</name>
+            <!-- Keyboard indicator for Kannada layouts -->
+            <shortDescription>kn</shortDescription>
+            <description>Kannada (KaGaPa phonetic)</description>
+            <languageList>
+              <iso639Id>kan</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mal</name>
+            <!-- Keyboard indicator for Malayalam layouts -->
+            <shortDescription>ml</shortDescription>
+            <description>Malayalam</description>
+            <languageList>
+              <iso639Id>mal</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mal_lalitha</name>
+            <!-- Keyboard indicator for Malayalam layouts -->
+            <shortDescription>ml</shortDescription>
+            <description>Malayalam (Lalitha)</description>
+            <languageList>
+              <iso639Id>mal</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mal_enhanced</name>
+            <!-- Keyboard indicator for Malayalam layouts -->
+            <shortDescription>ml</shortDescription>
+            <description>Malayalam (enhanced Inscript, with rupee)</description>
+            <languageList>
+              <iso639Id>mal</iso639Id>
+            </languageList>
+          </configItem>
+         </variant>
+         <variant>
+           <configItem>
+            <name>ori</name>
+            <!-- Keyboard indicator for Oriya layouts -->
+            <shortDescription>or</shortDescription>
+            <description>Oriya</description>
+            <languageList>
+              <iso639Id>ori</iso639Id>
+              <!-- sat-Orya: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+           <configItem>
+            <name>olck</name>
+            <!-- Keyboard indicator for Ol Chiki layouts -->
+            <shortDescription>sat</shortDescription>
+            <description>Ol Chiki</description>
+            <languageList>
+              <!-- sat-Olck: http://www.ethnologue.com/language/sat -->
+              <iso639Id>sat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tam_tamilnet</name>
+            <!-- Keyboard indicator for Tamil layouts -->
+            <shortDescription>ta</shortDescription>
+            <description>Tamil (TamilNet '99)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tam_tamilnet_with_tam_nums</name>
+            <!-- Keyboard indicator for Tamil layouts -->
+            <shortDescription>ta</shortDescription>
+            <description>Tamil (TamilNet '99 with Tamil numerals)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tam_tamilnet_TAB</name>
+            <!-- Keyboard indicator for Tamil layouts -->
+            <shortDescription>ta</shortDescription>
+            <description>Tamil (TamilNet '99, TAB encoding)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tam_tamilnet_TSCII</name>
+            <!-- Keyboard indicator for Tamil layouts -->
+            <shortDescription>ta</shortDescription>
+            <description>Tamil (TamilNet '99, TSCII encoding)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tam</name>
+            <!-- Keyboard indicator for Tamil layouts -->
+            <shortDescription>ta</shortDescription>
+            <description>Tamil (Inscript)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tel</name>
+            <!-- Keyboard indicator for Telugu layouts -->
+            <shortDescription>te</shortDescription>
+            <description>Telugu</description>
+            <languageList>
+              <iso639Id>tel</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tel-kagapa</name>
+            <!-- Keyboard indicator for Telugu layouts -->
+            <shortDescription>te</shortDescription>
+            <description>Telugu (KaGaPa phonetic)</description>
+            <languageList>
+              <iso639Id>tel</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tel-sarala</name>
+            <!-- Keyboard indicator for Telugu layouts -->
+            <shortDescription>te</shortDescription>
+            <description>Telugu (Sarala)</description>
+            <languageList>
+              <iso639Id>tel</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tel-kagapa</name>
+            <!-- Keyboard indicator for Telugu layouts -->
+            <shortDescription>te</shortDescription>
+            <description>Telugu (KaGaPa phonetic)</description>
+            <languageList>
+              <iso639Id>tel</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>urd-phonetic</name>
+            <!-- Keyboard indicator for Urdu layouts -->
+            <shortDescription>ur</shortDescription>
+            <description>Urdu (phonetic)</description>
+            <languageList>
+              <iso639Id>urd</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>urd-phonetic3</name>
+            <!-- Keyboard indicator for Urdu layouts -->
+            <shortDescription>ur</shortDescription>
+            <description>Urdu (alt. phonetic)</description>
+            <languageList>
+              <iso639Id>urd</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>urd-winkeys</name>
+            <!-- Keyboard indicator for Urdu layouts -->
+            <shortDescription>ur</shortDescription>
+            <description>Urdu (Win keys)</description>
+            <languageList>
+              <iso639Id>urd</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bolnagri</name>
+            <!-- Keyboard indicator for Hindi layouts -->
+            <shortDescription>hi</shortDescription>
+            <description>Hindi (Bolnagri)</description>
+            <languageList>
+              <iso639Id>hin</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>hin-wx</name>
+            <!-- Keyboard indicator for Hindi layouts -->
+            <shortDescription>hi</shortDescription>
+            <description>Hindi (Wx)</description>
+            <languageList>
+              <iso639Id>hin</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>hin-kagapa</name>
+            <!-- Keyboard indicator for Hindi layouts -->
+            <shortDescription>hi</shortDescription>
+            <description>Hindi (KaGaPa phonetic)</description>
+            <languageList>
+              <iso639Id>hin</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>san-kagapa</name>
+            <!-- Keyboard indicator for Sanskrit layouts -->
+            <shortDescription>sa</shortDescription>
+            <description>Sanskrit (KaGaPa phonetic)</description>
+            <languageList>
+              <iso639Id>san</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mar-kagapa</name>
+            <!-- Keyboard indicator for Marathi layouts -->
+            <shortDescription>mr</shortDescription>
+            <description>Marathi (KaGaPa phonetic)</description>
+            <languageList>
+              <iso639Id>mar</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>eng</name>
+            <!-- Keyboard indicator for English layouts -->
+            <shortDescription>en</shortDescription>
+            <description>English (India, with rupee)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ba</name>
+        <!-- Keyboard indicator for Bosnian layouts -->
+        <shortDescription>bs</shortDescription>
+        <description>Bosnian</description>
+        <languageList>
+          <iso639Id>bos</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>alternatequotes</name>
+            <description>Bosnian (with guillemets)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>unicode</name>
+            <description>Bosnian (with Bosnian digraphs)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>unicodeus</name>
+            <description>Bosnian (US, with Bosnian digraphs)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Bosnian (US, with Bosnian letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>br</name>
+        <!-- Keyboard indicator for Portuguese layouts -->
+        <shortDescription>pt</shortDescription>
+        <description>Portuguese (Brazil)</description>
+        <languageList>
+          <iso639Id>por</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Portuguese (Brazil, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Portuguese (Brazil, Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nativo</name>
+            <description>Portuguese (Brazil, Nativo)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nativo-us</name>
+            <description>Portuguese (Brazil, Nativo for US keyboards)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nativo-epo</name>
+            <description>Esperanto (Brazil, Nativo)</description>
+            <languageList>
+              <iso639Id>epo</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>thinkpad</name>
+            <description>Portuguese (Brazil, IBM/Lenovo ThinkPad)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>bg</name>
+        <!-- Keyboard indicator for Bulgarian layouts -->
+        <shortDescription>bg</shortDescription>
+        <description>Bulgarian</description>
+        <languageList>
+          <iso639Id>bul</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>phonetic</name>
+            <description>Bulgarian (traditional phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bas_phonetic</name>
+            <description>Bulgarian (new phonetic)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>dz</name>
+        <shortDescription>la</shortDescription>
+        <description>Berber (Algeria, Latin)</description>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>ber</name>
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Algeria, Tifinagh)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ar</name>
+            <shortDescription>ar</shortDescription>
+            <description>Arabic (Algeria)</description>
+            <languageList>
+              <iso639Id>ara</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ma</name>
+        <!-- Keyboard indicator for Arabic layouts -->
+        <shortDescription>ar</shortDescription>
+        <description>Arabic (Morocco)</description>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>french</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Morocco)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tifinagh</name>
+            <!-- Keyboard indicator for Berber layouts -->
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Morocco, Tifinagh)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tifinagh-alt</name>
+            <!-- Keyboard indicator for Berber layouts -->
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Morocco, Tifinagh alt.)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tifinagh-alt-phonetic</name>
+            <!-- Keyboard indicator for Berber layouts -->
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Morocco, Tifinagh alt. phonetic)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tifinagh-extended</name>
+            <!-- Keyboard indicator for Berber layouts -->
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Morocco, Tifinagh extended)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tifinagh-phonetic</name>
+            <!-- Keyboard indicator for Berber layouts -->
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Morocco, Tifinagh phonetic)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tifinagh-extended-phonetic</name>
+            <!-- Keyboard indicator for Berber layouts -->
+            <shortDescription>ber</shortDescription>
+            <description>Berber (Morocco, Tifinagh extended phonetic)</description>
+            <languageList>
+              <iso639Id>ber</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>cm</name>
+        <!-- Keyboard indicator for Cameroon layouts -->
+        <shortDescription>cm</shortDescription>
+        <description>English (Cameroon)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>french</name>
+            <description>French (Cameroon)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty</name>
+            <description>Cameroon Multilingual (QWERTY)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+              <iso639Id>bas</iso639Id>
+              <iso639Id>nmg</iso639Id>
+              <iso639Id>fub</iso639Id>
+              <iso639Id>ewo</iso639Id>
+              <iso639Id>xmd</iso639Id>
+              <iso639Id>mfh</iso639Id>
+              <iso639Id>bkm</iso639Id>
+              <iso639Id>ozm</iso639Id>
+              <iso639Id>lns</iso639Id>
+              <iso639Id>sox</iso639Id>
+              <iso639Id>pny</iso639Id>
+              <iso639Id>wes</iso639Id>
+              <iso639Id>lem</iso639Id>
+              <iso639Id>nyj</iso639Id>
+              <iso639Id>mfk</iso639Id>
+              <iso639Id>mcp</iso639Id>
+              <iso639Id>ass</iso639Id>
+              <iso639Id>xed</iso639Id>
+              <iso639Id>dua</iso639Id>
+              <iso639Id>anv</iso639Id>
+              <iso639Id>bum</iso639Id>
+              <iso639Id>btb</iso639Id>
+              <iso639Id>bfd</iso639Id>
+              <iso639Id>azo</iso639Id>
+              <iso639Id>ken</iso639Id>
+              <iso639Id>yam</iso639Id>
+              <iso639Id>yat</iso639Id>
+              <iso639Id>yas</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>azerty</name>
+            <description>Cameroon Multilingual (AZERTY)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+              <iso639Id>bas</iso639Id>
+              <iso639Id>nmg</iso639Id>
+              <iso639Id>fub</iso639Id>
+              <iso639Id>ewo</iso639Id>
+              <iso639Id>xmd</iso639Id>
+              <iso639Id>mfh</iso639Id>
+              <iso639Id>bkm</iso639Id>
+              <iso639Id>ozm</iso639Id>
+              <iso639Id>lns</iso639Id>
+              <iso639Id>sox</iso639Id>
+              <iso639Id>pny</iso639Id>
+              <iso639Id>wes</iso639Id>
+              <iso639Id>lem</iso639Id>
+              <iso639Id>nyj</iso639Id>
+              <iso639Id>mfk</iso639Id>
+              <iso639Id>mcp</iso639Id>
+              <iso639Id>ass</iso639Id>
+              <iso639Id>xed</iso639Id>
+              <iso639Id>dua</iso639Id>
+              <iso639Id>anv</iso639Id>
+              <iso639Id>bum</iso639Id>
+              <iso639Id>btb</iso639Id>
+              <iso639Id>bfd</iso639Id>
+              <iso639Id>azo</iso639Id>
+              <iso639Id>ken</iso639Id>
+              <iso639Id>yam</iso639Id>
+              <iso639Id>yat</iso639Id>
+              <iso639Id>yas</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Cameroon Multilingual (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mmuock</name>
+            <description>Mmuock</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>mm</name>
+        <!-- Keyboard indicator for Burmese layouts -->
+        <shortDescription>my</shortDescription>
+        <description>Burmese</description>
+        <languageList>
+          <iso639Id>mya</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>zawgyi</name>
+            <shortDescription>zg</shortDescription>
+            <description>Burmese Zawgyi</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ca</name>
+        <!-- Keyboard indicator for French layouts -->
+        <shortDescription>fr</shortDescription>
+        <description>French (Canada)</description>
+        <languageList>
+          <iso639Id>fra</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>fr-dvorak</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Canada, Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fr-legacy</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Canada, legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>multix</name>
+            <description>Canadian Multilingual</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>multi</name>
+            <description>Canadian Multilingual (1st part)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>multi-2gr</name>
+            <description>Canadian Multilingual (2nd part)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ike</name>
+            <!-- Keyboard indicator for Inuktikut layouts -->
+            <shortDescription>ike</shortDescription>
+            <description>Inuktitut</description>
+            <languageList>
+              <iso639Id>iku</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>eng</name>
+            <!-- Keyboard indicator for English layouts -->
+            <shortDescription>en</shortDescription>
+            <description>English (Canada)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>cd</name>
+        <!-- Keyboard indicator for French layouts -->
+        <shortDescription>fr</shortDescription>
+        <description>French (Democratic Republic of the Congo)</description>
+        <languageList>
+          <iso639Id>fra</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>cn</name>
+        <!-- Keyboard indicator for Chinese layouts -->
+        <shortDescription>zh</shortDescription>
+        <description>Chinese</description>
+        <languageList>
+          <iso639Id>zho</iso639Id>
+        </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>
+            <description>Tibetan</description>
+            <languageList>
+              <iso639Id>tib</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tib_asciinum</name>
+            <description>Tibetan (with ASCII numerals)</description>
+            <languageList>
+              <iso639Id>tib</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ug</name>
+            <shortDescription>ug</shortDescription>
+            <description>Uyghur</description>
+            <languageList>
+              <iso639Id>uig</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>altgr-pinyin</name>
+            <description>Hanyu Pinyin (altgr)</description>
+            <languageList>
+              <iso639Id>zho</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>hr</name>
+        <!-- Keyboard indicator for Croatian layouts -->
+        <shortDescription>hr</shortDescription>
+        <description>Croatian</description>
+        <languageList>
+          <iso639Id>hrv</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>alternatequotes</name>
+            <description>Croatian (with guillemets)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>unicode</name>
+            <description>Croatian (with Croatian digraphs)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>unicodeus</name>
+            <description>Croatian (US, with Croatian digraphs)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Croatian (US, with Croatian letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>cz</name>
+        <!-- Keyboard indicator for Chech layouts -->
+        <shortDescription>cs</shortDescription>
+        <description>Czech</description>
+        <languageList>
+          <iso639Id>ces</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>bksl</name>
+            <description>Czech (with &lt;\|&gt; key)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty</name>
+            <description>Czech (QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty_bksl</name>
+            <description>Czech (QWERTY, extended backslash)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty-mac</name>
+            <description>Czech (QWERTY, Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ucw</name>
+            <description>Czech (UCW, only accented letters)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-ucw</name>
+            <description>Czech (US, Dvorak, UCW support)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rus</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Czech, phonetic)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>dk</name>
+        <!-- Keyboard indicator for Danish layouts -->
+        <shortDescription>da</shortDescription>
+        <description>Danish</description>
+        <languageList>
+          <iso639Id>dan</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Danish (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Danish (Win keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Danish (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_nodeadkeys</name>
+            <description>Danish (Macintosh, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Danish (Dvorak)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>nl</name>
+        <!-- Keyboard indicator for Dutch layouts -->
+        <shortDescription>nl</shortDescription>
+        <description>Dutch</description>
+        <languageList>
+          <iso639Id>nld</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>Dutch (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Dutch (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>std</name>
+            <description>Dutch (standard)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>bt</name>
+        <!-- Keyboard indicator for Dzongkha layouts -->
+        <shortDescription>dz</shortDescription>
+        <description>Dzongkha</description>
+        <languageList>
+          <iso639Id>dzo</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ee</name>
+        <!-- Keyboard indicator for Estonian layouts -->
+        <shortDescription>et</shortDescription>
+        <description>Estonian</description>
+        <languageList>
+          <iso639Id>est</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Estonian (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Estonian (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Estonian (US, with Estonian letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ir</name>
+        <!-- Keyboard indicator for Persian layouts -->
+        <shortDescription>fa</shortDescription>
+        <description>Persian</description>
+        <languageList>
+          <iso639Id>fas</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>pes_keypad</name>
+            <description>Persian (with Persian keypad)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iran, Latin Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_f</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iran, F)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_alt</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iran, Latin Alt-Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_ara</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iran, Arabic-Latin)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>iq</name>
+        <!-- Keyboard indicator for Iraqi layouts -->
+        <shortDescription>ar</shortDescription>
+        <description>Iraqi</description>
+        <languageList>
+          <iso639Id>ara</iso639Id>
+          <iso639Id>kur</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>ku</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iraq, Latin Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_f</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iraq, F)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_alt</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iraq, Latin Alt-Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_ara</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Iraq, Arabic-Latin)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>fo</name>
+        <!-- Keyboard indicator for Faroese layouts -->
+        <shortDescription>fo</shortDescription>
+        <description>Faroese</description>
+        <languageList>
+          <iso639Id>fao</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Faroese (no dead keys)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>fi</name>
+        <!-- Keyboard indicator for Finnish layouts -->
+        <shortDescription>fi</shortDescription>
+        <description>Finnish</description>
+        <languageList>
+          <iso639Id>fin</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Finnish (Winkeys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>classic</name>
+            <description>Finnish (classic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Finnish (classic, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>smi</name>
+            <description>Northern Saami (Finland)</description>
+            <languageList>
+              <iso639Id>sme</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Finnish (Macintosh)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>fr</name>
+        <!-- Keyboard indicator for French layouts -->
+        <shortDescription>fr</shortDescription>
+        <description>French</description>
+        <languageList>
+          <iso639Id>fra</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>French (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>French (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oss</name>
+            <description>French (alt.)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oss_latin9</name>
+            <description>French (alt., Latin-9 only)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oss_nodeadkeys</name>
+            <description>French (alt., no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oss_sundeadkeys</name>
+            <description>French (alt., with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latin9</name>
+            <description>French (legacy, alt.)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latin9_nodeadkeys</name>
+            <description>French (legacy, alt., no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latin9_sundeadkeys</name>
+            <description>French (legacy, alt., with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bepo</name>
+            <description>French (Bepo, ergonomic, Dvorak way)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bepo_latin9</name>
+            <description>French (Bepo, ergonomic, Dvorak way, Latin-9 only)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bepo_afnor</name>
+            <description>French (Bepo, ergonomic, Dvorak way, AFNOR)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>French (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>French (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>azerty</name>
+            <description>French (AZERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>afnor</name>
+            <description>French (AFNOR standardized AZERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bre</name>
+            <description>French (Breton)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>oci</name>
+            <description>Occitan</description>
+            <languageList>
+              <iso639Id>oci</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>geo</name>
+            <description>Georgian (France, AZERTY Tskapo)</description>
+            <languageList>
+              <iso639Id>kat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>French (US, with French letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>gh</name>
+        <!-- Keyboard indicator for English layouts -->
+        <shortDescription>en</shortDescription>
+        <description>English (Ghana)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>generic</name>
+            <description>English (Ghana, multilingual)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>akan</name>
+            <!-- Keyboard indicator for Akan layouts -->
+            <shortDescription>ak</shortDescription>
+            <description>Akan</description>
+            <languageList>
+              <iso639Id>aka</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ewe</name>
+            <!-- Keyboard indicator for Ewe layouts -->
+            <shortDescription>ee</shortDescription>
+            <description>Ewe</description>
+            <languageList>
+              <iso639Id>ewe</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fula</name>
+            <!-- Keyboard indicator for Fula layouts -->
+            <shortDescription>ff</shortDescription>
+            <description>Fula</description>
+            <languageList>
+              <iso639Id>ful</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ga</name>
+            <!-- Keyboard indicator for Ga layouts -->
+            <shortDescription>gaa</shortDescription>
+            <description>Ga</description>
+            <languageList>
+              <iso639Id>gaa</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>hausa</name>
+            <!-- Keyboard indicator for Hausa layouts -->
+            <shortDescription>ha</shortDescription>
+            <description>Hausa (Ghana)</description>
+            <languageList>
+              <iso639Id>hau</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>avn</name>
+            <!-- Keyboard indicator for Avatime layouts -->
+            <shortDescription>avn</shortDescription>
+            <description>Avatime</description>
+            <languageList>
+              <iso639Id>avn</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>gillbt</name>
+            <description>English (Ghana, GILLBT)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>gn</name>
+        <!-- Keyboard indicator for French layouts -->
+        <shortDescription>fr</shortDescription>
+        <description>French (Guinea)</description>
+        <languageList>
+          <iso639Id>fra</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ge</name>
+        <!-- Keyboard indicator for Georgian layouts -->
+        <shortDescription>ka</shortDescription>
+        <description>Georgian</description>
+        <languageList>
+          <iso639Id>kat</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>ergonomic</name>
+            <description>Georgian (ergonomic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mess</name>
+            <description>Georgian (MESS)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ru</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Georgia)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>os</name>
+            <description>Ossetian (Georgia)</description>
+            <languageList>
+              <iso639Id>oss</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>de</name>
+        <!-- Keyboard indicator for German layouts -->
+        <shortDescription>de</shortDescription>
+        <description>German</description>
+        <languageList>
+          <iso639Id>deu</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>deadacute</name>
+            <description>German (dead acute)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>deadgraveacute</name>
+            <description>German (dead grave acute)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>German (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>T3</name>
+            <description>German (T3)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ro</name>
+            <description>Romanian (Germany)</description>
+            <languageList>
+              <iso639Id>ron</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ro_nodeadkeys</name>
+            <description>Romanian (Germany, no dead keys)</description>
+            <languageList>
+              <iso639Id>ron</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>German (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>German (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>neo</name>
+            <description>German (Neo 2)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>German (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_nodeadkeys</name>
+            <description>German (Macintosh, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dsb</name>
+            <description>Lower Sorbian</description>
+            <languageList>
+              <iso639Id>dsb</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dsb_qwertz</name>
+            <description>Lower Sorbian (QWERTZ)</description>
+            <languageList>
+              <iso639Id>dsb</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty</name>
+            <description>German (QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tr</name>
+            <description>Turkish (Germany)</description>
+            <languageList>
+              <iso639Id>tr</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ru</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Germany, phonetic)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>deadtilde</name>
+            <description>German (dead tilde)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>gr</name>
+        <!-- Keyboard indicator for Greek layouts -->
+        <shortDescription>gr</shortDescription>
+        <description>Greek</description>
+        <languageList>
+          <iso639Id>ell</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>simple</name>
+            <description>Greek (simple)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>extended</name>
+            <description>Greek (extended)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Greek (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>polytonic</name>
+            <description>Greek (polytonic)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>hu</name>
+        <!-- Keyboard indicator for Hungarian layouts -->
+        <shortDescription>hu</shortDescription>
+        <description>Hungarian</description>
+        <languageList>
+          <iso639Id>hun</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>standard</name>
+            <description>Hungarian (standard)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Hungarian (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty</name>
+            <description>Hungarian (QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwertz_comma_dead</name>
+            <description>Hungarian (101/QWERTZ/comma/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwertz_comma_nodead</name>
+            <description>Hungarian (101/QWERTZ/comma/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwertz_dot_dead</name>
+            <description>Hungarian (101/QWERTZ/dot/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwertz_dot_nodead</name>
+            <description>Hungarian (101/QWERTZ/dot/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwerty_comma_dead</name>
+            <description>Hungarian (101/QWERTY/comma/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwerty_comma_nodead</name>
+            <description>Hungarian (101/QWERTY/comma/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwerty_dot_dead</name>
+            <description>Hungarian (101/QWERTY/dot/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>101_qwerty_dot_nodead</name>
+            <description>Hungarian (101/QWERTY/dot/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwertz_comma_dead</name>
+            <description>Hungarian (102/QWERTZ/comma/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwertz_comma_nodead</name>
+            <description>Hungarian (102/QWERTZ/comma/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwertz_dot_dead</name>
+            <description>Hungarian (102/QWERTZ/dot/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwertz_dot_nodead</name>
+            <description>Hungarian (102/QWERTZ/dot/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwerty_comma_dead</name>
+            <description>Hungarian (102/QWERTY/comma/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwerty_comma_nodead</name>
+            <description>Hungarian (102/QWERTY/comma/no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwerty_dot_dead</name>
+            <description>Hungarian (102/QWERTY/dot/dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>102_qwerty_dot_nodead</name>
+            <description>Hungarian (102/QWERTY/dot/no dead keys)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>is</name>
+        <!-- Keyboard indicator for Icelandic layouts -->
+        <shortDescription>is</shortDescription>
+        <description>Icelandic</description>
+        <languageList>
+          <iso639Id>isl</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>Sundeadkeys</name>
+            <description>Icelandic (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Icelandic (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_legacy</name>
+            <description>Icelandic (Macintosh, legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Icelandic (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Icelandic (Dvorak)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>il</name>
+        <!-- Keyboard indicator for Hebrew layouts -->
+        <shortDescription>he</shortDescription>
+        <description>Hebrew</description>
+        <languageList>
+          <iso639Id>heb</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>lyx</name>
+            <description>Hebrew (lyx)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic</name>
+            <description>Hebrew (phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>biblical</name>
+            <description>Hebrew (Biblical, Tiro)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>it</name>
+        <!-- Keyboard indicator for Italian layouts -->
+        <shortDescription>it</shortDescription>
+        <description>Italian</description>
+        <languageList>
+          <iso639Id>ita</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Italian (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Italian (Winkeys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Italian (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Italian (US, with Italian letters)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>geo</name>
+            <description>Georgian (Italy)</description>
+            <languageList>
+              <iso639Id>kat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ibm</name>
+            <description>Italian (IBM 142)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>intl</name>
+            <description>Italian (intl., with dead keys)</description>
+            <languageList>
+              <iso639Id>deu</iso639Id>
+              <iso639Id>fra</iso639Id>
+              <iso639Id>ita</iso639Id>
+              <iso639Id>slk</iso639Id>
+              <iso639Id>srd</iso639Id>
+              <iso639Id>nap</iso639Id>
+              <iso639Id>scn</iso639Id>
+              <iso639Id>fur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>scn</name>
+            <description>Sicilian</description>
+            <languageList>
+              <iso639Id>ita</iso639Id>
+              <iso639Id>scn</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fur</name>
+            <description>Friulian (Italy)</description>
+            <languageList>
+              <iso639Id>fur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>jp</name>
+        <!-- Keyboard indicator for Japaneses -->
+        <shortDescription>ja</shortDescription>
+        <description>Japanese</description>
+        <languageList>
+          <iso639Id>jpn</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>kana</name>
+            <description>Japanese (Kana)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>kana86</name>
+            <description>Japanese (Kana 86)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>OADG109A</name>
+            <description>Japanese (OADG 109A)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Japanese (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Japanese (Dvorak)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>kg</name>
+        <!-- Keyboard indicator for Kyrgyz layouts -->
+        <shortDescription>ki</shortDescription>
+        <description>Kyrgyz</description>
+        <languageList>
+          <iso639Id>kir</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>phonetic</name>
+            <description>Kyrgyz (phonetic)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>kh</name>
+        <!-- Keyboard indicator for Khmer layouts -->
+        <shortDescription>km</shortDescription>
+        <description>Khmer (Cambodia)</description>
+        <languageList>
+          <iso639Id>khm</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>kz</name>
+        <!-- Keyboard indicator for Kazakh layouts -->
+        <shortDescription>kk</shortDescription>
+        <description>Kazakh</description>
+        <languageList>
+          <iso639Id>kaz</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>ruskaz</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Kazakhstan, with Kazakh)</description>
+            <languageList>
+              <iso639Id>kaz</iso639Id>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>kazrus</name>
+            <description>Kazakh (with Russian)</description>
+            <languageList>
+              <iso639Id>kaz</iso639Id>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ext</name>
+            <description>Kazakh (extended)</description>
+            <languageList>
+              <iso639Id>kaz</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latin</name>
+            <description>Kazakh (Latin)</description>
+            <languageList>
+              <iso639Id>kaz</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>la</name>
+        <!-- Keyboard indicator for Lao layouts -->
+        <shortDescription>lo</shortDescription>
+        <description>Lao</description>
+        <languageList>
+          <iso639Id>lao</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>stea</name>
+            <description>Lao (STEA proposed standard layout)</description>
+            <languageList>
+              <iso639Id>lao</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>latam</name>
+        <!-- Keyboard indicator for Spanish layouts -->
+        <shortDescription>es</shortDescription>
+        <description>Spanish (Latin American)</description>
+        <countryList>
+          <iso3166Id>AR</iso3166Id>
+          <iso3166Id>BO</iso3166Id>
+          <iso3166Id>CL</iso3166Id>
+          <iso3166Id>CO</iso3166Id>
+          <iso3166Id>CR</iso3166Id>
+          <iso3166Id>CU</iso3166Id>
+          <iso3166Id>DO</iso3166Id>
+          <iso3166Id>EC</iso3166Id>
+          <iso3166Id>GT</iso3166Id>
+          <iso3166Id>HN</iso3166Id>
+          <iso3166Id>HT</iso3166Id>
+          <iso3166Id>MX</iso3166Id>
+          <iso3166Id>NI</iso3166Id>
+          <iso3166Id>PA</iso3166Id>
+          <iso3166Id>PE</iso3166Id>
+          <iso3166Id>PR</iso3166Id>
+          <iso3166Id>PY</iso3166Id>
+          <iso3166Id>SV</iso3166Id>
+          <iso3166Id>US</iso3166Id>
+          <iso3166Id>UY</iso3166Id>
+          <iso3166Id>VE</iso3166Id>
+        </countryList>
+        <languageList>
+          <iso639Id>spa</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Spanish (Latin American, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>deadtilde</name>
+            <description>Spanish (Latin American, dead tilde)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>Spanish (Latin American, with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Spanish (Latin American, Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak</name>
+            <description>Spanish (Latin American, Colemak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak-gaming</name>
+            <description>Spanish (Latin American, Colemak for gaming)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>lt</name>
+        <!-- Keyboard indicator for Lithuanian layouts -->
+        <shortDescription>lt</shortDescription>
+        <description>Lithuanian</description>
+        <languageList>
+          <iso639Id>lit</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>std</name>
+            <description>Lithuanian (standard)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Lithuanian (US, with Lithuanian letters)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ibm</name>
+            <description>Lithuanian (IBM LST 1205-92)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>lekp</name>
+            <description>Lithuanian (LEKP)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>lekpa</name>
+            <description>Lithuanian (LEKPa)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sgs</name>
+            <description>Samogitian</description>
+            <languageList>
+              <iso639Id>sgs</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>lv</name>
+        <!-- Keyboard indicator for Latvian layouts -->
+        <shortDescription>lv</shortDescription>
+        <description>Latvian</description>
+        <languageList>
+          <iso639Id>lav</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>apostrophe</name>
+            <description>Latvian (apostrophe)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tilde</name>
+            <description>Latvian (tilde)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fkey</name>
+            <description>Latvian (F)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>modern</name>
+            <description>Latvian (modern)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ergonomic</name>
+            <description>Latvian (ergonomic, ŪGJRMV)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>adapted</name>
+            <description>Latvian (adapted)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>mao</name>
+        <!-- Keyboard indicator for Maori layouts -->
+        <shortDescription>mi</shortDescription>
+        <description>Maori</description>
+        <languageList>
+          <iso639Id>mri</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>me</name>
+        <!-- Keyboard indicator for Montenegrin layouts -->
+        <shortDescription>sr</shortDescription>
+        <description>Montenegrin</description>
+        <languageList>
+          <iso639Id>srp</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>cyrillic</name>
+            <description>Montenegrin (Cyrillic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>cyrillicyz</name>
+            <description>Montenegrin (Cyrillic, ZE and ZHE swapped)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinunicode</name>
+            <description>Montenegrin (Latin, Unicode)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinyz</name>
+            <description>Montenegrin (Latin, QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinunicodeyz</name>
+            <description>Montenegrin (Latin, Unicode, QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>cyrillicalternatequotes</name>
+            <description>Montenegrin (Cyrillic with guillemets)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinalternatequotes</name>
+            <description>Montenegrin (Latin with guillemets)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>mk</name>
+        <!-- Keyboard indicator for Macedonian layouts -->
+        <shortDescription>mk</shortDescription>
+        <description>Macedonian</description>
+        <languageList>
+          <iso639Id>mkd</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Macedonian (no dead keys)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>mt</name>
+        <!-- Keyboard indicator for Maltese layouts -->
+        <shortDescription>mt</shortDescription>
+        <description>Maltese</description>
+        <languageList>
+          <iso639Id>mlt</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Maltese (with US layout)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>alt-us</name>
+            <description>Maltese (US layout with AltGr overrides)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>alt-gb</name>
+            <description>Maltese (UK layout with AltGr overrides)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>mn</name>
+        <!-- Keyboard indicator for Mongolian layouts -->
+        <shortDescription>mn</shortDescription>
+        <description>Mongolian</description>
+        <languageList>
+          <iso639Id>mon</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>no</name>
+        <!-- Keyboard indicator for Norwegian layouts -->
+        <shortDescription>no</shortDescription>
+        <description>Norwegian</description>
+        <languageList>
+          <iso639Id>nor</iso639Id>
+          <iso639Id>nob</iso639Id>
+          <iso639Id>nno</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Norwegian (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Norwegian (Win keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Norwegian (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>smi</name>
+            <description>Northern Saami (Norway)</description>
+            <languageList>
+              <iso639Id>sme</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>smi_nodeadkeys</name>
+            <description>Northern Saami (Norway, no dead keys)</description>
+            <languageList>
+              <iso639Id>sme</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Norwegian (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_nodeadkeys</name>
+            <description>Norwegian (Macintosh, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak</name>
+            <description>Norwegian (Colemak)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>pl</name>
+        <!-- Keyboard indicator for Polish layouts -->
+        <shortDescription>pl</shortDescription>
+        <description>Polish</description>
+        <languageList>
+          <iso639Id>pol</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>Polish (legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwertz</name>
+            <description>Polish (QWERTZ)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Polish (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak_quotes</name>
+            <description>Polish (Dvorak, with Polish quotes on quotemark key)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak_altquotes</name>
+            <description>Polish (Dvorak, with Polish quotes on key 1)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>csb</name>
+            <description>Kashubian</description>
+            <languageList>
+              <iso639Id>csb</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>szl</name>
+            <description>Silesian</description>
+            <languageList>
+              <iso639Id>szl</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ru_phonetic_dvorak</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Poland, phonetic Dvorak)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvp</name>
+            <description>Polish (programmer Dvorak)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>pt</name>
+        <!-- Keyboard indicator for Portuguese layouts -->
+        <shortDescription>pt</shortDescription>
+        <description>Portuguese</description>
+        <languageList>
+          <iso639Id>por</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Portuguese (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>Portuguese (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Portuguese (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_nodeadkeys</name>
+            <description>Portuguese (Macintosh, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_sundeadkeys</name>
+            <description>Portuguese (Macintosh, with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nativo</name>
+            <description>Portuguese (Nativo)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nativo-us</name>
+            <description>Portuguese (Nativo for US keyboards)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nativo-epo</name>
+            <description>Esperanto (Portugal, Nativo)</description>
+            <languageList>
+              <iso639Id>epo</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ro</name>
+        <!-- Keyboard indicator for Romanian layouts -->
+        <shortDescription>ro</shortDescription>
+        <description>Romanian</description>
+        <languageList>
+          <iso639Id>ron</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>cedilla</name>
+            <description>Romanian (cedilla)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>std</name>
+            <description>Romanian (standard)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>std_cedilla</name>
+            <description>Romanian (standard cedilla)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Romanian (Win keys)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ru</name>
+        <!-- Keyboard indicator for Russian layouts -->
+        <shortDescription>ru</shortDescription>
+        <description>Russian</description>
+        <languageList>
+          <iso639Id>rus</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>phonetic</name>
+            <description>Russian (phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic_winkeys</name>
+            <description>Russian (phonetic, with Win keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic_yazherty</name>
+            <description>Russian (phonetic yazherty)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>typewriter</name>
+            <description>Russian (typewriter)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>Russian (legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>typewriter-legacy</name>
+            <description>Russian (typewriter, legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tt</name>
+            <description>Tatar</description>
+            <languageList>
+              <iso639Id>tat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>os_legacy</name>
+            <description>Ossetian (legacy)</description>
+            <languageList>
+              <iso639Id>oss</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>os_winkeys</name>
+            <description>Ossetian (Win keys)</description>
+            <languageList>
+              <iso639Id>oss</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>cv</name>
+            <description>Chuvash</description>
+            <languageList>
+              <iso639Id>chv</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>cv_latin</name>
+            <description>Chuvash (Latin)</description>
+            <languageList>
+              <iso639Id>chv</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>udm</name>
+            <description>Udmurt</description>
+            <languageList>
+              <iso639Id>udm</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>kom</name>
+            <description>Komi</description>
+            <languageList>
+              <iso639Id>kom</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sah</name>
+            <description>Yakut</description>
+            <languageList>
+              <iso639Id>sah</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>xal</name>
+            <description>Kalmyk</description>
+            <languageList>
+              <iso639Id>xal</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dos</name>
+            <description>Russian (DOS)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Russian (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>srp</name>
+            <description>Serbian (Russia)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+              <iso639Id>srp</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>bak</name>
+            <description>Bashkirian</description>
+            <languageList>
+              <iso639Id>bak</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>chm</name>
+            <description>Mari</description>
+            <languageList>
+              <iso639Id>chm</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic_azerty</name>
+            <description>Russian (phonetic, AZERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic_dvorak</name>
+            <description>Russian (phonetic, Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>phonetic_fr</name>
+            <description>Russian (phonetic, French)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>sc</name>
+        <!-- Keyboard indicator for Scots layouts -->
+        <shortDescription>sc</shortDescription>
+        <description>Scots</description>
+        <languageList>
+          <iso639Id>sco</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>Sundeadkeys</name>
+            <description>Scots (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Scots (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_legacy</name>
+            <description>Scots (Macintosh, legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Scots (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Scots (Dvorak)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>rs</name>
+        <!-- Keyboard indicator for Serbian layouts -->
+        <shortDescription>sr</shortDescription>
+        <description>Serbian</description>
+        <languageList>
+          <iso639Id>srp</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>yz</name>
+            <description>Serbian (Cyrillic, ZE and ZHE swapped)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latin</name>
+            <description>Serbian (Latin)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinunicode</name>
+            <description>Serbian (Latin, Unicode)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinyz</name>
+            <description>Serbian (Latin, QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinunicodeyz</name>
+            <description>Serbian (Latin, Unicode, QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>alternatequotes</name>
+            <description>Serbian (Cyrillic with guillemets)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>latinalternatequotes</name>
+            <description>Serbian (Latin with guillemets)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rue</name>
+            <description>Pannonian Rusyn</description>
+            <languageList>
+              <iso639Id>rue</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>si</name>
+        <!-- Keyboard indicator for Slovenian layouts -->
+        <shortDescription>sl</shortDescription>
+        <description>Slovenian</description>
+        <languageList>
+          <iso639Id>slv</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>alternatequotes</name>
+            <description>Slovenian (with guillemets)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Slovenian (US, with Slovenian letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>sk</name>
+        <!-- Keyboard indicator for Slovak layouts -->
+        <shortDescription>sk</shortDescription>
+        <description>Slovak</description>
+        <languageList>
+          <iso639Id>slk</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>bksl</name>
+            <description>Slovak (extended backslash)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty</name>
+            <description>Slovak (QWERTY)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>qwerty_bksl</name>
+            <description>Slovak (QWERTY, extended backslash)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>es</name>
+        <!-- Keyboard indicator for Spanish layouts -->
+        <shortDescription>es</shortDescription>
+        <description>Spanish</description>
+        <languageList>
+          <iso639Id>spa</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Spanish (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Spanish (Win keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>deadtilde</name>
+            <description>Spanish (dead tilde)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>Spanish (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Spanish (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ast</name>
+            <shortDescription>ast</shortDescription>
+            <description>Asturian (Spain, with bottom-dot H and bottom-dot L)</description>
+            <languageList>
+              <iso639Id>ast</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>cat</name>
+            <shortDescription>ca</shortDescription>
+            <description>Catalan (Spain, with middle-dot L)</description>
+            <languageList>
+              <iso639Id>cat</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Spanish (Macintosh)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>se</name>
+        <!-- Keyboard indicator for Swedish layouts -->
+        <shortDescription>sv</shortDescription>
+        <description>Swedish</description>
+        <languageList>
+          <iso639Id>swe</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>nodeadkeys</name>
+            <description>Swedish (no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Swedish (Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rus</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Sweden, phonetic)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rus_nodeadkeys</name>
+            <!-- Keyboard indicator for Russian layouts -->
+            <shortDescription>ru</shortDescription>
+            <description>Russian (Sweden, phonetic, no dead keys)</description>
+            <languageList>
+              <iso639Id>rus</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>smi</name>
+            <description>Northern Saami (Sweden)</description>
+            <languageList>
+              <iso639Id>sme</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>Swedish (Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>svdvorak</name>
+            <description>Swedish (Svdvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us_dvorak</name>
+            <description>Swedish (based on US Intl. Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Swedish (US, with Swedish letters)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>swl</name>
+            <description>Swedish Sign Language</description>
+            <languageList>
+              <iso639Id>swl</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ch</name>
+        <!-- Keyboard indicator for German layouts -->
+        <shortDescription>de</shortDescription>
+        <description>German (Switzerland)</description>
+        <languageList>
+          <iso639Id>deu</iso639Id>
+          <iso639Id>gsw</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>German (Switzerland, legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>de_nodeadkeys</name>
+            <!-- Keyboard indicator for German layouts -->
+            <shortDescription>de</shortDescription>
+            <description>German (Switzerland, no dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>de_sundeadkeys</name>
+            <!-- Keyboard indicator for German layouts -->
+            <shortDescription>de</shortDescription>
+            <description>German (Switzerland, with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fr</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Switzerland)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fr_nodeadkeys</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Switzerland, no dead keys)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fr_sundeadkeys</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Switzerland, with Sun dead keys)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fr_mac</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Switzerland, Macintosh)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>de_mac</name>
+            <!-- Keyboard indicator for German layouts -->
+            <shortDescription>de</shortDescription>
+            <description>German (Switzerland, Macintosh)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>sy</name>
+        <!-- Keyboard indicator for Arabic layouts -->
+        <shortDescription>ar</shortDescription>
+        <description>Arabic (Syria)</description>
+        <languageList>
+          <iso639Id>syr</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>syc</name>
+            <!-- Keyboard indicator for Syriac layouts -->
+            <shortDescription>syc</shortDescription>
+            <description>Syriac</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>syc_phonetic</name>
+            <!-- Keyboard indicator for Syriac layouts -->
+            <shortDescription>syc</shortDescription>
+            <description>Syriac (phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Syria, Latin Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_f</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Syria, F)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_alt</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Syria, Latin Alt-Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>tj</name>
+        <!-- Keyboard indicator for Tajik layouts -->
+        <shortDescription>tg</shortDescription>
+        <description>Tajik</description>
+        <languageList>
+          <iso639Id>tgk</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>Tajik (legacy)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>lk</name>
+        <!-- Keyboard indicator for Sinhala layouts -->
+        <shortDescription>si</shortDescription>
+        <description>Sinhala (phonetic)</description>
+        <languageList>
+          <iso639Id>sin</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>tam_unicode</name>
+            <!-- Keyboard indicator for Tamil layouts -->
+            <shortDescription>ta</shortDescription>
+            <description>Tamil (Sri Lanka, TamilNet '99)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>tam_TAB</name>
+            <description>Tamil (Sri Lanka, TamilNet '99, TAB encoding)</description>
+            <languageList>
+              <iso639Id>tam</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <!-- Keyboard indicator for US layouts -->
+            <shortDescription>us</shortDescription>
+            <description>Sinhala (US, with Sinhala letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>th</name>
+        <!-- Keyboard indicator for Thai layouts -->
+        <shortDescription>th</shortDescription>
+        <description>Thai</description>
+        <languageList>
+          <iso639Id>tha</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>tis</name>
+            <description>Thai (TIS-820.2538)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>pat</name>
+            <description>Thai (Pattachote)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>tr</name>
+        <!-- Keyboard indicator for Turkish layouts -->
+        <shortDescription>tr</shortDescription>
+        <description>Turkish</description>
+        <languageList>
+          <iso639Id>tur</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>f</name>
+            <description>Turkish (F)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>alt</name>
+            <description>Turkish (Alt-Q)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>sundeadkeys</name>
+            <description>Turkish (with Sun dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Turkey, Latin Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_f</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Turkey, F)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ku_alt</name>
+            <!-- Keyboard indicator for Kurdish layouts -->
+            <shortDescription>ku</shortDescription>
+            <description>Kurdish (Turkey, Latin Alt-Q)</description>
+            <languageList>
+              <iso639Id>kur</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>intl</name>
+            <description>Turkish (intl., with dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>crh</name>
+            <!-- Keyboard indicator for Crimean Tatar layouts -->
+            <shortDescription>crh</shortDescription>
+            <description>Crimean Tatar (Turkish Q)</description>
+            <languageList>
+              <iso639Id>crh</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>crh_f</name>
+            <!-- Keyboard indicator for Crimean Tatar layouts -->
+            <shortDescription>crh</shortDescription>
+            <description>Crimean Tatar (Turkish F)</description>
+            <languageList>
+              <iso639Id>crh</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>crh_alt</name>
+            <!-- Keyboard indicator for Crimean Tatar layouts -->
+            <shortDescription>crh</shortDescription>
+            <description>Crimean Tatar (Turkish Alt-Q)</description>
+            <languageList>
+              <iso639Id>crh</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>tw</name>
+        <!-- Keyboard indicator for Taiwanese layouts -->
+        <shortDescription>zh</shortDescription>
+        <description>Taiwanese</description>
+        <languageList>
+          <iso639Id>fox</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>indigenous</name>
+            <description>Taiwanese (indigenous)</description>
+            <languageList>
+              <iso639Id>ami</iso639Id>
+              <iso639Id>tay</iso639Id>
+              <iso639Id>bnn</iso639Id>
+              <iso639Id>ckv</iso639Id>
+              <iso639Id>pwn</iso639Id>
+              <iso639Id>pyu</iso639Id>
+              <iso639Id>dru</iso639Id>
+              <iso639Id>ais</iso639Id>
+              <iso639Id>ssf</iso639Id>
+              <iso639Id>tao</iso639Id>
+              <iso639Id>tsu</iso639Id>
+              <iso639Id>trv</iso639Id>
+              <iso639Id>xnb</iso639Id>
+              <iso639Id>sxr</iso639Id>
+              <iso639Id>uun</iso639Id>
+              <iso639Id>fos</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>saisiyat</name>
+            <!-- Keyboard indicator for Saisiyat layouts -->
+            <shortDescription>xsy</shortDescription>
+            <description>Saisiyat (Taiwan)</description>
+            <languageList>
+              <iso639Id>xsy</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ua</name>
+        <!-- Keyboard indicator for Ukranian layouts -->
+        <shortDescription>uk</shortDescription>
+        <description>Ukrainian</description>
+        <languageList>
+          <iso639Id>ukr</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>phonetic</name>
+            <description>Ukrainian (phonetic)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>typewriter</name>
+            <description>Ukrainian (typewriter)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Ukrainian (Win keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>Ukrainian (legacy)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rstu</name>
+            <description>Ukrainian (standard RSTU)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>rstu_ru</name>
+            <description>Russian (Ukraine, standard RSTU)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>homophonic</name>
+            <description>Ukrainian (homophonic)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>gb</name>
+        <!-- Keyboard indicator for English layouts -->
+        <shortDescription>en</shortDescription>
+        <description>English (UK)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>extd</name>
+            <description>English (UK, extended, with Win keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>intl</name>
+            <description>English (UK, intl., with dead keys)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>English (UK, Dvorak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorakukp</name>
+            <description>English (UK, Dvorak, with UK punctuation)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac</name>
+            <description>English (UK, Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>mac_intl</name>
+            <description>English (UK, intl., Macintosh)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak</name>
+            <description>English (UK, Colemak)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>pl</name>
+            <!-- Keyboard indicator for Polish layouts -->
+            <shortDescription>pl</shortDescription>
+            <description>Polish (British keyboard)</description>
+            <languageList>
+              <iso639Id>pol</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>uz</name>
+        <!-- Keyboard indicator for Uzbek layouts -->
+        <shortDescription>uz</shortDescription>
+        <description>Uzbek</description>
+        <languageList>
+          <iso639Id>uzb</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>latin</name>
+            <description>Uzbek (Latin)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>vn</name>
+        <!-- Keyboard indicator for Vietnamese layouts -->
+        <shortDescription>vi</shortDescription>
+        <description>Vietnamese</description>
+        <languageList>
+          <iso639Id>vie</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>us</name>
+            <description>Vietnamese (US, with Vietnamese letters)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>fr</name>
+            <description>Vietnamese (French, with Vietnamese letters)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>kr</name>
+        <!-- Keyboard indicator for Korean layouts -->
+        <shortDescription>ko</shortDescription>
+        <description>Korean</description>
+        <languageList>
+          <iso639Id>kor</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>kr104</name>
+            <description>Korean (101/104 key compatible)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>nec_vndr/jp</name>
+        <!-- Keyboard indicator for Japaneses -->
+        <shortDescription>ja</shortDescription>
+        <description>Japanese (PC-98)</description>
+        <countryList>
+          <iso3166Id>JP</iso3166Id>
+        </countryList>
+        <languageList>
+          <iso639Id>jpn</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ie</name>
+        <!-- Keyboard indicator for Irish layouts -->
+        <shortDescription>ie</shortDescription>
+        <description>Irish</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>CloGaelach</name>
+            <description>CloGaelach</description>
+            <languageList>
+              <iso639Id>gle</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>UnicodeExpert</name>
+            <description>Irish (UnicodeExpert)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ogam</name>
+            <description>Ogham</description>
+            <languageList>
+              <iso639Id>sga</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ogam_is434</name>
+            <description>Ogham (IS434)</description>
+            <languageList>
+              <iso639Id>sga</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>pk</name>
+        <!-- Keyboard indicator for Urdu layouts -->
+        <shortDescription>ur</shortDescription>
+        <description>Urdu (Pakistan)</description>
+        <languageList>
+          <iso639Id>urd</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>urd-crulp</name>
+            <description>Urdu (Pakistan, CRULP)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>urd-nla</name>
+            <description>Urdu (Pakistan, NLA)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>ara</name>
+            <shortDescription>ar</shortDescription>
+            <description>Arabic (Pakistan)</description>
+            <languageList>
+              <iso639Id>ara</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>snd</name>
+            <!-- Keyboard indicator for Sindhi layouts -->
+            <shortDescription>sd</shortDescription>
+            <description>Sindhi</description>
+            <languageList>
+              <iso639Id>snd</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>mv</name>
+        <!-- Keyboard indicator for Dhivehi layouts -->
+        <shortDescription>dv</shortDescription>
+        <description>Dhivehi</description>
+        <languageList>
+          <iso639Id>div</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>za</name>
+        <!-- Keyboard indicator for English layouts -->
+        <shortDescription>en</shortDescription>
+        <description>English (South Africa)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>epo</name>
+        <!-- Keyboard indicator for Esperanto layouts -->
+        <shortDescription>eo</shortDescription>
+        <description>Esperanto</description>
+        <languageList>
+          <iso639Id>epo</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>legacy</name>
+            <description>Esperanto (displaced semicolon and quote, obsolete)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>np</name>
+        <!-- Keyboard indicator for Nepali layouts -->
+        <shortDescription>ne</shortDescription>
+        <description>Nepali</description>
+        <languageList>
+          <iso639Id>nep</iso639Id>
+          <!-- sat-Deva used in Nepal: http://www.ethnologue.com/language/sat -->
+          <iso639Id>sat</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ng</name>
+        <!-- Keyboard indicator for English layouts -->
+        <shortDescription>en</shortDescription>
+        <description>English (Nigeria)</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>igbo</name>
+            <!-- Keyboard indicator for Igbo layouts -->
+            <shortDescription>ig</shortDescription>
+            <description>Igbo</description>
+            <languageList>
+              <iso639Id>ibo</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>yoruba</name>
+            <!-- Keyboard indicator for Yoruba layouts -->
+            <shortDescription>yo</shortDescription>
+            <description>Yoruba</description>
+            <languageList>
+              <iso639Id>yor</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>hausa</name>
+            <!-- Keyboard indicator for Hausa layouts -->
+            <shortDescription>ha</shortDescription>
+            <description>Hausa (Nigeria)</description>
+            <languageList>
+              <iso639Id>hau</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>et</name>
+        <!-- Keyboard indicator for Amharic layouts -->
+        <shortDescription>am</shortDescription>
+        <description>Amharic</description>
+        <languageList>
+          <iso639Id>amh</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>sn</name>
+        <!-- Keyboard indicator for Wolof layouts -->
+        <shortDescription>wo</shortDescription>
+        <description>Wolof</description>
+        <languageList>
+          <iso639Id>wol</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>brai</name>
+        <!-- Keyboard indicator for Braille layouts -->
+        <shortDescription>brl</shortDescription>
+        <description>Braille</description>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>left_hand</name>
+            <description>Braille (left-handed)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>left_hand_invert</name>
+            <description>Braille (left-handed inverted thumb)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>right_hand</name>
+            <description>Braille (right-handed)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>right_hand_invert</name>
+            <description>Braille (right-handed inverted thumb)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>tm</name>
+        <!-- Keyboard indicator for Turkmen layouts -->
+        <shortDescription>tk</shortDescription>
+        <description>Turkmen</description>
+        <languageList>
+          <iso639Id>tuk</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>alt</name>
+            <description>Turkmen (Alt-Q)</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ml</name>
+        <!-- Keyboard indicator for Bambara layouts -->
+        <shortDescription>bm</shortDescription>
+        <description>Bambara</description>
+        <languageList>
+          <iso639Id>bam</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>fr-oss</name>
+            <!-- Keyboard indicator for French layouts -->
+            <shortDescription>fr</shortDescription>
+            <description>French (Mali, alt.)</description>
+            <languageList>
+              <iso639Id>fra</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us-mac</name>
+            <!-- Keyboard indicator for English layouts -->
+            <shortDescription>en</shortDescription>
+            <description>English (Mali, US, Macintosh)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>us-intl</name>
+            <!-- Keyboard indicator for English layouts -->
+            <shortDescription>en</shortDescription>
+            <description>English (Mali, US, intl.)</description>
+            <languageList>
+              <iso639Id>eng</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>tz</name>
+        <!-- Keyboard indicator for Swahili layouts -->
+        <shortDescription>sw</shortDescription>
+        <description>Swahili (Tanzania)</description>
+        <languageList>
+          <iso639Id>swa</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>tg</name>
+        <shortDescription>fr-tg</shortDescription>
+        <description>French (Togo)</description>
+        <languageList>
+          <iso639Id>fra</iso639Id>
+          <iso639Id>ajg</iso639Id>
+          <iso639Id>blo</iso639Id>
+          <iso639Id>kpo</iso639Id>
+          <iso639Id>ewe</iso639Id>
+          <iso639Id>fon</iso639Id>
+          <iso639Id>fue</iso639Id>
+          <iso639Id>gej</iso639Id>
+          <iso639Id>ife</iso639Id>
+          <iso639Id>kbp</iso639Id>
+          <iso639Id>las</iso639Id>
+          <iso639Id>dop</iso639Id>
+          <iso639Id>mfg</iso639Id>
+          <iso639Id>nmz</iso639Id>
+          <iso639Id>bud</iso639Id>
+          <iso639Id>gng</iso639Id>
+          <iso639Id>kdh</iso639Id>
+          <iso639Id>soy</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ke</name>
+        <!-- Keyboard indicator for Swahili layouts -->
+        <shortDescription>sw</shortDescription>
+        <description>Swahili (Kenya)</description>
+        <languageList>
+          <iso639Id>swa</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>kik</name>
+            <!-- Keyboard indicator for Kikuyu layouts -->
+            <shortDescription>ki</shortDescription>
+            <description>Kikuyu</description>
+            <languageList>
+              <iso639Id>kik</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>bw</name>
+        <!-- Keyboard indicator for Tswana layouts -->
+        <shortDescription>tn</shortDescription>
+        <description>Tswana</description>
+        <languageList>
+          <iso639Id>tsn</iso639Id>
+        </languageList>
+      </configItem>
+    </layout>
+    <layout>
+      <configItem>
+        <name>ph</name>
+        <!-- Keyboard indicator for Filipino layouts -->
+        <shortDescription>ph</shortDescription>
+        <description>Filipino</description>
+        <languageList>
+          <iso639Id>eng</iso639Id>
+          <iso639Id>bik</iso639Id>
+          <iso639Id>ceb</iso639Id>
+          <iso639Id>fil</iso639Id>
+          <iso639Id>hil</iso639Id>
+          <iso639Id>ilo</iso639Id>
+          <iso639Id>pam</iso639Id>
+          <iso639Id>pag</iso639Id>
+          <iso639Id>phi</iso639Id>
+          <iso639Id>tgl</iso639Id>
+          <iso639Id>war</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>qwerty-bay</name>
+            <description>Filipino (QWERTY, Baybayin)</description>
+            <languageList>
+              <iso639Id>bik</iso639Id>
+              <iso639Id>ceb</iso639Id>
+              <iso639Id>fil</iso639Id>
+              <iso639Id>hil</iso639Id>
+              <iso639Id>ilo</iso639Id>
+              <iso639Id>pam</iso639Id>
+              <iso639Id>pag</iso639Id>
+              <iso639Id>phi</iso639Id>
+              <iso639Id>tgl</iso639Id>
+              <iso639Id>war</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>capewell-dvorak</name>
+            <description>Filipino (Capewell-Dvorak, Latin)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>capewell-dvorak-bay</name>
+            <description>Filipino (Capewell-Dvorak, Baybayin)</description>
+            <languageList>
+              <iso639Id>bik</iso639Id>
+              <iso639Id>ceb</iso639Id>
+              <iso639Id>fil</iso639Id>
+              <iso639Id>hil</iso639Id>
+              <iso639Id>ilo</iso639Id>
+              <iso639Id>pam</iso639Id>
+              <iso639Id>pag</iso639Id>
+              <iso639Id>phi</iso639Id>
+              <iso639Id>tgl</iso639Id>
+              <iso639Id>war</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>capewell-qwerf2k6</name>
+            <description>Filipino (Capewell-QWERF 2006, Latin)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>capewell-qwerf2k6-bay</name>
+            <description>Filipino (Capewell-QWERF 2006, Baybayin)</description>
+            <languageList>
+              <iso639Id>bik</iso639Id>
+              <iso639Id>ceb</iso639Id>
+              <iso639Id>fil</iso639Id>
+              <iso639Id>hil</iso639Id>
+              <iso639Id>ilo</iso639Id>
+              <iso639Id>pam</iso639Id>
+              <iso639Id>pag</iso639Id>
+              <iso639Id>phi</iso639Id>
+              <iso639Id>tgl</iso639Id>
+              <iso639Id>war</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak</name>
+            <description>Filipino (Colemak, Latin)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>colemak-bay</name>
+            <description>Filipino (Colemak, Baybayin)</description>
+            <languageList>
+              <iso639Id>bik</iso639Id>
+              <iso639Id>ceb</iso639Id>
+              <iso639Id>fil</iso639Id>
+              <iso639Id>hil</iso639Id>
+              <iso639Id>ilo</iso639Id>
+              <iso639Id>pam</iso639Id>
+              <iso639Id>pag</iso639Id>
+              <iso639Id>phi</iso639Id>
+              <iso639Id>tgl</iso639Id>
+              <iso639Id>war</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak</name>
+            <description>Filipino (Dvorak, Latin)</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>dvorak-bay</name>
+            <description>Filipino (Dvorak, Baybayin)</description>
+            <languageList>
+              <iso639Id>bik</iso639Id>
+              <iso639Id>ceb</iso639Id>
+              <iso639Id>fil</iso639Id>
+              <iso639Id>hil</iso639Id>
+              <iso639Id>ilo</iso639Id>
+              <iso639Id>pam</iso639Id>
+              <iso639Id>pag</iso639Id>
+              <iso639Id>phi</iso639Id>
+              <iso639Id>tgl</iso639Id>
+              <iso639Id>war</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>md</name>
+        <shortDescription>md</shortDescription>
+        <description>Moldavian</description>
+        <languageList>
+          <iso639Id>ron</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>gag</name>
+            <shortDescription>gag</shortDescription>
+            <description>Moldavian (Gagauz)</description>
+            <languageList>
+              <iso639Id>gag</iso639Id>
+            </languageList>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>id</name>
+        <shortDescription>id</shortDescription>
+        <description>Indonesian (Arab Melayu, phonetic)</description>
+        <languageList>
+          <iso639Id>ind</iso639Id>
+          <iso639Id>msa</iso639Id>
+          <iso639Id>min</iso639Id>
+          <iso639Id>ace</iso639Id>
+          <iso639Id>bjn</iso639Id>
+          <iso639Id>tsg</iso639Id>
+          <iso639Id>mfa</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+       <variant>
+         <configItem>
+          <name>phoneticx</name>
+            <description>Indonesian (Arab Melayu, ext. phonetic)</description>
+         </configItem>
+       </variant>
+      </variantList>
+    </layout>
+    <layout> 
+      <configItem>
+        <name>jv</name>
+        <shortDescription>jv</shortDescription>
+        <description>Indonesian (Javanese)</description>
+        <languageList>
+          <iso639Id>jv</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList/>
+    </layout>
+    <layout>
+      <configItem>
+        <name>my</name>
+        <shortDescription>ms</shortDescription>
+        <description>Malay (Jawi, Arabic Keyboard)</description>
+        <languageList>
+          <iso639Id>ind</iso639Id>
+          <iso639Id>msa</iso639Id>
+          <iso639Id>min</iso639Id>
+          <iso639Id>ace</iso639Id>
+          <iso639Id>bjn</iso639Id>
+          <iso639Id>tsg</iso639Id>
+          <iso639Id>mfa</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList>
+       <variant>
+         <configItem>
+          <name>phonetic</name>
+            <description>Malay (Jawi, phonetic)</description>
+         </configItem>
+       </variant>
+      </variantList>
+    </layout>
+  </layoutList>
+  <optionList>
+    <group allowMultipleSelection="true">
+      <!-- The key combination used to switch between groups -->
+      <configItem>
+        <name>grp</name>
+        <description>Switching to another layout</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>grp:switch</name>
+          <description>Right Alt (while pressed)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lswitch</name>
+          <description>Left Alt (while pressed)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lwin_switch</name>
+          <description>Left Win (while pressed)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:rwin_switch</name>
+          <description>Right Win (while pressed)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:win_switch</name>
+          <description>Any Win (while pressed)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:menu_switch</name>
+          <description>Menu (while pressed), Shift+Menu for Menu</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:caps_switch</name>
+          <description>Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:rctrl_switch</name>
+          <description>Right Ctrl (while pressed)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:toggle</name>
+          <description>Right Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lalt_toggle</name>
+          <description>Left Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:caps_toggle</name>
+          <description>Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:shift_caps_toggle</name>
+          <description>Shift+Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:shift_caps_switch</name>
+          <description>Caps Lock to first layout; Shift+Caps Lock to last layout</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:win_menu_switch</name>
+          <description>Left Win to first layout; Right Win/Menu to last layout</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lctrl_rctrl_switch</name>
+          <description>Left Ctrl to first layout; Right Ctrl to last layout</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:alt_caps_toggle</name>
+          <description>Alt+Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:shifts_toggle</name>
+          <description>Both Shift together</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:alts_toggle</name>
+          <description>Both Alt together</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:ctrls_toggle</name>
+          <description>Both Ctrl together</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:ctrl_shift_toggle</name>
+          <description>Ctrl+Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lctrl_lshift_toggle</name>
+          <description>Left Ctrl+Left Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:rctrl_rshift_toggle</name>
+          <description>Right Ctrl+Right Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:ctrl_alt_toggle</name>
+          <description>Alt+Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:alt_shift_toggle</name>
+          <description>Alt+Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lalt_lshift_toggle</name>
+          <description>Left Alt+Left Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:alt_space_toggle</name>
+          <description>Alt+Space</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:menu_toggle</name>
+          <description>Menu</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lwin_toggle</name>
+          <description>Left Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:win_space_toggle</name>
+          <description>Win+Space</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:rwin_toggle</name>
+          <description>Right Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lshift_toggle</name>
+          <description>Left Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:rshift_toggle</name>
+          <description>Right Shift</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lctrl_toggle</name>
+          <description>Left Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:rctrl_toggle</name>
+          <description>Right Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:sclk_toggle</name>
+          <description>Scroll Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lctrl_lwin_rctrl_menu</name>
+          <description>Left Ctrl+Left Win to first layout; Right Ctrl+Menu to second layout</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp:lctrl_lwin_toggle</name>
+          <description>Left Ctrl+Left Win</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <!-- The key combination used to choose the 3rd (and 4th, together with Shift)
+           level of symbols -->
+      <configItem>
+        <name>lv3</name>
+        <description>Key to choose the 3rd level</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>lv3:switch</name>
+          <description>Right Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:menu_switch</name>
+          <description>Menu</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:win_switch</name>
+          <description>Any Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:lwin_switch</name>
+          <description>Left Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:rwin_switch</name>
+          <description>Right Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:alt_switch</name>
+          <description>Any Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:lalt_switch</name>
+          <description>Left Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:ralt_switch</name>
+          <description>Right Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:ralt_switch_multikey</name>
+          <description>Right Alt; Shift+Right Alt as Compose</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:ralt_alt</name>
+          <description>Right Alt never chooses 3rd level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:enter_switch</name>
+          <description>Enter on keypad</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:caps_switch</name>
+          <description>Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:bksl_switch</name>
+          <description>Backslash</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:lsgt_switch</name>
+          <description>&lt;Less/Greater&gt;</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:caps_switch_latch</name>
+          <description>Caps Lock; acts as onetime lock when pressed together with another 3rd-level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:bksl_switch_latch</name>
+          <description>Backslash; acts as onetime lock when pressed together with another 3rd level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv3:lsgt_switch_latch</name>
+          <description>&lt;Less/Greater&gt;; acts as onetime lock when pressed together with another 3rd level chooser</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <!-- Tweaking the position of the "Ctrl" key -->
+      <configItem>
+        <name>ctrl</name>
+        <description>Ctrl position</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>ctrl:nocaps</name>
+          <description>Caps Lock as Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:lctrl_meta</name>
+          <description>Left Ctrl as Meta</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:swapcaps</name>
+          <description>Swap Ctrl and Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:swapcaps_hyper</name>
+          <description>Caps Lock as Control, Control as Hyper</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:ac_ctrl</name>
+          <description>At left of 'A'</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:aa_ctrl</name>
+          <description>At bottom left</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:rctrl_ralt</name>
+          <description>Right Ctrl as Right Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:menu_rctrl</name>
+          <description>Menu as Right Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:swap_lalt_lctl</name>
+          <description>Swap Left Alt with Left Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:swap_lwin_lctl</name>
+          <description>Swap Left Win with Left Ctrl</description>
+        </configItem>
+      </option><option>
+        <configItem>
+          <name>ctrl:swap_rwin_rctl</name>
+          <description>Swap Right Win with Right Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>ctrl:swap_lalt_lctl_lwin</name>
+          <description>Left Alt as Ctrl, Left Ctrl as Win, Left Win as Left Alt</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <!-- Using startard LEDs to indicate the alternative (not first) group(s) -->
+      <configItem>
+        <name>grp_led</name>
+        <description>Use keyboard LED to show alternative layout</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>grp_led:num</name>
+          <description>Num Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp_led:caps</name>
+          <description>Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grp_led:scroll</name>
+          <description>Scroll Lock</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <!-- Using LEDs to indicate modifiers -->
+      <configItem>
+        <name>mod_led</name>
+        <description>Use keyboard LED to indicate modifiers</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>mod_led:compose</name>
+          <description>Compose</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="false">
+      <!-- Select a keypad type -->
+      <configItem>
+        <name>keypad</name>
+        <description>Layout of numeric keypad</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>keypad:legacy</name>
+          <description>Legacy</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:oss</name>
+          <description>Unicode additions (arrows and math operators)</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:future</name>
+          <description>Unicode additions (arrows and math operators; math operators on default level)</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:legacy_wang</name>
+          <description>Legacy Wang 724</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:oss_wang</name>
+          <description>Wang 724 keypad with Unicode additions (arrows and math operators)</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:future_wang</name>
+          <description>Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:hex</name>
+          <description>Hexadecimal</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:atm</name>
+          <description>ATM/phone-style</description>
+       </configItem>
+      </option>
+    </group>
+    <!-- This option should override the KPDL key defined in keypad; I hope it's declared in the right place -->
+    <group allowMultipleSelection="false">
+      <!-- Select a keypad KPDL variant -->
+      <configItem>
+        <name>kpdl</name>
+        <description>Numeric keypad Delete behavior</description>
+      </configItem>
+      <option>
+        <configItem>
+          <!-- Actually, with KP_DECIMAL, as the old keypad(dot) -->
+          <name>kpdl:dot</name>
+          <description>Legacy key with dot</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:comma</name>
+          <!-- Actually, with KP_SEPARATOR, as the old keypad(comma) -->
+          <description>Legacy key with comma</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:dotoss</name>
+          <description>Four-level key with dot</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:dotoss_latin9</name>
+          <description>Four-level key with dot, Latin-9 only</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:commaoss</name>
+          <description>Four-level key with comma</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:momayyezoss</name>
+          <description>Four-level key with momayyez</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:kposs</name>
+          <!-- This assumes the KP_ abstract symbols are actually useful for some apps
+               The description needs to be rewritten -->
+          <description>Four-level key with abstract separators</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>kpdl:semi</name>
+          <description>Semicolon on third level</description>
+       </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="false">
+      <!-- Caps Lock tweaks.
+           "Internal" capitalization means capitalization using some internal tables.
+           Otherwise "as Shift" - means using next group. -->
+      <configItem>
+        <name>caps</name>
+        <description>Caps Lock behavior</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>caps:internal</name>
+          <description>Caps Lock uses internal capitalization; Shift "pauses" Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:internal_nocancel</name>
+          <description>Caps Lock uses internal capitalization; Shift does not affect Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:shift</name>
+          <description>Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:shift_nocancel</name>
+          <description>Caps Lock acts as Shift with locking; Shift does not affect Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:capslock</name>
+          <description>Caps Lock toggles normal capitalization of alphabetic characters</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:shiftlock</name>
+          <description>Caps Lock toggles ShiftLock (affects all keys)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:swapescape</name>
+          <description>Swap ESC and Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:escape</name>
+          <description>Make Caps Lock an additional Esc</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:escape_shifted_capslock</name>
+          <description>Make unmodified Caps Lock an additional Esc, but Shift + Caps Lock behaves like regular Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:backspace</name>
+          <description>Make Caps Lock an additional Backspace</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:super</name>
+          <description>Make Caps Lock an additional Super</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:hyper</name>
+          <description>Make Caps Lock an additional Hyper</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:menu</name>
+          <description>Make Caps Lock an additional Menu key</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:numlock</name>
+          <description>Make Caps Lock an additional Num Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:ctrl_modifier</name>
+          <description>Caps Lock is also a Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>caps:none</name>
+          <description>Caps Lock is disabled</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="false">
+      <!-- Using special PC keys (Win, Menu) to work as standard X keys (Super, Hyper, etc.) -->
+      <configItem>
+        <name>altwin</name>
+        <description>Alt/Win key behavior</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>altwin:menu</name>
+          <description>Add the standard behavior to Menu key</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:menu_win</name>
+          <description>Menu is mapped to Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:meta_alt</name>
+          <description>Alt and Meta are on Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:alt_win</name>
+          <description>Alt is mapped to Win and the usual Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:ctrl_win</name>
+          <description>Ctrl is mapped to Win and the usual Ctrl keys</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:ctrl_alt_win</name>
+          <description>Ctrl is mapped to Alt; Alt is mapped to Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:meta_win</name>
+          <description>Meta is mapped to Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:left_meta_win</name>
+          <description>Meta is mapped to Left Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:hyper_win</name>
+          <description>Hyper is mapped to Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:alt_super_win</name>
+          <description>Alt is mapped to Right Win, Super to Menu</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:swap_lalt_lwin</name>
+          <description>Left Alt is swapped with Left Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:swap_alt_win</name>
+          <description>Alt is swapped with Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>altwin:prtsc_rwin</name>
+          <description>Win is mapped to PrtSc and the usual Win</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <!-- Tweaking the position of the "Compose" key: mapping to existing PC keys -->
+      <configItem>
+        <name>Compose key</name>
+        <description>Position of Compose key</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>compose:ralt</name>
+          <description>Right Alt</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:lwin</name>
+          <description>Left Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:lwin-altgr</name>
+          <description>3rd level of Left Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:rwin</name>
+          <description>Right Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:rwin-altgr</name>
+          <description>3rd level of Right Win</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:menu</name>
+          <description>Menu</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:menu-altgr</name>
+          <description>3rd level of Menu</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:lctrl</name>
+          <description>Left Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:lctrl-altgr</name>
+          <description>3rd level of Left Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:rctrl</name>
+          <description>Right Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:rctrl-altgr</name>
+          <description>3rd level of Right Ctrl</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:caps</name>
+          <description>Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:caps-altgr</name>
+          <description>3rd level of Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:102</name>
+          <description>&lt;Less/Greater&gt;</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:102-altgr</name>
+          <description>3rd level of &lt;Less/Greater&gt;</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:paus</name>
+          <description>Pause</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:prsc</name>
+          <description>PrtSc</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>compose:sclk</name>
+          <description>Scroll Lock</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <configItem>
+        <name>compat</name>
+        <description>Miscellaneous compatibility options</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>numpad:pc</name>
+          <description>Default numeric keypad keys</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>numpad:mac</name>
+          <description>Numeric keypad always enters digits (as in macOS)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>numpad:microsoft</name>
+          <description>Num Lock on: digits; Shift for arrow keys. Num Lock off: arrow keys (as in Windows)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>numpad:shift3</name>
+          <description>Shift does not cancel Num Lock, chooses 3rd level instead</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>srvrkeys:none</name>
+          <description>Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>apple:alupckeys</name>
+          <description>Apple Aluminium: emulate PC keys (PrtSc, Scroll Lock, Pause, Num Lock)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>shift:breaks_caps</name>
+          <description>Shift cancels Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>misc:typo</name>
+          <description>Enable extra typographic characters</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>shift:both_capslock</name>
+          <description>Both Shift together enable Caps Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>shift:both_capslock_cancel</name>
+          <description>Both Shift together enable Caps Lock; one Shift key disables it</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>shift:both_shiftlock</name>
+          <description>Both Shift together enable Shift Lock</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>keypad:pointerkeys</name>
+          <description>Shift + Num Lock enables PointerKeys</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grab:break_actions</name>
+          <description>Allow breaking grabs with keyboard actions (warning: security risk)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>grab:debug</name>
+          <description>Allow grab and window tree logging</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <!-- Special shortcuts for the Euro character -->
+      <configItem>
+        <name>currencysign</name>
+        <description>Adding currency signs to certain keys</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>eurosign:e</name>
+          <description>Euro on E</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>eurosign:2</name>
+          <description>Euro on 2</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>eurosign:4</name>
+          <description>Euro on 4</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>eurosign:5</name>
+          <description>Euro on 5</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>rupeesign:4</name>
+          <description>Rupee on 4</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <configItem>
+        <name>lv5</name>
+        <description>Key to choose 5th level</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>lv5:lsgt_switch</name>
+          <description>&lt;Less/Greater&gt; chooses 5th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:ralt_switch</name>
+          <description>Right Alt chooses 5th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:lsgt_switch_lock</name>
+          <description>&lt;Less/Greater&gt; chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:ralt_switch_lock</name>
+          <description>Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:lwin_switch_lock</name>
+          <description>Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:rwin_switch_lock</name>
+          <description>Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+<!--
+      <option>
+        <configItem>
+          <name>lv5:lsgt_switch_lock_cancel</name>
+          <description>&lt;Less/Greater&gt; chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:ralt_switch_lock_cancel</name>
+          <description>Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:lwin_switch_lock_cancel</name>
+          <description>Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:rwin_switch_lock_cancel</name>
+          <description>Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:lsgt_switch_lock_cancel</name>
+          <description>&lt;Less/Greater&gt; chooses 5th level; acts as onetime lock lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>lv5:ralt_switch_lock_cancel</name>
+          <description>Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser</description>
+        </configItem>
+      </option>
+-->
+    </group>
+    <group allowMultipleSelection="false">
+      <!-- Let space output NBSP, NNBSP, ZWNJ, and ZWJ for the desired level -->
+      <configItem>
+        <name>nbsp</name>
+        <description>Using space key to input non-breaking space</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>nbsp:none</name>
+          <description>Usual space at any level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level2</name>
+          <description>Non-breaking space at the 2nd level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level3</name>
+          <description>Non-breaking space at the 3rd level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level3s</name>
+          <description>Non-breaking space at the 3rd level, nothing at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level3n</name>
+          <description>Non-breaking space at the 3rd level, thin non-breaking space at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level4</name>
+          <description>Non-breaking space at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level4n</name>
+          <description>Non-breaking space at the 4th level, thin non-breaking space at the 6th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:level4nl</name>
+          <description>Non-breaking space at the 4th level, thin non-breaking space at the 6th level (via Ctrl+Shift)</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2</name>
+          <description>Zero-width non-joiner at the 2nd level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2zwj3</name>
+          <description>Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2zwj3nb4</name>
+          <description>Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level, non-breaking space at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2nb3</name>
+          <description>Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2nb3s</name>
+          <description>Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, nothing at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2nb3zwj4</name>
+          <description>Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, zero-width joiner at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj2nb3nnb4</name>
+          <description>Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, thin non-breaking space at the 4th level</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>nbsp:zwnj3zwj4</name>
+          <description>Zero-width non-joiner at the 3rd level, zero-width joiner at the 4th level</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <configItem>
+        <name>japan</name>
+        <description>Japanese keyboard options</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>japan:kana_lock</name>
+          <description>Kana Lock key is locking</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>japan:nicola_f_bs</name>
+          <description>NICOLA-F style Backspace</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>japan:hztg_escape</name>
+          <description>Make Zenkaku Hankaku an additional Esc</description>
+       </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <configItem>
+        <name>korean</name>
+        <description>Korean Hangul/Hanja keys</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>korean:ralt_hangul</name>
+          <description>Make right Alt a Hangul key</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>korean:rctrl_hangul</name>
+          <description>Make right Ctrl a Hangul key</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>korean:ralt_hanja</name>
+          <description>Make right Alt a Hanja key</description>
+        </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>korean:rctrl_hanja</name>
+          <description>Make right Ctrl a Hanja key</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="false">
+      <configItem>
+        <name>esperanto</name>
+        <description>Adding Esperanto supersigned letters</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>esperanto:qwerty</name>
+          <description>To the corresponding key in a QWERTY layout</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>esperanto:dvorak</name>
+          <description>To the corresponding key in a Dvorak layout</description>
+       </configItem>
+      </option>
+      <option>
+        <configItem>
+          <name>esperanto:colemak</name>
+          <description>To the corresponding key in a Colemak layout</description>
+       </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <configItem>
+        <name>solaris</name>
+        <description>Maintain key compatibility with old Solaris keycodes</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>solaris:sun_compat</name>
+          <description>Sun Key compatibility</description>
+        </configItem>
+      </option>
+    </group>
+    <group allowMultipleSelection="true">
+      <configItem>
+        <name>terminate</name>
+        <description>Key sequence to kill the X server</description>
+      </configItem>
+      <option>
+        <configItem>
+          <name>terminate:ctrl_alt_bksp</name>
+          <description>Ctrl+Alt+Backspace</description>
+        </configItem>
+      </option>
+    </group>
+  </optionList>
+</xkbConfigRegistry>
diff --git a/unix/usr/share/X11/xkb/symbols/sc b/unix/usr/share/X11/xkb/symbols/sc
new file mode 100644
index 0000000..830863a
--- /dev/null
+++ b/unix/usr/share/X11/xkb/symbols/sc
@@ -0,0 +1,286 @@
+// Experimental Scots keyboard layout, based on Icelandic layout
+// but including yogh/Yogh in place of AE ligature. 
+// based on
+// XKB keyboard by Hrafnkell Eiriksson - hkelle@rhi.hi.is
+//     fixes by Olafur Osvaldsson - oli@isnic.is
+//
+// "basic" corrected according to the Icelandic standard for keyboards,
+//     IST 125:1995 (some symbols substituted by a dead diacritic).
+//     Some positions are according to IST ISO/IEC 9995-3:1994
+//     Added nobreakspace
+
+default  partial alphanumeric_keys
+xkb_symbols "basic" {
+
+    include "latin(type4)"
+
+    name[Group1]="Scots";
+
+//  <AE00> = <TLDE>
+    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 <AD11>	{ [       eth,        ETH, dead_diaeresis, dead_abovering ] };
+    key <AD12>	{ [apostrophe,   question,   asciitilde,  dead_macron ]	};
+
+    key <AC03>	{ [         d,          D,  U201e,       U201c ] };
+    key <AC10>	{ [       yogh,        Yogh,  asciicircum, dead_doubleacute ] };
+    key <AC11>	{ [dead_acute, dead_acute, dead_circumflex, dead_caron ] };
+    key <TLDE>	{ [dead_abovering,  dead_diaeresis,      notsign,      hyphen ]	};
+
+//  <AC12> = <BKSL>
+    key <BKSL>	{ [      plus,   asterisk,   grave,   dead_breve ]	};
+
+//  <AB00> = <LSGT>, is in file "pc": pc105
+    key <AB10>	{ [     thorn,      THORN, dead_belowdot, dead_abovedot ] };
+
+    key <SPCE>  { [     space,      space,  space, space ] };
+
+    include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "Sundeadkeys" {
+
+    // modify the basic Icelandic layout to use Sun dead keys
+
+    include "sc(basic)"
+
+    name[Group1]="Icelandic (with Sun dead keys)";
+
+    key <TLDE>	{ [dead_circumflex,     degree,      notsign,    notsign ]	};
+    key <AE12>	{ [dead_acute, dead_grave, dead_cedilla, dead_cedilla ] };
+    key <AD11>	{ [udiaeresis, Udiaeresis, dead_diaeresis, dead_diaeresis ] };
+    key <AD12>	{ [      plus,   asterisk,  dead_tilde,  dead_macron ]	};
+    key <AC10>	{ [odiaeresis, Odiaeresis,  dead_acute,  dead_acute ]	};
+    key <AC11>	{ [adiaeresis, Adiaeresis, dead_circumflex, dead_circumflex ]	};
+    key <BKSL>	{ [numbersign,      acute,  dead_grave,  dead_grave ]	};
+};
+
+partial alphanumeric_keys
+xkb_symbols "nodeadkeys" {
+
+    // modify the basic Icelandic layout to not have any dead keys
+
+    include "(basic)"
+
+    name[Group1]="Icelandic (no dead keys)";
+
+    key <TLDE>	{ [asciicircum,    degree,      notsign,      notsign ]	};
+    key <AE12>	{ [apostrophe,      grave,      cedilla,      cedilla ]	};
+    key <AD11>	{ [udiaeresis, Udiaeresis,    diaeresis,    diaeresis ]	};
+    key <AD12>	{ [      plus,   asterisk,   asciitilde,       macron ]	};
+    key <AC10>	{ [odiaeresis, Odiaeresis,        acute,        acute ]	};
+    key <AC11>	{ [adiaeresis, Adiaeresis,  asciicircum,  asciicircum ]	};
+    key <BKSL>	{ [numbersign,      acute,        grave,        grave ]	};
+    key <AB10>	{ [     thorn,      THORN, dead_belowdot,    abovedot ]	};
+};
+
+// Copyright (C) 2004, 2006 Ævar Arnfjörð Bjarmason <avarab@gmail.com>
+//
+// = 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
+//
+// * 2013-05-30:
+//   Renamed the old keyboard layout and created a new one that conforms with the later
+//   model Apple laptop and Aluminium USB/Bluetooth keyboards (A1243/A1255 and later)
+//   that are used with the more recent versions of OS X. Also replaced some Unicode
+//   codes with proper symbol names.
+//
+// = 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+E000–U+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
+
+// Copied from macintosh_vndr/is
+
+xkb_symbols "mac_legacy" {
+    name[Group1]= "Icelandic (Macintosh, legacy)";
+
+    //-- 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> { [ yogh,       Yogh,               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 "mac" {
+    name[Group1]= "Icelandic (Macintosh)";
+
+    //-- Row 5 (E) --//
+    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      ] };
+
+
+    //-- Row 4 (D) --//
+    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      ] };
+
+
+    //-- Row 3 (C) --//
+    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> { [ yogh,       Yogh,       oe,                OE                  ] };
+    key <AC11> { [ dead_acute, dead_acute, asciicircum,       leftsinglequotemark ] };
+    key <BKSL> { [ plus,       asterisk,   grave,             plusminus           ] };
+
+
+    //-- Row 2  (B) --//
+    key <LSGT> { [ less,   greater,   bar,                  UF8FF                ] };
+    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,           yogh,    Yogh    ] };
+    key <AC11> { [   minus,     underscore,  endash,  emdash  ] };
+    key <AB10> { [       z,     Z,           thorn,   Thorn   ] };
+    key <AB06> { [       b,     B,           ssharp,  U1E9E   ] };
+
+    include "level3(ralt_switch)"
+};