aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/xkbdata.src/rules
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/xkbdata.src/rules')
-rw-r--r--xorg-server/xkbdata.src/rules/HDR28
-rw-r--r--xorg-server/xkbdata.src/rules/Makefile.am128
-rw-r--r--xorg-server/xkbdata.src/rules/Makefile.in655
-rw-r--r--xorg-server/xkbdata.src/rules/README2
-rw-r--r--xorg-server/xkbdata.src/rules/base993
-rw-r--r--xorg-server/xkbdata.src/rules/base.hdr.part9
-rw-r--r--xorg-server/xkbdata.src/rules/base.l1_k.part3
-rw-r--r--xorg-server/xkbdata.src/rules/base.l1o_s.part1
-rw-r--r--xorg-server/xkbdata.src/rules/base.l2_s.part1
-rw-r--r--xorg-server/xkbdata.src/rules/base.l2o_s.part1
-rw-r--r--xorg-server/xkbdata.src/rules/base.l3_s.part1
-rw-r--r--xorg-server/xkbdata.src/rules/base.l3o_s.part1
-rw-r--r--xorg-server/xkbdata.src/rules/base.l4_s.part1
-rw-r--r--xorg-server/xkbdata.src/rules/base.l4o_s.part1
-rw-r--r--xorg-server/xkbdata.src/rules/base.l_k.part3
-rw-r--r--xorg-server/xkbdata.src/rules/base.lists.part88
-rw-r--r--xorg-server/xkbdata.src/rules/base.lst683
-rw-r--r--xorg-server/xkbdata.src/rules/base.m_g.part20
-rw-r--r--xorg-server/xkbdata.src/rules/base.m_k.part16
-rw-r--r--xorg-server/xkbdata.src/rules/base.m_s.part29
-rw-r--r--xorg-server/xkbdata.src/rules/base.m_t.part2
-rw-r--r--xorg-server/xkbdata.src/rules/base.ml1_c.part1
-rw-r--r--xorg-server/xkbdata.src/rules/base.ml1_s.part10
-rw-r--r--xorg-server/xkbdata.src/rules/base.ml_c.part4
-rw-r--r--xorg-server/xkbdata.src/rules/base.ml_g.part1
-rw-r--r--xorg-server/xkbdata.src/rules/base.ml_s.part25
-rw-r--r--xorg-server/xkbdata.src/rules/base.mlv_s.part3
-rw-r--r--xorg-server/xkbdata.src/rules/base.o_c.part6
-rw-r--r--xorg-server/xkbdata.src/rules/base.o_s.part91
-rw-r--r--xorg-server/xkbdata.src/rules/base.o_t.part7
-rw-r--r--xorg-server/xkbdata.src/rules/base.xml.in4699
-rw-r--r--xorg-server/xkbdata.src/rules/compat/Makefile.am56
-rw-r--r--xorg-server/xkbdata.src/rules/compat/Makefile.in377
-rw-r--r--xorg-server/xkbdata.src/rules/compat/base.lists.part2
-rw-r--r--xorg-server/xkbdata.src/rules/compat/base.o_s.part1
-rw-r--r--xorg-server/xkbdata.src/rules/compat/layoutRename.lst27
-rw-r--r--xorg-server/xkbdata.src/rules/compat/ln_s.sh16
-rw-r--r--xorg-server/xkbdata.src/rules/compat/lnv_s.sh12
-rw-r--r--xorg-server/xkbdata.src/rules/compat/ml1_s.sh14
-rw-r--r--xorg-server/xkbdata.src/rules/compat/ml1v1_s.sh10
-rw-r--r--xorg-server/xkbdata.src/rules/compat/ml1v_s.sh10
-rw-r--r--xorg-server/xkbdata.src/rules/compat/ml_s.sh14
-rw-r--r--xorg-server/xkbdata.src/rules/compat/mlv_s.sh10
-rw-r--r--xorg-server/xkbdata.src/rules/compat/variantRename.lst47
-rw-r--r--xorg-server/xkbdata.src/rules/evdev953
-rw-r--r--xorg-server/xkbdata.src/rules/evdev.lst683
-rw-r--r--xorg-server/xkbdata.src/rules/evdev.m_k.part4
-rw-r--r--xorg-server/xkbdata.src/rules/evdev.m_s.part1
-rw-r--r--xorg-server/xkbdata.src/rules/evdev.xml.in4699
-rw-r--r--xorg-server/xkbdata.src/rules/merge.sh22
-rw-r--r--xorg-server/xkbdata.src/rules/xfree9829
-rw-r--r--xorg-server/xkbdata.src/rules/xkb.dtd59
-rw-r--r--xorg-server/xkbdata.src/rules/xml2lst.pl288
53 files changed, 14847 insertions, 0 deletions
diff --git a/xorg-server/xkbdata.src/rules/HDR b/xorg-server/xkbdata.src/rules/HDR
new file mode 100644
index 000000000..717fdea85
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/HDR
@@ -0,0 +1,28 @@
+! model = keycodes
+! layout[1] = keycodes
+! layout = keycodes
+! option = keycodes
+! model layout = geometry
+! model = geometry
+! model layout variant = symbols
+! model layout = symbols
+! model layout[1] = symbols
+! model layout[1] variant[1] = symbols
+! layout[2] = symbols
+! layout[3] = symbols
+! layout[4] = symbols
+! layout[2] variant[2] = symbols
+! layout[3] variant[3] = symbols
+! layout[4] variant[4] = symbols
+! model = symbols
+! model layout = compat
+! model layout[1] = compat
+! model = types
+! layout option = symbols
+! layout[1] option = symbols
+! layout[2] option = symbols
+! layout[3] option = symbols
+! layout[4] option = symbols
+! option = symbols
+! option = compat
+! option = types
diff --git a/xorg-server/xkbdata.src/rules/Makefile.am b/xorg-server/xkbdata.src/rules/Makefile.am
new file mode 100644
index 000000000..eaed78216
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/Makefile.am
@@ -0,0 +1,128 @@
+SUBDIRS = compat
+
+if CREATE_RULES_SYMLINK
+# extra_rules_file = $(xkb_rules_symlink)
+# extra_dir_file = $(extra_rules_file).xml
+# extra_lst_file = $(extra_rules_file).lst
+
+install-data-hook:
+ for file in `echo "$(xkb_rules_symlink)" | sed 's/,/ /'` ; do \
+ extra_rules_file=$$file ; \
+ extra_dir_file=$$extra_rules_file.xml ; \
+ extra_lst_file=$$extra_rules_file.lst ; \
+ ln -sf base $(DESTDIR)$(rulesdir)/$$extra_rules_file ; \
+ ln -sf base.lst $(DESTDIR)$(rulesdir)/$$extra_lst_file ; \
+ ln -sf base.xml $(DESTDIR)$(rulesdir)/$$extra_dir_file ; \
+ done
+
+else
+install-data-hook:
+
+endif
+
+base_parts_no_compat = base.hdr.part base.lists.part \
+HDR base.m_k.part HDR base.l1_k.part HDR base.l_k.part \
+HDR base.ml_g.part \
+HDR base.m_g.part HDR base.mlv_s.part HDR base.ml_s.part \
+HDR base.ml1_s.part HDR \
+HDR base.l2_s.part HDR base.l3_s.part HDR base.l4_s.part HDR HDR HDR \
+HDR base.m_s.part HDR base.ml_c.part HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR base.l1o_s.part HDR base.l2o_s.part HDR base.l3o_s.part HDR base.l4o_s.part \
+HDR base.o_s.part HDR base.o_c.part HDR base.o_t.part
+
+evdev_parts_no_compat = base.hdr.part base.lists.part \
+HDR evdev.m_k.part HDR base.l1_k.part HDR base.l_k.part \
+HDR base.ml_g.part \
+HDR base.m_g.part HDR base.mlv_s.part HDR base.ml_s.part \
+HDR base.ml1_s.part HDR \
+HDR base.l2_s.part HDR base.l3_s.part HDR base.l4_s.part HDR HDR HDR \
+HDR evdev.m_s.part HDR base.ml_c.part HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR base.l1o_s.part HDR base.l2o_s.part HDR base.l3o_s.part HDR base.l4o_s.part \
+HDR base.o_s.part HDR base.o_c.part HDR base.o_t.part
+
+if USE_COMPAT_RULES
+base_parts = base.hdr.part base.lists.part \
+compat/base.lists.part \
+HDR base.m_k.part HDR base.l1_k.part \
+HDR base.l_k.part HDR base.o_k.part \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR compat/base.mlv_s.part base.mlv_s.part \
+HDR compat/base.ml_s.part base.ml_s.part \
+HDR compat/base.ml1_s.part base.ml1_s.part \
+HDR compat/base.ml1v1_s.part \
+HDR compat/base.l2_s.part base.l2_s.part \
+HDR compat/base.l3_s.part base.l3_s.part \
+HDR compat/base.l4_s.part base.l4_s.part \
+HDR compat/base.l2v2_s.part \
+HDR compat/base.l3v3_s.part \
+HDR compat/base.l4v4_s.part \
+HDR base.m_s.part HDR base.ml_c.part HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR base.lo_s.part HDR base.l1o_s.part HDR base.l2o_s.part HDR base.l3o_s.part HDR base.l4o_s.part \
+HDR compat/base.o_s.part base.o_s.part \
+HDR base.o_c.part HDR base.o_t.part
+
+evdev_parts = base.hdr.part base.lists.part \
+compat/base.lists.part \
+HDR evdev.m_k.part HDR base.l1_k.part \
+HDR base.l_k.part HDR base.o_k.part \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR compat/base.mlv_s.part base.mlv_s.part \
+HDR compat/base.ml_s.part base.ml_s.part \
+HDR compat/base.ml1_s.part base.ml1_s.part \
+HDR compat/base.ml1v1_s.part \
+HDR compat/base.l2_s.part base.l2_s.part \
+HDR compat/base.l3_s.part base.l3_s.part \
+HDR compat/base.l4_s.part base.l4_s.part \
+HDR compat/base.l2v2_s.part \
+HDR compat/base.l3v3_s.part \
+HDR compat/base.l4v4_s.part \
+HDR evdev.m_s.part HDR base.ml_c.part HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR base.lo_s.part HDR base.l1o_s.part HDR base.l2o_s.part HDR base.l3o_s.part HDR base.l4o_s.part \
+HDR compat/base.o_s.part base.o_s.part \
+HDR base.o_c.part HDR base.o_t.part
+else
+base_parts = $(base_parts_no_compat)
+evdev_parts = $(base_parts_no_compat)
+endif
+
+rules_files = base evdev xfree98
+
+lst_files = base.lst evdev.lst
+
+%.lst: %.xml
+ perl $(srcdir)/xml2lst.pl < $< > $@
+
+base: $(base_parts_no_compat)
+ HDR="$(srcdir)/HDR" $(srcdir)/merge.sh $@ $(base_parts)
+
+evdev: $(evdev_parts_no_compat)
+ HDR="$(srcdir)/HDR" $(srcdir)/merge.sh $@ $(evdev_parts)
+
+all_rules_files = $(rules_files) $(lst_files) \
+xkb.dtd README
+
+rules_DATA = $(all_rules_files)
+
+xml_in_files = base.xml.in evdev.xml.in
+xml_DATA = $(xml_in_files:.xml.in=.xml)
+
+evdev.xml.in: base.xml.in
+ cp $< $@
+
+EXTRA_DIST= $(all_rules_files) $(xml_in_files) \
+ $(base_parts_no_compat) \
+ $(evdev_parts_no_compat) \
+ xml2lst.pl merge.sh
+
+DISTCLEANFILES=base.xml base.lst evdev.xml evdev.lst
+
+rulesdir = $(xkb_base)/rules
+xmldir = $(rulesdir)
+
+@INTLTOOL_XML_NOMERGE_RULE@
diff --git a/xorg-server/xkbdata.src/rules/Makefile.in b/xorg-server/xkbdata.src/rules/Makefile.in
new file mode 100644
index 000000000..a5184f2ba
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/Makefile.in
@@ -0,0 +1,655 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = rules
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-exec-recursive install-info-recursive \
+ install-recursive installcheck-recursive installdirs-recursive \
+ pdf-recursive ps-recursive uninstall-info-recursive \
+ uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(rulesdir)" "$(DESTDIR)$(xmldir)"
+rulesDATA_INSTALL = $(INSTALL_DATA)
+xmlDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(rules_DATA) $(xml_DATA)
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CREATE_RULES_SYMLINK_FALSE = @CREATE_RULES_SYMLINK_FALSE@
+CREATE_RULES_SYMLINK_TRUE = @CREATE_RULES_SYMLINK_TRUE@
+CREATE_XKBCOMP_SYMLINK_FALSE = @CREATE_XKBCOMP_SYMLINK_FALSE@
+CREATE_XKBCOMP_SYMLINK_TRUE = @CREATE_XKBCOMP_SYMLINK_TRUE@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_COMPAT_RULES_FALSE = @USE_COMPAT_RULES_FALSE@
+USE_COMPAT_RULES_TRUE = @USE_COMPAT_RULES_TRUE@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XKBCOMP = @XKBCOMP@
+ac_ct_CC = @ac_ct_CC@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+xkb_base = @xkb_base@
+xkb_rules_symlink = @xkb_rules_symlink@
+SUBDIRS = compat
+base_parts_no_compat = base.hdr.part base.lists.part \
+HDR base.m_k.part HDR base.l1_k.part HDR base.l_k.part \
+HDR base.ml_g.part \
+HDR base.m_g.part HDR base.mlv_s.part HDR base.ml_s.part \
+HDR base.ml1_s.part HDR \
+HDR base.l2_s.part HDR base.l3_s.part HDR base.l4_s.part HDR HDR HDR \
+HDR base.m_s.part HDR base.ml_c.part HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR base.l1o_s.part HDR base.l2o_s.part HDR base.l3o_s.part HDR base.l4o_s.part \
+HDR base.o_s.part HDR base.o_c.part HDR base.o_t.part
+
+evdev_parts_no_compat = base.hdr.part base.lists.part \
+HDR evdev.m_k.part HDR base.l1_k.part HDR base.l_k.part \
+HDR base.ml_g.part \
+HDR base.m_g.part HDR base.mlv_s.part HDR base.ml_s.part \
+HDR base.ml1_s.part HDR \
+HDR base.l2_s.part HDR base.l3_s.part HDR base.l4_s.part HDR HDR HDR \
+HDR evdev.m_s.part HDR base.ml_c.part HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR base.l1o_s.part HDR base.l2o_s.part HDR base.l3o_s.part HDR base.l4o_s.part \
+HDR base.o_s.part HDR base.o_c.part HDR base.o_t.part
+
+@USE_COMPAT_RULES_FALSE@base_parts = $(base_parts_no_compat)
+@USE_COMPAT_RULES_TRUE@base_parts = base.hdr.part base.lists.part \
+@USE_COMPAT_RULES_TRUE@compat/base.lists.part \
+@USE_COMPAT_RULES_TRUE@HDR base.m_k.part HDR base.l1_k.part \
+@USE_COMPAT_RULES_TRUE@HDR base.l_k.part HDR base.o_k.part \
+@USE_COMPAT_RULES_TRUE@HDR base.ml_g.part \
+@USE_COMPAT_RULES_TRUE@HDR base.m_g.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.mlv_s.part base.mlv_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.ml_s.part base.ml_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.ml1_s.part base.ml1_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.ml1v1_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.l2_s.part base.l2_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.l3_s.part base.l3_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.l4_s.part base.l4_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.l2v2_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.l3v3_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.l4v4_s.part \
+@USE_COMPAT_RULES_TRUE@HDR base.m_s.part HDR base.ml_c.part HDR base.ml1_c.part \
+@USE_COMPAT_RULES_TRUE@HDR base.m_t.part \
+@USE_COMPAT_RULES_TRUE@HDR base.lo_s.part HDR base.l1o_s.part HDR base.l2o_s.part HDR base.l3o_s.part HDR base.l4o_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.o_s.part base.o_s.part \
+@USE_COMPAT_RULES_TRUE@HDR base.o_c.part HDR base.o_t.part
+
+@USE_COMPAT_RULES_FALSE@evdev_parts = $(base_parts_no_compat)
+@USE_COMPAT_RULES_TRUE@evdev_parts = base.hdr.part base.lists.part \
+@USE_COMPAT_RULES_TRUE@compat/base.lists.part \
+@USE_COMPAT_RULES_TRUE@HDR evdev.m_k.part HDR base.l1_k.part \
+@USE_COMPAT_RULES_TRUE@HDR base.l_k.part HDR base.o_k.part \
+@USE_COMPAT_RULES_TRUE@HDR base.ml_g.part \
+@USE_COMPAT_RULES_TRUE@HDR base.m_g.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.mlv_s.part base.mlv_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.ml_s.part base.ml_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.ml1_s.part base.ml1_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.ml1v1_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.l2_s.part base.l2_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.l3_s.part base.l3_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.l4_s.part base.l4_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.l2v2_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.l3v3_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.l4v4_s.part \
+@USE_COMPAT_RULES_TRUE@HDR evdev.m_s.part HDR base.ml_c.part HDR base.ml1_c.part \
+@USE_COMPAT_RULES_TRUE@HDR base.m_t.part \
+@USE_COMPAT_RULES_TRUE@HDR base.lo_s.part HDR base.l1o_s.part HDR base.l2o_s.part HDR base.l3o_s.part HDR base.l4o_s.part \
+@USE_COMPAT_RULES_TRUE@HDR compat/base.o_s.part base.o_s.part \
+@USE_COMPAT_RULES_TRUE@HDR base.o_c.part HDR base.o_t.part
+
+rules_files = base evdev xfree98
+lst_files = base.lst evdev.lst
+all_rules_files = $(rules_files) $(lst_files) \
+xkb.dtd README
+
+rules_DATA = $(all_rules_files)
+xml_in_files = base.xml.in evdev.xml.in
+xml_DATA = $(xml_in_files:.xml.in=.xml)
+EXTRA_DIST = $(all_rules_files) $(xml_in_files) \
+ $(base_parts_no_compat) \
+ $(evdev_parts_no_compat) \
+ xml2lst.pl merge.sh
+
+DISTCLEANFILES = base.xml base.lst evdev.xml evdev.lst
+rulesdir = $(xkb_base)/rules
+xmldir = $(rulesdir)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu rules/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu rules/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+uninstall-info-am:
+install-rulesDATA: $(rules_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(rulesdir)" || $(mkdir_p) "$(DESTDIR)$(rulesdir)"
+ @list='$(rules_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(rulesDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rulesdir)/$$f'"; \
+ $(rulesDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rulesdir)/$$f"; \
+ done
+
+uninstall-rulesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(rules_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(rulesdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(rulesdir)/$$f"; \
+ done
+install-xmlDATA: $(xml_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(xmldir)" || $(mkdir_p) "$(DESTDIR)$(xmldir)"
+ @list='$(xml_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(xmlDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(xmldir)/$$f'"; \
+ $(xmlDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(xmldir)/$$f"; \
+ done
+
+uninstall-xmlDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(xml_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(xmldir)/$$f'"; \
+ rm -f "$(DESTDIR)$(xmldir)/$$f"; \
+ done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(rulesdir)" "$(DESTDIR)$(xmldir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-rulesDATA install-xmlDATA
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-rulesDATA uninstall-xmlDATA
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
+ clean clean-generic clean-recursive ctags ctags-recursive \
+ distclean distclean-generic distclean-recursive distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-data-hook \
+ install-exec install-exec-am install-info install-info-am \
+ install-man install-rulesDATA install-strip install-xmlDATA \
+ installcheck installcheck-am installdirs installdirs-am \
+ maintainer-clean maintainer-clean-generic \
+ maintainer-clean-recursive mostlyclean mostlyclean-generic \
+ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am uninstall-info-am uninstall-rulesDATA \
+ uninstall-xmlDATA
+
+
+# extra_rules_file = $(xkb_rules_symlink)
+# extra_dir_file = $(extra_rules_file).xml
+# extra_lst_file = $(extra_rules_file).lst
+
+@CREATE_RULES_SYMLINK_TRUE@install-data-hook:
+@CREATE_RULES_SYMLINK_TRUE@ for file in `echo "$(xkb_rules_symlink)" | sed 's/,/ /'` ; do \
+@CREATE_RULES_SYMLINK_TRUE@ extra_rules_file=$$file ; \
+@CREATE_RULES_SYMLINK_TRUE@ extra_dir_file=$$extra_rules_file.xml ; \
+@CREATE_RULES_SYMLINK_TRUE@ extra_lst_file=$$extra_rules_file.lst ; \
+@CREATE_RULES_SYMLINK_TRUE@ ln -sf base $(DESTDIR)$(rulesdir)/$$extra_rules_file ; \
+@CREATE_RULES_SYMLINK_TRUE@ ln -sf base.lst $(DESTDIR)$(rulesdir)/$$extra_lst_file ; \
+@CREATE_RULES_SYMLINK_TRUE@ ln -sf base.xml $(DESTDIR)$(rulesdir)/$$extra_dir_file ; \
+@CREATE_RULES_SYMLINK_TRUE@ done
+
+@CREATE_RULES_SYMLINK_FALSE@install-data-hook:
+
+%.lst: %.xml
+ perl $(srcdir)/xml2lst.pl < $< > $@
+
+base: $(base_parts_no_compat)
+ HDR="$(srcdir)/HDR" $(srcdir)/merge.sh $@ $(base_parts)
+
+evdev: $(evdev_parts_no_compat)
+ HDR="$(srcdir)/HDR" $(srcdir)/merge.sh $@ $(evdev_parts)
+
+evdev.xml.in: base.xml.in
+ cp $< $@
+
+@INTLTOOL_XML_NOMERGE_RULE@
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/xorg-server/xkbdata.src/rules/README b/xorg-server/xkbdata.src/rules/README
new file mode 100644
index 000000000..bcf19ce0c
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/README
@@ -0,0 +1,2 @@
+This directory lists sets of rules which can be used to obtain an exact XKB
+configuration.
diff --git a/xorg-server/xkbdata.src/rules/base b/xorg-server/xkbdata.src/rules/base
new file mode 100644
index 000000000..66f484a6c
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base
@@ -0,0 +1,993 @@
+// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part
+// $Xorg: xfree86,v 1.3 2000/08/17 19:54:42 cpqbld Exp $
+
+//
+// Rules for resolving XKB components for use with XFree86
+// Copyright 1996 by Joseph Moss
+//
+// 2002 Modifier: Ivan Pascal The XFree86 Project
+// $XFree86: xc/programs/xkbcomp/rules/xfree86,v 3.79 2004/01/09 00:16:01 dawes Exp $
+//
+
+// If you want non-latin layouts implicitly include the en_US layout
+// uncomment lines below
+//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \
+// in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \
+// ru scc sy syr tel th tj tam ua uz
+
+// PC models
+! $pcmodels = pc101 pc102 pc104 pc105
+
+// Microsoft models (using MS geometry)
+! $msmodels = microsoft microsoft7000 microsoftpro microsoftprousb microsoftprose
+
+// PC geometries - they have special geometry but symbols are mostly pc105
+! $pcgeometries = abnt2 latitude jp106 kr106
+
+// Layouts that provide further specializations for the OLPC
+! $olpclayouts = af am ara br ca es et it kh kz in mn np ru th tr us
+
+! $macbooks = macbook78 macbook79
+! $maclaptop = ibook powerbook macbook78 macbook79
+! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79
+
+! $macvendorlayouts = ch de dk es fi fr gb is it latam nl no pt se us
+
+! $azerty = be fr
+! $qwertz = al cz de hr hu ro si sk
+
+! $inetkbds = a4techKB21 a4techKBS8 a4_rfkb23 \
+ acer_c300 acer_ferrari4k acer_laptop \
+ acpi airkey \
+ apple armada asus_laptop azonaRF2300 \
+ benqx brother \
+ btc5113rf btc5126t btc6301urf btc9000 btc9000a btc9001ah btc5090 btc9019u \
+ cherryblue cherrybluea cherryblueb cherrycyboard \
+ chicony chicony0108 chicony9885 \
+ compaqeak8 compaqik7 compaqik13 compaqik18 \
+ cymotionlinux \
+ dell dellm65 inspiron precision_m dellusbmm dtk2000 \
+ emachines ennyah_dkb1008 evdev fscaa1667g \
+ genius geniuscomfy geniuscomfy2 geniuskb19e \
+ gyration honeywell_euroboard \
+ hp2501 hp2505 hp5xx hp500fa hp5181 hp5185 \
+ hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx \
+ ibm_spacesaver ipaq inspiron intel latitude \
+ logiaccess logicda logicink \
+ logiex110 logiclx300 \
+ logiinkse logiinkseusb logiitc logiik \
+ logitech_base itouch logiultrax \
+ logitech_g15 \
+ logidinovo logidinovoedge \
+ microsoft7000 microsoftinet microsoftpro microsoftprousb microsoftprooem microsoftprose \
+ microsoftoffice microsoftmult \
+ mx1998 mx2500 mx2750 \
+ oretec \
+ presario propeller \
+ qtronix \
+ rapidaccess rapidaccess2 rapidaccess2a thinkpad thinkpad60 \
+ samsung4500 samsung4510 \
+ scorpius silvercrest \
+ sk1300 sk2500 sk6200 sk7100 sp_inet \
+ sven sven303 symplon \
+ toshiba_s3000 trust trustda \
+ yahoo
+
+// all layouts with 3rd and 4th groups
+! $threelevellayouts = al az \
+ be br bt \
+ ca ch cs cz \
+ de dk \
+ ee es \
+ fi fo fr \
+ gb gr \
+ hu \
+ ie ir is it \
+ kg \
+ latam \
+ lk lt \
+ mn mt \
+ nl no \
+ pl pt \
+ ro \
+ se sk \
+ tr \
+ us \
+ vn \
+ za
+
+
+! $dvoraklayouts = br ca de ee es fr gb no pl se us
+
+! model = keycodes
+ amiga = amiga(de)
+ ataritt = ataritt(de)
+ sun4 = sun(type4_euro)
+ sun5 = sun(type5_euro)
+ sun6 = sun(type6_usb)
+ pc98 = xfree98(pc98)
+ abnt2 = xfree86(abnt2)
+ jp106 = xfree86(jp106)
+ evdev = evdev
+ olpc = evdev
+ macintosh_hhk = macintosh(hhk)
+ macintosh_old = macintosh(old)
+ $macbooks = macintosh+macintosh(goodmap)
+ $macs = macintosh
+ thinkpadz60 = xfree86(thinkpadz60)
+ * = xfree86
+
+! layout[1] = keycodes
+ $azerty = +aliases(azerty)
+ $qwertz = +aliases(qwertz)
+ * = +aliases(qwerty)
+
+! layout = keycodes
+ $azerty = +aliases(azerty)
+ $qwertz = +aliases(qwertz)
+ * = +aliases(qwerty)
+
+! option = keycodes
+ apple:badmap = +macintosh(badmap)
+ apple:goodmap = +macintosh(goodmap)
+
+! model layout = geometry
+ thinkpad us = thinkpad(us)
+
+! model = geometry
+ microsoftelite = microsoft(elite)
+ $msmodels = microsoft(natural)
+ dell101 = dell(dell101)
+ dellm65 = dell(dellm65)
+ flexpro = keytronic(FlexPro)
+ hp6000 = hp(omnibook)
+ omnikey101 = northgate(omnikey101)
+ $pcmodels = pc(%m)
+ $pcgeometries = pc(%m)
+ everex = everex(STEPnote)
+ thinkpad = thinkpad(intl)
+ thinkpad60 = thinkpad(60)
+ thinkpadz60 = thinkpad(60)
+ winbook = winbook(XP5)
+ pc98 = nec(pc98)
+ $macbooks = macintosh(%m)
+ $macs = macintosh(macintosh)
+ hhk = hhk(basic)
+ kinesis = kinesis(model100)
+ * = pc(pc104)
+
+! model layout variant = symbols
+ * ben basic = pc+in(ben)
+ * ben probhat = pc+in(ben_probhat)
+ * dev basic = pc+in(deva)
+ * dvorak $dvoraklayouts = pc+%v(dvorak)
+ * dvorak basic = pc+us(dvorak)
+ * dvorak pl_basic = pc+pl(dvorak)
+ * dvorak pl = pc+pl(dvorak_quotes)
+ * dvorak pl_altquotes = pc+pl(dvorak_altquotes)
+ * dzdwi basic = pc+bt(basic)
+ * fi basic = pc+fi(classic)
+ * ge azerty_tskapo = pc+fr(geo)
+ * guj basic = pc+in(guj)
+ * gur basic = pc+in(guru)
+ * ie laptop = pc+ie(basic)
+ * ie CloGaelachLaptop = pc+ie(CloGaelach)
+ * il si1452 = pc+ie(basic)
+ * iu basic = pc+ca(ike)
+ * lo basic = pc+la(basic)
+ * kan basic = pc+in(kan)
+ * mal basic = pc+in(mal)
+ * mal mlplusnum = pc+in(mal)
+ * ogham basic = pc+ie(ogam)
+ * ogham laptop = pc+ie(ogam)
+ * ogham is434 = pc+ie(ogam_is434)
+ * ogham is434laptop = pc+ie(ogam_is434)
+ * ori basic = pc+in(ori)
+ * ro de = pc+ro(winkeys)
+ * ro us = pc+ro(std)
+ * ro academic = pc+ro(std)
+ * ro std_comma = pc+ro(std)
+ * ro comma = pc+ro(basic)
+ * ru os = pc+ru(os_legacy)
+ * sapmi basic = pc+no(smi)
+ * sapmi nodeadkeys = pc+no(smi_nodeadkeys)
+ * sapmi sefi = pc+fi(smi)
+ * sin phonetic-static = pc+in(sin_phonetic)
+ * syr basic = pc+sy(syc)
+ * syr phonetic = pc+sy(syc_phonetic)
+ * tam INSCRIPT = pc+in(tam)
+ * tam UNI = pc+in(tam_unicode)
+ * tam TAB = pc+in(tam_TAB)
+ * tam TSCII = pc+in(tam_TSCII)
+ * tel basic = pc+in(tel)
+ * yu basic = pc+srp(latin)
+ * yu unicode = pc+srp(latinunicode)
+ * yu yz = pc+srp(latinyz)
+ * yu unicodeyz = pc+srp(latinunicodeyz)
+ classmate us intl = pc+us(classmate-intl)
+ classmate us alt-intl = pc+us(classmate-alt-intl)
+ classmate us altgr-intl = pc+us(classmate-altgr-intl)
+
+! model layout = symbols
+ * ar = pc+ara
+ * ben = pc+in(ben)
+ * bs = pc+ba
+ * cs = pc+rs
+ * cz_qwerty = pc+cz(qwerty)
+ * dev = pc+in(deva)
+ * dvorak = pc+us(dvorak)
+ * dzdwi = pc+bt
+ * el = pc+gr
+ * en_US = pc+latin
+ * guj = pc+in(guj)
+ * gur = pc+in(guru)
+ * iu = pc+ca(ike)
+ * lo = pc+la
+ * kan = pc+in(kan)
+ * mi = pc+mao
+ * ml = pc+in(mal)
+ * ogham = pc+ie(ogam)
+ * ori = pc+ie(ori)
+ * sapmi = pc+no(smi)
+ * sr = pc+srp
+ * syr = pc+sy(syc)
+ * tel = pc+in(tel)
+ * tml = pc+in(tam)
+ * yu = pc+srp
+ * fr-latin9 = pc+fr(latin9)
+ * us_intl = pc+us(alt-intl)
+ * ben(basic) = pc+in(ben)
+ * ben(probhat) = pc+in(ben_probhat)
+ * dev(basic) = pc+in(deva)
+ * dvorak($dvoraklayouts) = pc+%v(dvorak)
+ * dvorak(basic) = pc+us(dvorak)
+ * dvorak(pl_basic) = pc+pl(dvorak)
+ * dvorak(pl) = pc+pl(dvorak_quotes)
+ * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes)
+ * dzdwi(basic) = pc+bt(basic)
+ * fi(basic) = pc+fi(classic)
+ * ge(azerty_tskapo) = pc+fr(geo)
+ * guj(basic) = pc+in(guj)
+ * gur(basic) = pc+in(guru)
+ * ie(laptop) = pc+ie(basic)
+ * ie(CloGaelachLaptop) = pc+ie(CloGaelach)
+ * il(si1452) = pc+ie(basic)
+ * iu(basic) = pc+ca(ike)
+ * lo(basic) = pc+la(basic)
+ * kan(basic) = pc+in(kan)
+ * mal(basic) = pc+in(mal)
+ * mal(mlplusnum) = pc+in(mal)
+ * ogham(basic) = pc+ie(ogam)
+ * ogham(laptop) = pc+ie(ogam)
+ * ogham(is434) = pc+ie(ogam_is434)
+ * ogham(is434laptop) = pc+ie(ogam_is434)
+ * ori(basic) = pc+in(ori)
+ * ro(de) = pc+ro(winkeys)
+ * ro(us) = pc+ro(std)
+ * ro(academic) = pc+ro(std)
+ * ro(std_comma) = pc+ro(std)
+ * ro(comma) = pc+ro(basic)
+ * ru(os) = pc+ru(os_legacy)
+ * sapmi(basic) = pc+no(smi)
+ * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys)
+ * sapmi(sefi) = pc+fi(smi)
+ * sin(phonetic-static) = pc+in(sin_phonetic)
+ * syr(basic) = pc+sy(syc)
+ * syr(phonetic) = pc+sy(syc_phonetic)
+ * tam(INSCRIPT) = pc+in(tam)
+ * tam(UNI) = pc+in(tam_unicode)
+ * tam(TAB) = pc+in(tam_TAB)
+ * tam(TSCII) = pc+in(tam_TSCII)
+ * tel(basic) = pc+in(tel)
+ * yu(basic) = pc+srp(latin)
+ * yu(unicode) = pc+srp(latinunicode)
+ * yu(yz) = pc+srp(latinyz)
+ * yu(unicodeyz) = pc+srp(latinunicodeyz)
+ ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2
+ ataritt * = xfree68_vndr/ataritt(us)+%l%(v)
+ amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2
+ amiga * = xfree68_vndr/amiga(usa1)+%l%(v)
+ classmate us = pc+%l(classmate)
+ sun4 $nonlatin = latin+sun_vndr/us(sun4)+%l%(v):2
+ sun4 * = latin+sun_vndr/us(sun4)+%l%(v)
+ sun5 $nonlatin = latin+sun_vndr/us(sun5)+%l%(v):2
+ sun5 * = latin+sun_vndr/us(sun5)+%l%(v)
+ sun6 us = sun_vndr/us(type6)
+ sun6 en_US = sun_vndr/us(type6)+iso9995-3(basic)
+ sun6 * = sun_vndr/us(type6)+%l%(v)
+ pc98 nec_vndr/jp = nec_vndr/jp(pc98)
+ macintosh_old us = macintosh_vndr/us(oldmac)
+ macintosh_old en_US = macintosh_vndr/us(oldmac)
+ macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v)
+ macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2
+ macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v)
+ $macs en_US = pc+macintosh_vndr/us(extended)
+ $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v)
+ olpc $olpclayouts = olpc+%l%(m)
+ olpc * = olpc+%l%(v)
+ thinkpad br = pc+br(thinkpad)
+ * $nonlatin = pc+us+%l%(v):2
+ * * = pc+%l%(v)
+
+! model layout[1] = symbols
+ * ar = pc+ara%(v[1])
+ * ben = pc+in(ben)%(v[1])
+ * bs = pc+ba%(v[1])
+ * cs = pc+rs%(v[1])
+ * cz_qwerty = pc+cz(qwerty)%(v[1])
+ * dev = pc+in(deva)%(v[1])
+ * dvorak = pc+us(dvorak)%(v[1])
+ * dzdwi = pc+bt%(v[1])
+ * el = pc+gr%(v[1])
+ * en_US = pc+latin%(v[1])
+ * guj = pc+in(guj)%(v[1])
+ * gur = pc+in(guru)%(v[1])
+ * iu = pc+ca(ike)%(v[1])
+ * lo = pc+la%(v[1])
+ * kan = pc+in(kan)%(v[1])
+ * mi = pc+mao%(v[1])
+ * ml = pc+in(mal)%(v[1])
+ * ogham = pc+ie(ogam)%(v[1])
+ * ori = pc+ie(ori)%(v[1])
+ * sapmi = pc+no(smi)%(v[1])
+ * sr = pc+srp%(v[1])
+ * syr = pc+sy(syc)%(v[1])
+ * tel = pc+in(tel)%(v[1])
+ * tml = pc+in(tam)%(v[1])
+ * yu = pc+srp%(v[1])
+ * fr-latin9 = pc+fr(latin9)%(v[1])
+ * us_intl = pc+us(alt-intl)%(v[1])
+ * ben(basic) = pc+in(ben)
+ * ben(probhat) = pc+in(ben_probhat)
+ * dev(basic) = pc+in(deva)
+ * dvorak($dvoraklayouts) = pc+%v(dvorak)
+ * dvorak(basic) = pc+us(dvorak)
+ * dvorak(pl_basic) = pc+pl(dvorak)
+ * dvorak(pl) = pc+pl(dvorak_quotes)
+ * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes)
+ * dzdwi(basic) = pc+bt(basic)
+ * fi(basic) = pc+fi(classic)
+ * ge(azerty_tskapo) = pc+fr(geo)
+ * guj(basic) = pc+in(guj)
+ * gur(basic) = pc+in(guru)
+ * ie(laptop) = pc+ie(basic)
+ * ie(CloGaelachLaptop) = pc+ie(CloGaelach)
+ * il(si1452) = pc+ie(basic)
+ * iu(basic) = pc+ca(ike)
+ * lo(basic) = pc+la(basic)
+ * kan(basic) = pc+in(kan)
+ * mal(basic) = pc+in(mal)
+ * mal(mlplusnum) = pc+in(mal)
+ * ogham(basic) = pc+ie(ogam)
+ * ogham(laptop) = pc+ie(ogam)
+ * ogham(is434) = pc+ie(ogam_is434)
+ * ogham(is434laptop) = pc+ie(ogam_is434)
+ * ori(basic) = pc+in(ori)
+ * ro(de) = pc+ro(winkeys)
+ * ro(us) = pc+ro(std)
+ * ro(academic) = pc+ro(std)
+ * ro(std_comma) = pc+ro(std)
+ * ro(comma) = pc+ro(basic)
+ * ru(os) = pc+ru(os_legacy)
+ * sapmi(basic) = pc+no(smi)
+ * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys)
+ * sapmi(sefi) = pc+fi(smi)
+ * sin(phonetic-static) = pc+in(sin_phonetic)
+ * syr(basic) = pc+sy(syc)
+ * syr(phonetic) = pc+sy(syc_phonetic)
+ * tam(INSCRIPT) = pc+in(tam)
+ * tam(UNI) = pc+in(tam_unicode)
+ * tam(TAB) = pc+in(tam_TAB)
+ * tam(TSCII) = pc+in(tam_TSCII)
+ * tel(basic) = pc+in(tel)
+ * yu(basic) = pc+srp(latin)
+ * yu(unicode) = pc+srp(latinunicode)
+ * yu(yz) = pc+srp(latinyz)
+ * yu(unicodeyz) = pc+srp(latinunicodeyz)
+ ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1])
+ amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1])
+ sun4 * = latin+sun_vndr/us(sun4)+%l[1]%(v[1])
+ sun5 * = latin+sun_vndr/us(sun5)+%l[1]%(v[1])
+ macintosh_old us = macintosh_vndr/us(oldmac)
+ macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1])
+ macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1])
+ $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1])
+ thinkpad br = pc+%l[1](thinkpad)
+ * * = pc+%l[1]%(v[1])
+
+! model layout[1] variant[1] = symbols
+ * ben basic = pc+in(ben)
+ * ben probhat = pc+in(ben_probhat)
+ * dev basic = pc+in(deva)
+ * dvorak $dvoraklayouts = pc+%v(dvorak)
+ * dvorak basic = pc+us(dvorak)
+ * dvorak pl_basic = pc+pl(dvorak)
+ * dvorak pl = pc+pl(dvorak_quotes)
+ * dvorak pl_altquotes = pc+pl(dvorak_altquotes)
+ * dzdwi basic = pc+bt(basic)
+ * fi basic = pc+fi(classic)
+ * ge azerty_tskapo = pc+fr(geo)
+ * guj basic = pc+in(guj)
+ * gur basic = pc+in(guru)
+ * ie laptop = pc+ie(basic)
+ * ie CloGaelachLaptop = pc+ie(CloGaelach)
+ * il si1452 = pc+ie(basic)
+ * iu basic = pc+ca(ike)
+ * lo basic = pc+la(basic)
+ * kan basic = pc+in(kan)
+ * mal basic = pc+in(mal)
+ * mal mlplusnum = pc+in(mal)
+ * ogham basic = pc+ie(ogam)
+ * ogham laptop = pc+ie(ogam)
+ * ogham is434 = pc+ie(ogam_is434)
+ * ogham is434laptop = pc+ie(ogam_is434)
+ * ori basic = pc+in(ori)
+ * ro de = pc+ro(winkeys)
+ * ro us = pc+ro(std)
+ * ro academic = pc+ro(std)
+ * ro std_comma = pc+ro(std)
+ * ro comma = pc+ro(basic)
+ * ru os = pc+ru(os_legacy)
+ * sapmi basic = pc+no(smi)
+ * sapmi nodeadkeys = pc+no(smi_nodeadkeys)
+ * sapmi sefi = pc+fi(smi)
+ * sin phonetic-static = pc+in(sin_phonetic)
+ * syr basic = pc+sy(syc)
+ * syr phonetic = pc+sy(syc_phonetic)
+ * tam INSCRIPT = pc+in(tam)
+ * tam UNI = pc+in(tam_unicode)
+ * tam TAB = pc+in(tam_TAB)
+ * tam TSCII = pc+in(tam_TSCII)
+ * tel basic = pc+in(tel)
+ * yu basic = pc+srp(latin)
+ * yu unicode = pc+srp(latinunicode)
+ * yu yz = pc+srp(latinyz)
+ * yu unicodeyz = pc+srp(latinunicodeyz)
+
+! layout[2] = symbols
+ ar = +ara%(v[2]):2
+ ben = +in(ben)%(v[2]):2
+ bs = +ba%(v[2]):2
+ cs = +rs%(v[2]):2
+ cz_qwerty = +cz(qwerty)%(v[2]):2
+ dev = +in(deva)%(v[2]):2
+ dvorak = +us(dvorak)%(v[2]):2
+ dzdwi = +bt%(v[2]):2
+ el = +gr%(v[2]):2
+ en_US = +latin%(v[2]):2
+ guj = +in(guj)%(v[2]):2
+ gur = +in(guru)%(v[2]):2
+ iu = +ca(ike)%(v[2]):2
+ lo = +la%(v[2]):2
+ kan = +in(kan)%(v[2]):2
+ mi = +mao%(v[2]):2
+ ml = +in(mal)%(v[2]):2
+ ogham = +ie(ogam)%(v[2]):2
+ ori = +ie(ori)%(v[2]):2
+ sapmi = +no(smi)%(v[2]):2
+ sr = +srp%(v[2]):2
+ syr = +sy(syc)%(v[2]):2
+ tel = +in(tel)%(v[2]):2
+ tml = +in(tam)%(v[2]):2
+ yu = +srp%(v[2]):2
+ fr-latin9 = +fr(latin9)%(v[2]):2
+ us_intl = +us(alt-intl)%(v[2]):2
+ ben(basic) = +in(ben):2
+ ben(probhat) = +in(ben_probhat):2
+ dev(basic) = +in(deva):2
+ dvorak($dvoraklayouts) = +%v(dvorak):2
+ dvorak(basic) = +us(dvorak):2
+ dvorak(pl_basic) = +pl(dvorak):2
+ dvorak(pl) = +pl(dvorak_quotes):2
+ dvorak(pl_altquotes) = +pl(dvorak_altquotes):2
+ dzdwi(basic) = +bt(basic):2
+ fi(basic) = +fi(classic):2
+ ge(azerty_tskapo) = +fr(geo):2
+ guj(basic) = +in(guj):2
+ gur(basic) = +in(guru):2
+ ie(laptop) = +ie(basic):2
+ ie(CloGaelachLaptop) = +ie(CloGaelach):2
+ il(si1452) = +ie(basic):2
+ iu(basic) = +ca(ike):2
+ lo(basic) = +la(basic):2
+ kan(basic) = +in(kan):2
+ mal(basic) = +in(mal):2
+ mal(mlplusnum) = +in(mal):2
+ ogham(basic) = +ie(ogam):2
+ ogham(laptop) = +ie(ogam):2
+ ogham(is434) = +ie(ogam_is434):2
+ ogham(is434laptop) = +ie(ogam_is434):2
+ ori(basic) = +in(ori):2
+ ro(de) = +ro(winkeys):2
+ ro(us) = +ro(std):2
+ ro(academic) = +ro(std):2
+ ro(std_comma) = +ro(std):2
+ ro(comma) = +ro(basic):2
+ ru(os) = +ru(os_legacy):2
+ sapmi(basic) = +no(smi):2
+ sapmi(nodeadkeys) = +no(smi_nodeadkeys):2
+ sapmi(sefi) = +fi(smi):2
+ sin(phonetic-static) = +in(sin_phonetic):2
+ syr(basic) = +sy(syc):2
+ syr(phonetic) = +sy(syc_phonetic):2
+ tam(INSCRIPT) = +in(tam):2
+ tam(UNI) = +in(tam_unicode):2
+ tam(TAB) = +in(tam_TAB):2
+ tam(TSCII) = +in(tam_TSCII):2
+ tel(basic) = +in(tel):2
+ yu(basic) = +srp(latin):2
+ yu(unicode) = +srp(latinunicode):2
+ yu(yz) = +srp(latinyz):2
+ yu(unicodeyz) = +srp(latinunicodeyz):2
+ * = +%l[2]%(v[2]):2
+
+! layout[3] = symbols
+ ar = +ara%(v[3]):3
+ ben = +in(ben)%(v[3]):3
+ bs = +ba%(v[3]):3
+ cs = +rs%(v[3]):3
+ cz_qwerty = +cz(qwerty)%(v[3]):3
+ dev = +in(deva)%(v[3]):3
+ dvorak = +us(dvorak)%(v[3]):3
+ dzdwi = +bt%(v[3]):3
+ el = +gr%(v[3]):3
+ en_US = +latin%(v[3]):3
+ guj = +in(guj)%(v[3]):3
+ gur = +in(guru)%(v[3]):3
+ iu = +ca(ike)%(v[3]):3
+ lo = +la%(v[3]):3
+ kan = +in(kan)%(v[3]):3
+ mi = +mao%(v[3]):3
+ ml = +in(mal)%(v[3]):3
+ ogham = +ie(ogam)%(v[3]):3
+ ori = +ie(ori)%(v[3]):3
+ sapmi = +no(smi)%(v[3]):3
+ sr = +srp%(v[3]):3
+ syr = +sy(syc)%(v[3]):3
+ tel = +in(tel)%(v[3]):3
+ tml = +in(tam)%(v[3]):3
+ yu = +srp%(v[3]):3
+ fr-latin9 = +fr(latin9)%(v[3]):3
+ us_intl = +us(alt-intl)%(v[3]):3
+ ben(basic) = +in(ben):3
+ ben(probhat) = +in(ben_probhat):3
+ dev(basic) = +in(deva):3
+ dvorak($dvoraklayouts) = +%v(dvorak):3
+ dvorak(basic) = +us(dvorak):3
+ dvorak(pl_basic) = +pl(dvorak):3
+ dvorak(pl) = +pl(dvorak_quotes):3
+ dvorak(pl_altquotes) = +pl(dvorak_altquotes):3
+ dzdwi(basic) = +bt(basic):3
+ fi(basic) = +fi(classic):3
+ ge(azerty_tskapo) = +fr(geo):3
+ guj(basic) = +in(guj):3
+ gur(basic) = +in(guru):3
+ ie(laptop) = +ie(basic):3
+ ie(CloGaelachLaptop) = +ie(CloGaelach):3
+ il(si1452) = +ie(basic):3
+ iu(basic) = +ca(ike):3
+ lo(basic) = +la(basic):3
+ kan(basic) = +in(kan):3
+ mal(basic) = +in(mal):3
+ mal(mlplusnum) = +in(mal):3
+ ogham(basic) = +ie(ogam):3
+ ogham(laptop) = +ie(ogam):3
+ ogham(is434) = +ie(ogam_is434):3
+ ogham(is434laptop) = +ie(ogam_is434):3
+ ori(basic) = +in(ori):3
+ ro(de) = +ro(winkeys):3
+ ro(us) = +ro(std):3
+ ro(academic) = +ro(std):3
+ ro(std_comma) = +ro(std):3
+ ro(comma) = +ro(basic):3
+ ru(os) = +ru(os_legacy):3
+ sapmi(basic) = +no(smi):3
+ sapmi(nodeadkeys) = +no(smi_nodeadkeys):3
+ sapmi(sefi) = +fi(smi):3
+ sin(phonetic-static) = +in(sin_phonetic):3
+ syr(basic) = +sy(syc):3
+ syr(phonetic) = +sy(syc_phonetic):3
+ tam(INSCRIPT) = +in(tam):3
+ tam(UNI) = +in(tam_unicode):3
+ tam(TAB) = +in(tam_TAB):3
+ tam(TSCII) = +in(tam_TSCII):3
+ tel(basic) = +in(tel):3
+ yu(basic) = +srp(latin):3
+ yu(unicode) = +srp(latinunicode):3
+ yu(yz) = +srp(latinyz):3
+ yu(unicodeyz) = +srp(latinunicodeyz):3
+ * = +%l[3]%(v[3]):3
+
+! layout[4] = symbols
+ ar = +ara%(v[4]):4
+ ben = +in(ben)%(v[4]):4
+ bs = +ba%(v[4]):4
+ cs = +rs%(v[4]):4
+ cz_qwerty = +cz(qwerty)%(v[4]):4
+ dev = +in(deva)%(v[4]):4
+ dvorak = +us(dvorak)%(v[4]):4
+ dzdwi = +bt%(v[4]):4
+ el = +gr%(v[4]):4
+ en_US = +latin%(v[4]):4
+ guj = +in(guj)%(v[4]):4
+ gur = +in(guru)%(v[4]):4
+ iu = +ca(ike)%(v[4]):4
+ lo = +la%(v[4]):4
+ kan = +in(kan)%(v[4]):4
+ mi = +mao%(v[4]):4
+ ml = +in(mal)%(v[4]):4
+ ogham = +ie(ogam)%(v[4]):4
+ ori = +ie(ori)%(v[4]):4
+ sapmi = +no(smi)%(v[4]):4
+ sr = +srp%(v[4]):4
+ syr = +sy(syc)%(v[4]):4
+ tel = +in(tel)%(v[4]):4
+ tml = +in(tam)%(v[4]):4
+ yu = +srp%(v[4]):4
+ fr-latin9 = +fr(latin9)%(v[4]):4
+ us_intl = +us(alt-intl)%(v[4]):4
+ ben(basic) = +in(ben):4
+ ben(probhat) = +in(ben_probhat):4
+ dev(basic) = +in(deva):4
+ dvorak($dvoraklayouts) = +%v(dvorak):4
+ dvorak(basic) = +us(dvorak):4
+ dvorak(pl_basic) = +pl(dvorak):4
+ dvorak(pl) = +pl(dvorak_quotes):4
+ dvorak(pl_altquotes) = +pl(dvorak_altquotes):4
+ dzdwi(basic) = +bt(basic):4
+ fi(basic) = +fi(classic):4
+ ge(azerty_tskapo) = +fr(geo):4
+ guj(basic) = +in(guj):4
+ gur(basic) = +in(guru):4
+ ie(laptop) = +ie(basic):4
+ ie(CloGaelachLaptop) = +ie(CloGaelach):4
+ il(si1452) = +ie(basic):4
+ iu(basic) = +ca(ike):4
+ lo(basic) = +la(basic):4
+ kan(basic) = +in(kan):4
+ mal(basic) = +in(mal):4
+ mal(mlplusnum) = +in(mal):4
+ ogham(basic) = +ie(ogam):4
+ ogham(laptop) = +ie(ogam):4
+ ogham(is434) = +ie(ogam_is434):4
+ ogham(is434laptop) = +ie(ogam_is434):4
+ ori(basic) = +in(ori):4
+ ro(de) = +ro(winkeys):4
+ ro(us) = +ro(std):4
+ ro(academic) = +ro(std):4
+ ro(std_comma) = +ro(std):4
+ ro(comma) = +ro(basic):4
+ ru(os) = +ru(os_legacy):4
+ sapmi(basic) = +no(smi):4
+ sapmi(nodeadkeys) = +no(smi_nodeadkeys):4
+ sapmi(sefi) = +fi(smi):4
+ sin(phonetic-static) = +in(sin_phonetic):4
+ syr(basic) = +sy(syc):4
+ syr(phonetic) = +sy(syc_phonetic):4
+ tam(INSCRIPT) = +in(tam):4
+ tam(UNI) = +in(tam_unicode):4
+ tam(TAB) = +in(tam_TAB):4
+ tam(TSCII) = +in(tam_TSCII):4
+ tel(basic) = +in(tel):4
+ yu(basic) = +srp(latin):4
+ yu(unicode) = +srp(latinunicode):4
+ yu(yz) = +srp(latinyz):4
+ yu(unicodeyz) = +srp(latinunicodeyz):4
+ * = +%l[4]%(v[4]):4
+
+! layout[2] variant[2] = symbols
+ ben basic = +in(ben):2
+ ben probhat = +in(ben_probhat):2
+ dev basic = +in(deva):2
+ dvorak $dvoraklayouts = +%v(dvorak):2
+ dvorak basic = +us(dvorak):2
+ dvorak pl_basic = +pl(dvorak):2
+ dvorak pl = +pl(dvorak_quotes):2
+ dvorak pl_altquotes = +pl(dvorak_altquotes):2
+ dzdwi basic = +bt(basic):2
+ fi basic = +fi(classic):2
+ ge azerty_tskapo = +fr(geo):2
+ guj basic = +in(guj):2
+ gur basic = +in(guru):2
+ ie laptop = +ie(basic):2
+ ie CloGaelachLaptop = +ie(CloGaelach):2
+ il si1452 = +ie(basic):2
+ iu basic = +ca(ike):2
+ lo basic = +la(basic):2
+ kan basic = +in(kan):2
+ mal basic = +in(mal):2
+ mal mlplusnum = +in(mal):2
+ ogham basic = +ie(ogam):2
+ ogham laptop = +ie(ogam):2
+ ogham is434 = +ie(ogam_is434):2
+ ogham is434laptop = +ie(ogam_is434):2
+ ori basic = +in(ori):2
+ ro de = +ro(winkeys):2
+ ro us = +ro(std):2
+ ro academic = +ro(std):2
+ ro std_comma = +ro(std):2
+ ro comma = +ro(basic):2
+ ru os = +ru(os_legacy):2
+ sapmi basic = +no(smi):2
+ sapmi nodeadkeys = +no(smi_nodeadkeys):2
+ sapmi sefi = +fi(smi):2
+ sin phonetic-static = +in(sin_phonetic):2
+ syr basic = +sy(syc):2
+ syr phonetic = +sy(syc_phonetic):2
+ tam INSCRIPT = +in(tam):2
+ tam UNI = +in(tam_unicode):2
+ tam TAB = +in(tam_TAB):2
+ tam TSCII = +in(tam_TSCII):2
+ tel basic = +in(tel):2
+ yu basic = +srp(latin):2
+ yu unicode = +srp(latinunicode):2
+ yu yz = +srp(latinyz):2
+ yu unicodeyz = +srp(latinunicodeyz):2
+
+! layout[3] variant[3] = symbols
+ ben basic = +in(ben):3
+ ben probhat = +in(ben_probhat):3
+ dev basic = +in(deva):3
+ dvorak $dvoraklayouts = +%v(dvorak):3
+ dvorak basic = +us(dvorak):3
+ dvorak pl_basic = +pl(dvorak):3
+ dvorak pl = +pl(dvorak_quotes):3
+ dvorak pl_altquotes = +pl(dvorak_altquotes):3
+ dzdwi basic = +bt(basic):3
+ fi basic = +fi(classic):3
+ ge azerty_tskapo = +fr(geo):3
+ guj basic = +in(guj):3
+ gur basic = +in(guru):3
+ ie laptop = +ie(basic):3
+ ie CloGaelachLaptop = +ie(CloGaelach):3
+ il si1452 = +ie(basic):3
+ iu basic = +ca(ike):3
+ lo basic = +la(basic):3
+ kan basic = +in(kan):3
+ mal basic = +in(mal):3
+ mal mlplusnum = +in(mal):3
+ ogham basic = +ie(ogam):3
+ ogham laptop = +ie(ogam):3
+ ogham is434 = +ie(ogam_is434):3
+ ogham is434laptop = +ie(ogam_is434):3
+ ori basic = +in(ori):3
+ ro de = +ro(winkeys):3
+ ro us = +ro(std):3
+ ro academic = +ro(std):3
+ ro std_comma = +ro(std):3
+ ro comma = +ro(basic):3
+ ru os = +ru(os_legacy):3
+ sapmi basic = +no(smi):3
+ sapmi nodeadkeys = +no(smi_nodeadkeys):3
+ sapmi sefi = +fi(smi):3
+ sin phonetic-static = +in(sin_phonetic):3
+ syr basic = +sy(syc):3
+ syr phonetic = +sy(syc_phonetic):3
+ tam INSCRIPT = +in(tam):3
+ tam UNI = +in(tam_unicode):3
+ tam TAB = +in(tam_TAB):3
+ tam TSCII = +in(tam_TSCII):3
+ tel basic = +in(tel):3
+ yu basic = +srp(latin):3
+ yu unicode = +srp(latinunicode):3
+ yu yz = +srp(latinyz):3
+ yu unicodeyz = +srp(latinunicodeyz):3
+
+! layout[4] variant[4] = symbols
+ ben basic = +in(ben):4
+ ben probhat = +in(ben_probhat):4
+ dev basic = +in(deva):4
+ dvorak $dvoraklayouts = +%v(dvorak):4
+ dvorak basic = +us(dvorak):4
+ dvorak pl_basic = +pl(dvorak):4
+ dvorak pl = +pl(dvorak_quotes):4
+ dvorak pl_altquotes = +pl(dvorak_altquotes):4
+ dzdwi basic = +bt(basic):4
+ fi basic = +fi(classic):4
+ ge azerty_tskapo = +fr(geo):4
+ guj basic = +in(guj):4
+ gur basic = +in(guru):4
+ ie laptop = +ie(basic):4
+ ie CloGaelachLaptop = +ie(CloGaelach):4
+ il si1452 = +ie(basic):4
+ iu basic = +ca(ike):4
+ lo basic = +la(basic):4
+ kan basic = +in(kan):4
+ mal basic = +in(mal):4
+ mal mlplusnum = +in(mal):4
+ ogham basic = +ie(ogam):4
+ ogham laptop = +ie(ogam):4
+ ogham is434 = +ie(ogam_is434):4
+ ogham is434laptop = +ie(ogam_is434):4
+ ori basic = +in(ori):4
+ ro de = +ro(winkeys):4
+ ro us = +ro(std):4
+ ro academic = +ro(std):4
+ ro std_comma = +ro(std):4
+ ro comma = +ro(basic):4
+ ru os = +ru(os_legacy):4
+ sapmi basic = +no(smi):4
+ sapmi nodeadkeys = +no(smi_nodeadkeys):4
+ sapmi sefi = +fi(smi):4
+ sin phonetic-static = +in(sin_phonetic):4
+ syr basic = +sy(syc):4
+ syr phonetic = +sy(syc_phonetic):4
+ tam INSCRIPT = +in(tam):4
+ tam UNI = +in(tam_unicode):4
+ tam TAB = +in(tam_TAB):4
+ tam TSCII = +in(tam_TSCII):4
+ tel basic = +in(tel):4
+ yu basic = +srp(latin):4
+ yu unicode = +srp(latinunicode):4
+ yu yz = +srp(latinyz):4
+ yu unicodeyz = +srp(latinunicodeyz):4
+
+! model = symbols
+ benqx730 = +inet(benqx)
+ benqx800 = +inet(benqx)
+ dellsk8125 = +inet(dell)
+ dellsk8135 = +inet(dell)
+ hpnx9020 = +inet(hp5185)
+ logicd = +inet(logitech_base)
+ logicd_it = +inet(logitech_base)
+ logicd_nav = +inet(logitech_base)
+ logicd_opt = +inet(logitech_base)
+ logiultrax = +inet(logitech_base)
+ logiclx300 = +inet(logiex110)
+ logii350 = +inet(logiex110)
+ logimel = +inet(logiex110)
+ vsonku306 = +inet(microsoftprooem)
+ $inetkbds = +inet(%m)
+ acer_tm_800 = +inet(acer_laptop)
+ benqx730 = +inet(benqx)
+ benqx800 = +inet(benqx)
+ dell8125 = +inet(dellusbmm)
+ dell8135 = +inet(dellusbmm)
+ ltcd = +inet(logicda)
+ logicdit = +inet(logicd)
+ logicdo = +inet(logicd)
+ logicdp = +inet(logicd)
+ logicdpa = +inet(logicda)
+ logiciink = +inet(logicink)
+ $maclaptop = +inet(apple)+level3(enter_switch)
+ $macs = +inet(apple)
+ thinkpadz60 = +inet(thinkpad60)
+
+! model layout = compat
+ pc98 nec_vndr/jp = pc98(basic)
+ * jp = complete+japan
+ olpc * = olpc
+ * * = complete
+
+! model layout[1] = compat
+ * * = complete
+
+! model = types
+ $macs = complete+numpad(mac)
+ * = complete
+
+! layout option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle)
+
+! layout[1] option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1
+
+! layout[2] option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2
+
+! layout[3] option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3
+
+! layout[4] option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4
+
+! option = symbols
+ grp:shift_toggle = +group(shifts_toggle)
+ altwin:menu = +altwin(menu)
+ altwin:meta_alt = +altwin(meta_alt)
+ altwin:ctrl_win = +altwin(ctrl_win)
+ altwin:meta_win = +altwin(meta_win)
+ altwin:left_meta_win = +altwin(left_meta_win)
+ altwin:super_win = +altwin(super_win)
+ altwin:hyper_win = +altwin(hyper_win)
+ altwin:alt_super_win = +altwin(alt_super_win)
+ altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin)
+ grp:switch = +group(switch)
+ grp:lswitch = +group(lswitch)
+ grp:win_switch = +group(win_switch)
+ grp:lwin_switch = +group(lwin_switch)
+ grp:rwin_switch = +group(rwin_switch)
+ grp:toggle = +group(toggle)
+ grp:shifts_toggle = +group(shifts_toggle)
+ grp:ctrls_toggle = +group(ctrls_toggle)
+ grp:alts_toggle = +group(alts_toggle)
+ grp:ctrl_shift_toggle = +group(ctrl_shift_toggle)
+ grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle)
+ grp:caps_toggle = +capslock(grouplock)
+ grp:caps_switch = +capslock(groupshift)
+ grp:shift_caps_toggle = +group(shift_caps_toggle)
+ grp:shift_caps_switch = +group(shift_caps_switch)
+ grp:alt_caps_toggle = +group(alt_caps_toggle)
+ grp:ctrl_alt_toggle = +group(ctrl_alt_toggle)
+ grp:alt_shift_toggle = +group(alt_shift_toggle)
+ grp:menu_toggle = +group(menu_toggle)
+ grp:lwin_toggle = +group(lwin_toggle)
+ grp:rwin_toggle = +group(rwin_toggle)
+ grp:lshift_toggle = +group(lshift_toggle)
+ grp:rshift_toggle = +group(rshift_toggle)
+ grp:rctrl_switch = +group(rctrl_switch)
+ grp:lctrl_toggle = +group(lctrl_toggle)
+ grp:rctrl_toggle = +group(rctrl_toggle)
+ grp:lalt_toggle = +group(lalt_toggle)
+ lv3:switch = +level3(switch)
+ lv3:ralt_switch = +level3(ralt_switch)
+ lv3:ralt_switch_multikey = +level3(ralt_switch_multikey)
+ lv3:ralt_alt = +level3(ralt_alt)
+ lv3:lalt_switch = +level3(lalt_switch)
+ lv3:alt_switch = +level3(alt_switch)
+ lv3:menu_switch = +level3(menu_switch)
+ lv3:win_switch = +level3(win_switch)
+ lv3:lwin_switch = +level3(lwin_switch)
+ lv3:rwin_switch = +level3(rwin_switch)
+ caps:capslock = +capslock(capslock)
+ caps:shiftlock = +capslock(shiftlock)
+ caps:swapescape = +capslock(swapescape)
+ ctrl:nocaps = +ctrl(nocaps)
+ ctrl:swapcaps = +ctrl(swapcaps)
+ ctrl:ctrl_ac = +ctrl(ctrl_ac)
+ ctrl:ctrl_aa = +ctrl(ctrl_aa)
+ ctrl:ctrl_ra = +ctrl(ctrl_ra)
+ compose:ralt = +compose(ralt)
+ compose:lwin = +compose(lwin)
+ compose:rwin = +compose(rwin)
+ compose:menu = +compose(menu)
+ compose:rctrl = +compose(rctrl)
+ compose:caps = +compose(caps)
+ compose:102 = +compose(102)
+ srvrkeys:none = +srvr_ctrl(no_srvr_keys)
+ eurosign:e = +eurosign(e)
+ eurosign:2 = +eurosign(2)
+ eurosign:4 = +eurosign(4)
+ eurosign:5 = +eurosign(5)
+ keypad:oss = +keypad(oss)
+ keypad:legacy = +keypad(legacy)
+ keypad:legacy_wang = +keypad(legacy_wang)
+ keypad:oss_wang = +keypad(oss_wang)
+ keypad:future = +keypad(future)
+ keypad:future_wang = +keypad(future_wang)
+ keypad:phone_hex = +keypad(phone_hex)
+ nbsp:none = +nbsp(none)
+ nbsp:level2 = +nbsp(level2)
+ nbsp:level3 = +nbsp(level3)
+ nbsp:level3s = +nbsp(level3s)
+ nbsp:level3n = +nbsp(level3n)
+ nbsp:level4 = +nbsp(level4)
+ nbsp:level4n = +nbsp(level4n)
+ nbsp:level4nl = +nbsp(level4nl)
+ japan:nicola_f_bs = +jp(nicola_f_bs)
+ kpdl:dot = +kpdl(dot)
+ kpdl:comma = +kpdl(comma)
+ kpdl:dotoss = +kpdl(dotoss)
+ kpdl:dotoss_latin9 = +kpdl(dotoss_latin9)
+ kpdl:commaoss = +kpdl(commaoss)
+ kpdl:momayyezoss = +kpdl(momayyezoss)
+ kpdl:kposs = +kpdl(kposs)
+ shift:breaks_caps = +shift(breaks_caps)
+
+
+! option = compat
+ grp_led:num = +lednum(group_lock)
+ grp_led:caps = +ledcaps(group_lock)
+ grp_led:scroll = +ledscroll(group_lock)
+ grp:caps_toggle = +ledcaps(group_lock)
+ japan:kana_lock = +japan(kana_lock)
+
+
+! option = types
+ caps:internal = +caps(internal)
+ caps:internal_nocancel = +caps(internal_nocancel)
+ caps:shift = +caps(shift)
+ caps:shift_nocancel = +caps(shift_nocancel)
+ numpad:pc = +numpad(pc)
+ numpad:mac = +numpad(mac)
+ numpad:microsoft = +numpad(microsoft)
diff --git a/xorg-server/xkbdata.src/rules/base.hdr.part b/xorg-server/xkbdata.src/rules/base.hdr.part
new file mode 100644
index 000000000..d867c8876
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.hdr.part
@@ -0,0 +1,9 @@
+// $Xorg: xfree86,v 1.3 2000/08/17 19:54:42 cpqbld Exp $
+
+//
+// Rules for resolving XKB components for use with XFree86
+// Copyright 1996 by Joseph Moss
+//
+// 2002 Modifier: Ivan Pascal The XFree86 Project
+// $XFree86: xc/programs/xkbcomp/rules/xfree86,v 3.79 2004/01/09 00:16:01 dawes Exp $
+//
diff --git a/xorg-server/xkbdata.src/rules/base.l1_k.part b/xorg-server/xkbdata.src/rules/base.l1_k.part
new file mode 100644
index 000000000..91b775396
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.l1_k.part
@@ -0,0 +1,3 @@
+ $azerty = +aliases(azerty)
+ $qwertz = +aliases(qwertz)
+ * = +aliases(qwerty)
diff --git a/xorg-server/xkbdata.src/rules/base.l1o_s.part b/xorg-server/xkbdata.src/rules/base.l1o_s.part
new file mode 100644
index 000000000..5544d5386
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.l1o_s.part
@@ -0,0 +1 @@
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1
diff --git a/xorg-server/xkbdata.src/rules/base.l2_s.part b/xorg-server/xkbdata.src/rules/base.l2_s.part
new file mode 100644
index 000000000..03a7aafe6
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.l2_s.part
@@ -0,0 +1 @@
+ * = +%l[2]%(v[2]):2
diff --git a/xorg-server/xkbdata.src/rules/base.l2o_s.part b/xorg-server/xkbdata.src/rules/base.l2o_s.part
new file mode 100644
index 000000000..3ffd6a8b0
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.l2o_s.part
@@ -0,0 +1 @@
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2
diff --git a/xorg-server/xkbdata.src/rules/base.l3_s.part b/xorg-server/xkbdata.src/rules/base.l3_s.part
new file mode 100644
index 000000000..0947c11f4
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.l3_s.part
@@ -0,0 +1 @@
+ * = +%l[3]%(v[3]):3
diff --git a/xorg-server/xkbdata.src/rules/base.l3o_s.part b/xorg-server/xkbdata.src/rules/base.l3o_s.part
new file mode 100644
index 000000000..aa327eb42
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.l3o_s.part
@@ -0,0 +1 @@
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3
diff --git a/xorg-server/xkbdata.src/rules/base.l4_s.part b/xorg-server/xkbdata.src/rules/base.l4_s.part
new file mode 100644
index 000000000..23ccc22ec
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.l4_s.part
@@ -0,0 +1 @@
+ * = +%l[4]%(v[4]):4
diff --git a/xorg-server/xkbdata.src/rules/base.l4o_s.part b/xorg-server/xkbdata.src/rules/base.l4o_s.part
new file mode 100644
index 000000000..79682503e
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.l4o_s.part
@@ -0,0 +1 @@
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4
diff --git a/xorg-server/xkbdata.src/rules/base.l_k.part b/xorg-server/xkbdata.src/rules/base.l_k.part
new file mode 100644
index 000000000..91b775396
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.l_k.part
@@ -0,0 +1,3 @@
+ $azerty = +aliases(azerty)
+ $qwertz = +aliases(qwertz)
+ * = +aliases(qwerty)
diff --git a/xorg-server/xkbdata.src/rules/base.lists.part b/xorg-server/xkbdata.src/rules/base.lists.part
new file mode 100644
index 000000000..b08ab24fe
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.lists.part
@@ -0,0 +1,88 @@
+
+// If you want non-latin layouts implicitly include the en_US layout
+// uncomment lines below
+//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \
+// in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \
+// ru scc sy syr tel th tj tam ua uz
+
+// PC models
+! $pcmodels = pc101 pc102 pc104 pc105
+
+// Microsoft models (using MS geometry)
+! $msmodels = microsoft microsoft7000 microsoftpro microsoftprousb microsoftprose
+
+// PC geometries - they have special geometry but symbols are mostly pc105
+! $pcgeometries = abnt2 latitude jp106 kr106
+
+// Layouts that provide further specializations for the OLPC
+! $olpclayouts = af am ara br ca es et it kh kz in mn np ru th tr us
+
+! $macbooks = macbook78 macbook79
+! $maclaptop = ibook powerbook macbook78 macbook79
+! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79
+
+! $macvendorlayouts = ch de dk es fi fr gb is it latam nl no pt se us
+
+! $azerty = be fr
+! $qwertz = al cz de hr hu ro si sk
+
+! $inetkbds = a4techKB21 a4techKBS8 a4_rfkb23 \
+ acer_c300 acer_ferrari4k acer_laptop \
+ acpi airkey \
+ apple armada asus_laptop azonaRF2300 \
+ benqx brother \
+ btc5113rf btc5126t btc6301urf btc9000 btc9000a btc9001ah btc5090 btc9019u \
+ cherryblue cherrybluea cherryblueb cherrycyboard \
+ chicony chicony0108 chicony9885 \
+ compaqeak8 compaqik7 compaqik13 compaqik18 \
+ cymotionlinux \
+ dell dellm65 inspiron precision_m dellusbmm dtk2000 \
+ emachines ennyah_dkb1008 evdev fscaa1667g \
+ genius geniuscomfy geniuscomfy2 geniuskb19e \
+ gyration honeywell_euroboard \
+ hp2501 hp2505 hp5xx hp500fa hp5181 hp5185 \
+ hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx \
+ ibm_spacesaver ipaq inspiron intel latitude \
+ logiaccess logicda logicink \
+ logiex110 logiclx300 \
+ logiinkse logiinkseusb logiitc logiik \
+ logitech_base itouch logiultrax \
+ logitech_g15 \
+ logidinovo logidinovoedge \
+ microsoft7000 microsoftinet microsoftpro microsoftprousb microsoftprooem microsoftprose \
+ microsoftoffice microsoftmult \
+ mx1998 mx2500 mx2750 \
+ oretec \
+ presario propeller \
+ qtronix \
+ rapidaccess rapidaccess2 rapidaccess2a thinkpad thinkpad60 \
+ samsung4500 samsung4510 \
+ scorpius silvercrest \
+ sk1300 sk2500 sk6200 sk7100 sp_inet \
+ sven sven303 symplon \
+ toshiba_s3000 trust trustda \
+ yahoo
+
+// all layouts with 3rd and 4th groups
+! $threelevellayouts = al az \
+ be br bt \
+ ca ch cs cz \
+ de dk \
+ ee es \
+ fi fo fr \
+ gb gr \
+ hu \
+ ie ir is it \
+ kg \
+ latam \
+ lk lt \
+ mn mt \
+ nl no \
+ pl pt \
+ ro \
+ se sk \
+ tr \
+ us \
+ vn \
+ za
+
diff --git a/xorg-server/xkbdata.src/rules/base.lst b/xorg-server/xkbdata.src/rules/base.lst
new file mode 100644
index 000000000..17742b8e6
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.lst
@@ -0,0 +1,683 @@
+! model
+ pc101 Generic 101-key PC
+ pc102 Generic 102-key (Intl) PC
+ pc104 Generic 104-key PC
+ pc105 Generic 105-key (Intl) PC
+ dell101 Dell 101-key PC
+ latitude Dell Latitude series laptop
+ dellm65 Dell Precision M65
+ everex Everex STEPnote
+ flexpro Keytronic FlexPro
+ microsoft Microsoft Natural
+ omnikey101 Northgate OmniKey 101
+ winbook Winbook Model XP5
+ jp106 Japanese 106-key
+ pc98 PC-98xx Series
+ a4techKB21 A4Tech KB-21
+ a4techKBS8 A4Tech KBS-8
+ a4_rfkb23 A4Tech Wireless Desktop RFKB-23
+ abnt2 Brazilian ABNT2
+ airkey Acer AirKey V
+ acpi ACPI Standard
+ azonaRF2300 Azona RF2300 wireless Internet Keyboard
+ scorpius Advance Scorpius KI
+ brother Brother Internet Keyboard
+ 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
+ cherryblue Cherry Blue Line CyBo@rd
+ cherryblueb Cherry CyMotion Master XPress
+ cherrybluea Cherry Blue Line CyBo@rd (alternate option)
+ cherrycyboard Cherry CyBo@rd USB-Hub
+ chicony Chicony Internet Keyboard
+ chicony0108 Chicony KU-0108
+ chicony9885 Chicony KB-9885
+ compaqeak8 Compaq Easy Access Keyboard
+ compaqik7 Compaq Internet Keyboard (7 keys)
+ compaqik13 Compaq Internet Keyboard (13 keys)
+ compaqik18 Compaq Internet Keyboard (18 keys)
+ cymotionlinux Cherry CyMotion Master Linux
+ armada Laptop/notebook Compaq (eg. Armada) Laptop Keyboard
+ presario Laptop/notebook Compaq (eg. Presario) Internet Keyboard
+ ipaq Compaq iPaq Keyboard
+ dell Dell
+ dellsk8125 Dell SK-8125
+ dellsk8135 Dell SK-8135
+ dellusbmm Dell USB Multimedia Keyboard
+ inspiron Dell Laptop/notebook Inspiron 6xxx/8xxx
+ precision_m Dell Laptop/notebook Precision M series
+ dexxa Dexxa Wireless Desktop Keyboard
+ diamond Diamond 9801 / 9802 series
+ dtk2000 DTK2000
+ ennyah_dkb1008 Ennyah DKB-1008
+ fscaa1667g Fujitsu-Siemens Computers AMILO A1667G laptop
+ genius Genius Comfy KB-16M / Genius MM Keyboard KWD-910
+ geniuscomfy Genius Comfy KB-12e
+ geniuscomfy2 Genius Comfy KB-21e-Scroll
+ geniuskb19e Genius KB-19e NB
+ gyration Gyration
+ logitech_base Logitech Generic Keyboard
+ logitech_g15 Logitech G15 extra keys via G15daemon
+ hpi6 Hewlett-Packard Internet Keyboard
+ hp2501 Hewlett-Packard SK-2501 Multimedia Keyboard
+ hp2505 Hewlett-Packard SK-2505 Internet Keyboard
+ hpxe3gc Hewlett-Packard Omnibook XE3 GC
+ hpxe3gf Hewlett-Packard Omnibook XE3 GF
+ hpxt1000 Hewlett-Packard Omnibook XT1000
+ hpzt11xx Hewlett-Packard Pavilion ZT11xx
+ hp500fa Hewlett-Packard Omnibook 500 FA
+ hp5xx Hewlett-Packard Omnibook 5xx
+ hp5181 Hewlett-Packard Internet Keyboard 5181
+ hp5185 Hewlett-Packard Internet Keyboard 5185
+ hpnx9020 Hewlett-Packard nx9020
+ hp6000 Hewlett-Packard Omnibook 6000/6100
+ honeywell_euroboard Honeywell Euroboard
+ rapidaccess IBM Rapid Access
+ rapidaccess2 IBM Rapid Access II
+ rapidaccess2a IBM Rapid Access II (alternate option)
+ thinkpad IBM ThinkPad 560Z/600/600E/A22E
+ thinkpadintl IBM ThinkPad 560Z/600/600E/A22E, Intl
+ thinkpad60 IBM ThinkPad R60/T60/R61/T61
+ thinkpadz60 IBM ThinkPad Z60m/Z60t/Z61m/Z61t
+ ibm_spacesaver IBM Space Saver
+ logiaccess Logitech Access Keyboard
+ logiclx300 Logitech Cordless Desktop LX-300
+ logii350 Logitech Internet 350 Keyboard
+ logimel Logitech Media Elite Keyboard
+ 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 (alternate option)
+ logicdpa2 Logitech Cordless Desktop Pro (alternate option2)
+ logicfn Logitech Cordless Freedom/Desktop Navigator
+ logicdn Logitech Cordless Desktop Navigator
+ logiitc Logitech iTouch Cordless Keyboard (model Y-RB6)
+ logiik Logitech Internet Keyboard
+ itouch Logitech iTouch
+ logicink Logitech Internet Navigator Keyboard
+ logiex110 Logitech Cordless Desktop EX110
+ logiinkse Logitech iTouch Internet Navigator Keyboard SE
+ logiinkseusb Logitech iTouch Internet Navigator Keyboard SE (USB)
+ logiultrax Logitech Ultra-X Keyboard
+ logiultraxc Logitech Ultra-X Cordless Media Desktop Keyboard
+ logidinovo Logitech diNovo Keyboard
+ logidinovoedge Logitech diNovo Edge Keyboard
+ mx1998 Memorex MX1998
+ mx2500 Memorex MX2500 EZ-Access Keyboard
+ mx2750 Memorex MX2750
+ microsoft7000 Microsoft Natural Wireless Ergonomic Keyboard 7000
+ microsoftinet Microsoft Internet Keyboard
+ microsoftpro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro
+ microsoftprousb Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro
+ microsoftprooem Microsoft Natural Keyboard Pro OEM
+ vsonku306 ViewSonic KU-306 Internet Keyboard
+ microsoftprose Microsoft Internet Keyboard Pro, Swedish
+ microsoftoffice Microsoft Office Keyboard
+ microsoftmult Microsoft Wireless Multimedia Keyboard 1.0A
+ microsoftelite Microsoft Natural Keyboard Elite
+ oretec Ortek MCK-800 MM/Internet keyboard
+ propeller Propeller Voyager (KTEZ-1000)
+ qtronix QTronix Scorpius 98N+
+ samsung4500 Samsung SDM 4500P
+ samsung4510 Samsung SDM 4510P
+ sk1300 SK-1300
+ sk2500 SK-2500
+ sk6200 SK-6200
+ sk7100 SK-7100
+ sp_inet Super Power Multimedia Keyboard
+ sven SVEN Ergonomic 2500
+ sven303 SVEN Slim 303
+ symplon Symplon PaceBook (tablet PC)
+ toshiba_s3000 Toshiba Satellite S3000
+ trust Trust Wireless Keyboard Classic
+ trustda Trust Direct Access Keyboard
+ yahoo Yahoo! Internet Keyboard
+ macbook78 MacBook/MacBook Pro
+ macbook79 MacBook/MacBook Pro (Intl)
+ macintosh Macintosh
+ macintosh_old Macintosh Old
+ macintosh_hhk Happy Hacking Keyboard 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
+ silvercrest SILVERCREST Multimedia Wireless Keyboard
+ emachines Laptop/notebook eMachines m68xx
+ kr106 Korean 106-key
+ evdev Evdev-managed keyboard
+ benqx BenQ X-Touch
+ benqx730 BenQ X-Touch 730
+ benqx800 BenQ X-Touch 800
+ hhk Happy Hacking Keyboard
+ classmate Classmate PC
+ olpc OLPC
+ sun6 Sun Type 5/6
+
+! layout
+ us USA
+ ad Andorra
+ af Afghanistan
+ ara Arabic
+ al Albania
+ am Armenia
+ az Azerbaijan
+ by Belarus
+ be Belgium
+ bd Bangladesh
+ in India
+ ba Bosnia and Herzegovina
+ br Brazil
+ bg Bulgaria
+ ma Morocco
+ mm Myanmar
+ ca Canada
+ cd Congo, Democratic Republic of the
+ cn China
+ hr Croatia
+ cz Czechia
+ dk Denmark
+ nl Netherlands
+ bt Bhutan
+ ee Estonia
+ ir Iran
+ iq Iraq
+ fo Faroe Islands
+ fi Finland
+ fr France
+ gh Ghana
+ gn Guinea
+ ge Georgia
+ de Germany
+ gr Greece
+ hu Hungary
+ is Iceland
+ il Israel
+ it Italy
+ jp Japan
+ kg Kyrgyzstan
+ kh Cambodia
+ kz Kazakhstan
+ la Laos
+ latam Latin American
+ lt Lithuania
+ lv Latvia
+ mao Maori
+ me Montenegro
+ mk Macedonia
+ mt Malta
+ mn Mongolia
+ no Norway
+ pl Poland
+ pt Portugal
+ ro Romania
+ ru Russia
+ rs Serbia
+ si Slovenia
+ sk Slovakia
+ es Spain
+ se Sweden
+ ch Switzerland
+ sy Syria
+ tj Tajikistan
+ lk Sri Lanka
+ th Thailand
+ tr Turkey
+ ua Ukraine
+ gb United Kingdom
+ uz Uzbekistan
+ vn Vietnam
+ kr Korea, Republic of
+ nec_vndr/jp Japan (PC-98xx Series)
+ ie Ireland
+ pk Pakistan
+ mv Maldives
+ za South Africa
+ epo Esperanto
+ np Nepal
+ ng Nigeria
+ et Ethiopia
+ braille Braille
+
+! variant
+ chr us: Cherokee
+ euro us: With EuroSign on 5
+ intl us: International (with dead keys)
+ alt-intl us: Alternative international (former us_intl)
+ colemak us: Colemak
+ dvorak us: Dvorak
+ dvorak-intl us: Dvorak international
+ dvorak-l us: Left handed Dvorak
+ dvorak-r us: Right handed Dvorak
+ dvorak-classic us: Classic Dvorak
+ dvp us: Programmer Dvorak
+ rus us: Russian phonetic
+ mac us: Macintosh
+ altgr-intl us: International (AltGr dead keys)
+ olpc2 us: Group toggle on multiply/divide key
+ ps af: Pashto
+ uz af: Southern Uzbek
+ olpc-ps af: OLPC Pashto
+ olpc-fa af: OLPC Dari
+ olpc-uz af: OLPC Southern Uzbek
+ azerty ara: azerty
+ azerty_digits ara: azerty/digits
+ digits ara: digits
+ qwerty ara: qwerty
+ qwerty_digits ara: qwerty/digits
+ buckwalter ara: Buckwalter
+ phonetic am: Phonetic
+ phonetic-alt am: Alternative Phonetic
+ eastern am: Eastern
+ western am: Western
+ eastern-alt am: Alternative Eastern
+ cyrillic az: Cyrillic
+ winkeys by: Winkeys
+ latin by: Latin
+ iso-alternate be: ISO Alternate
+ nodeadkeys be: Eliminate dead keys
+ sundeadkeys be: Sun dead keys
+ wang be: Wang model 724 azerty
+ probhat bd: Probhat
+ ben in: Bengali
+ ben_probhat in: Bengali Probhat
+ guj in: Gujarati
+ guru in: Gurmukhi
+ jhelum in: Gurmukhi Jhelum
+ kan in: Kannada
+ mal in: Malayalam
+ mal_lalitha in: Malayalam Lalitha
+ ori in: Oriya
+ tam_unicode in: Tamil Unicode
+ tam_TAB in: Tamil TAB Typewriter
+ tam_TSCII in: Tamil TSCII Typewriter
+ tam in: Tamil
+ tel in: Telugu
+ urd in: Urdu
+ bolnagri in: Hindi Bolnagri
+ alternatequotes ba: Use guillemets for quotes
+ unicode ba: Use Bosnian digraphs
+ unicodeus ba: US keyboard with Bosnian digraphs
+ us ba: US keyboard with Bosnian letters
+ nodeadkeys br: Eliminate dead keys
+ dvorak br: Dvorak
+ nativo br: Nativo
+ nativo-us br: Nativo for USA keyboards
+ nativo-epo br: Nativo for Esperanto
+ phonetic bg: Phonetic
+ french ma: French
+ tifinagh ma: Tifinagh
+ tifinagh-alt ma: Tifinagh Alternative
+ tifinagh-alt-phonetic ma: Tifinagh Alternative Phonetic
+ tifinagh-extended ma: Tifinagh Extended
+ tifinagh-phonetic ma: Tifinagh Phonetic
+ tifinagh-extended-phonetic ma: Tifinagh Extended Phonetic
+ fr-dvorak ca: French Dvorak
+ fr-legacy ca: French (legacy)
+ multix ca: Multilingual
+ multi ca: Multilingual, first part
+ multi-2gr ca: Multilingual, second part
+ ike ca: Inuktitut
+ shs ca: Secwepemctsin
+ kut ca: Ktunaxa
+ tib cn: Tibetan
+ tib_asciinum cn: Tibetan (with ASCII numerals)
+ alternatequotes hr: Use guillemets for quotes
+ unicode hr: Use Croatian digraphs
+ unicodeus hr: US keyboard with Croatian digraphs
+ us hr: US keyboard with Croatian letters
+ bksl cz: With &lt;\|&gt; key
+ qwerty cz: qwerty
+ qwerty_bksl cz: qwerty, extended Backslash
+ ucw cz: UCW layout (accented letters only)
+ nodeadkeys dk: Eliminate dead keys
+ mac dk: Macintosh
+ mac_nodeadkeys dk: Macintosh, eliminate dead keys
+ dvorak dk: Dvorak
+ sundeadkeys nl: Sun dead keys
+ mac nl: Macintosh
+ std nl: Standard
+ nodeadkeys ee: Eliminate dead keys
+ dvorak ee: Dvorak
+ us ee: US keyboard with Estonian letters
+ pro ir: Pro
+ keypad ir: Keypad
+ pro_keypad ir: Pro Keypad
+ ku ir: Kurdish, Latin Q
+ ku_f ir: Kurdish, (F)
+ ku_alt ir: Kurdish, Latin Alt-Q
+ ku_ara ir: Kurdish, Arabic-Latin
+ ku iq: Kurdish, Latin Q
+ ku_f iq: Kurdish, (F)
+ ku_alt iq: Kurdish, Latin Alt-Q
+ ku_ara iq: Kurdish, Arabic-Latin
+ nodeadkeys fo: Eliminate dead keys
+ nodeadkeys fi: Eliminate dead keys
+ smi fi: Northern Saami
+ classic fi: Classic
+ mac fi: Macintosh
+ nodeadkeys fr: Eliminate dead keys
+ sundeadkeys fr: Sun dead keys
+ oss fr: Alternative
+ oss_latin9 fr: Alternative, latin-9 only
+ oss_nodeadkeys fr: Alternative, eliminate dead keys
+ oss_sundeadkeys fr: Alternative, Sun dead keys
+ latin9 fr: (Legacy) Alternative
+ latin9_nodeadkeys fr: (Legacy) Alternative, eliminate dead keys
+ latin9_sundeadkeys fr: (Legacy) Alternative, Sun dead keys
+ bepo fr: Bepo, ergonomic, Dvorak way
+ bepo_latin9 fr: Bepo, ergonomic, Dvorak way, latin-9 only
+ dvorak fr: Dvorak
+ mac fr: Macintosh
+ geo fr: Georgian AZERTY Tskapo
+ generic gh: Multilingual
+ akan gh: Akan
+ ewe gh: Ewe
+ fula gh: Fula
+ ga gh: Ga
+ hausa gh: Hausa
+ ergonomic ge: Ergonomic
+ mess ge: MESS
+ ru ge: Russian
+ os ge: Ossetian
+ deadacute de: Dead acute
+ deadgraveacute de: Dead grave acute
+ nodeadkeys de: Eliminate dead keys
+ ro de: Romanian keyboard with German letters
+ ro_nodeadkeys de: Romanian keyboard with German letters, eliminate dead keys
+ dvorak de: Dvorak
+ sundeadkeys de: Sun dead keys
+ neo de: Neostyle
+ mac de: Macintosh
+ mac_nodeadkeys de: Macintosh, eliminate dead keys
+ simple gr: Simple
+ extended gr: Extended
+ nodeadkeys gr: Eliminate dead keys
+ polytonic gr: Polytonic
+ standard hu: Standard
+ nodeadkeys hu: Eliminate dead keys
+ qwerty hu: qwerty
+ 101_qwertz_comma_dead hu: 101/qwertz/comma/Dead keys
+ 101_qwertz_comma_nodead hu: 101/qwertz/comma/Eliminate dead keys
+ 101_qwertz_dot_dead hu: 101/qwertz/dot/Dead keys
+ 101_qwertz_dot_nodead hu: 101/qwertz/dot/Eliminate dead keys
+ 101_qwerty_comma_dead hu: 101/qwerty/comma/Dead keys
+ 101_qwerty_comma_nodead hu: 101/qwerty/comma/Eliminate dead keys
+ 101_qwerty_dot_dead hu: 101/qwerty/dot/Dead keys
+ 101_qwerty_dot_nodead hu: 101/qwerty/dot/Eliminate dead keys
+ 102_qwertz_comma_dead hu: 102/qwertz/comma/Dead keys
+ 102_qwertz_comma_nodead hu: 102/qwertz/comma/Eliminate dead keys
+ 102_qwertz_dot_dead hu: 102/qwertz/dot/Dead keys
+ 102_qwertz_dot_nodead hu: 102/qwertz/dot/Eliminate dead keys
+ 102_qwerty_comma_dead hu: 102/qwerty/comma/Dead keys
+ 102_qwerty_comma_nodead hu: 102/qwerty/comma/Eliminate dead keys
+ 102_qwerty_dot_dead hu: 102/qwerty/dot/Dead keys
+ 102_qwerty_dot_nodead hu: 102/qwerty/dot/Eliminate dead keys
+ Sundeadkeys is: Sun dead keys
+ nodeadkeys is: Eliminate dead keys
+ mac is: Macintosh
+ dvorak is: Dvorak
+ lyx il: lyx
+ phonetic il: Phonetic
+ biblical il: Biblical Hebrew (Tiro)
+ nodeadkeys it: Eliminate dead keys
+ mac it: Macintosh
+ geo it: Georgian
+ kana jp: Kana
+ OADG109A jp: OADG 109A
+ ruskaz kz: Russian with Kazakh
+ kazrus kz: Kazakh with Russian
+ nodeadkeys latam: Eliminate dead keys
+ sundeadkeys latam: Sun dead keys
+ std lt: Standard
+ us lt: US keyboard with Lithuanian letters
+ ibm lt: IBM (LST 1205-92)
+ lekp lt: LEKP
+ lekpa lt: LEKPa
+ balticplus lt: Baltic+
+ apostrophe lv: Apostrophe (') variant
+ tilde lv: Tilde (~) variant
+ fkey lv: F-letter (F) variant
+ cyrillic me: Cyrillic
+ cyrillicyz me: Cyrillic, Z and ZHE swapped
+ latinunicode me: Latin unicode
+ latinyz me: Latin qwerty
+ latinunicodeyz me: Latin unicode qwerty
+ cyrillicalternatequotes me: Cyrillic with guillemets
+ latinalternatequotes me: Latin with guillemets
+ nodeadkeys mk: Eliminate dead keys
+ us mt: Maltese keyboard with US layout
+ nodeadkeys no: Eliminate dead keys
+ dvorak no: Dvorak
+ smi no: Northern Saami
+ smi_nodeadkeys no: Northern Saami, eliminate dead keys
+ mac no: Macintosh
+ mac_nodeadkeys no: Macintosh, eliminate dead keys
+ qwertz pl: qwertz
+ dvorak pl: Dvorak
+ dvorak_quotes pl: Dvorak, Polish quotes on quotemark key
+ dvorak_altquotes pl: Dvorak, Polish quotes on key "1/!"
+ csb pl: Kashubian
+ ru_phonetic_dvorak pl: Russian phonetic Dvorak
+ nodeadkeys pt: Eliminate dead keys
+ sundeadkeys pt: Sun dead keys
+ mac pt: Macintosh
+ mac_nodeadkeys pt: Macintosh, eliminate dead keys
+ mac_sundeadkeys pt: Macintosh, Sun dead keys
+ nativo pt: Nativo
+ nativo-us pt: Nativo for USA keyboards
+ nativo-epo pt: Nativo for Esperanto
+ cedilla ro: Cedilla
+ std ro: Standard
+ std_cedilla ro: Standard (Cedilla)
+ winkeys ro: Winkeys
+ phonetic ru: Phonetic
+ typewriter ru: Typewriter
+ legacy ru: Legacy
+ tt ru: Tatar
+ os_legacy ru: Ossetian, legacy
+ os_winkeys ru: Ossetian, Winkeys
+ cv ru: Chuvash
+ cv_latin ru: Chuvash Latin
+ udm ru: Udmurt
+ kom ru: Komi
+ sah ru: Yakut
+ yz rs: Z and ZHE swapped
+ latin rs: Latin
+ latinunicode rs: Latin Unicode
+ latinyz rs: Latin qwerty
+ latinunicodeyz rs: Latin Unicode qwerty
+ alternatequotes rs: With guillemets
+ latinalternatequotes rs: Latin with guillemets
+ alternatequotes si: Use guillemets for quotes
+ unicode si: Use Slovenian digraphs
+ unicodeus si: US keyboard with Slovenian digraphs
+ us si: US keyboard with Slovenian letters
+ bksl sk: Extended Backslash
+ qwerty sk: qwerty
+ qwerty_bksl sk: qwerty, extended Backslash
+ nodeadkeys es: Eliminate dead keys
+ sundeadkeys es: Sun dead keys
+ dvorak es: Dvorak
+ ast es: Asturian variant with bottom-dot H and bottom-dot L
+ cat es: Catalan variant with middle-dot L
+ mac es: Macintosh
+ nodeadkeys se: Eliminate dead keys
+ dvorak se: Dvorak
+ rus se: Russian phonetic
+ rus_nodeadkeys se: Russian phonetic, eliminate dead keys
+ smi se: Northern Saami
+ mac se: Macintosh
+ svdvorak se: Svdvorak
+ de_nodeadkeys ch: German, eliminate dead keys
+ de_sundeadkeys ch: German, Sun dead keys
+ fr ch: French
+ fr_nodeadkeys ch: French, eliminate dead keys
+ fr_sundeadkeys ch: French, Sun dead keys
+ fr_mac ch: French (Macintosh)
+ de_mac ch: German (Macintosh)
+ syc sy: Syriac
+ syc_phonetic sy: Syriac phonetic
+ ku sy: Kurdish, Latin Q
+ ku_f sy: Kurdish, (F)
+ ku_alt sy: Kurdish, Latin Alt-Q
+ tam_unicode lk: Tamil Unicode
+ tam_TAB lk: Tamil TAB Typewriter
+ tis th: TIS-820.2538
+ pat th: Pattachote
+ f tr: (F)
+ alt tr: Alt-Q
+ sundeadkeys tr: Sun dead keys
+ ku tr: Kurdish, Latin Q
+ ku_f tr: Kurdish, (F)
+ ku_alt tr: Kurdish, Latin Alt-Q
+ intl tr: International (with dead keys)
+ phonetic ua: Phonetic
+ typewriter ua: Typewriter
+ winkeys ua: Winkeys
+ unicode ua: Unicode
+ rstu ua: Standard RSTU
+ rstu_ru ua: Standard RSTU on Russian layout
+ homophonic ua: Homophonic
+ intl gb: International (with dead keys)
+ dvorak gb: Dvorak
+ dvorakukp gb: Dvorak (UK Punctuation)
+ mac gb: Macintosh
+ colemak gb: Colemak
+ latin uz: Latin
+ kr104 kr: 101/104 key Compatible
+ CloGaelach ie: CloGaelach
+ UnicodeExpert ie: UnicodeExpert
+ ogam ie: Ogham
+ ogam_is434 ie: Ogham IS434
+ ara pk: Arabic
+ legacy epo: displaced semicolon and quote (obsolete)
+ igbo ng: Igbo
+ yoruba ng: Yoruba
+ hausa ng: Hausa
+ left_hand braille: Left hand
+ right_hand braille: Right hand
+
+! option
+ grp Layout switching
+ grp:switch R-Alt switches layout while pressed.
+ grp:lswitch Left Alt key switches layout while pressed.
+ grp:lwin_switch Left Win-key switches layout while pressed.
+ grp:rwin_switch Right Win-key switches layout while pressed.
+ grp:win_switch Both Win-keys switch layout while pressed.
+ grp:caps_switch CapsLock key switches layout while pressed, Alt+CapsLock does the original capslock action.
+ grp:rctrl_switch Right Ctrl key switches layout while pressed.
+ grp:toggle Right Alt key changes layout.
+ grp:lalt_toggle Left Alt key changes layout.
+ grp:caps_toggle CapsLock key changes layout.
+ grp:shift_caps_toggle Shift+CapsLock changes layout.
+ grp:shift_caps_switch CapsLock switch to first layout, Shift+CapsLock switch to last layout.
+ grp:alt_caps_toggle Alt+CapsLock changes layout.
+ grp:shifts_toggle Both Shift keys together change layout.
+ grp:alts_toggle Both Alt keys together change layout.
+ grp:ctrls_toggle Both Ctrl keys together change layout.
+ grp:ctrl_shift_toggle Ctrl+Shift change layout.
+ grp:lctrl_lshift_toggle LCtrl+LShift change layout.
+ grp:ctrl_alt_toggle Alt+Ctrl change layout.
+ grp:alt_shift_toggle Alt+Shift change layout.
+ grp:menu_toggle Menu key changes layout.
+ grp:lwin_toggle Left Win-key changes layout.
+ grp:rwin_toggle Right Win-key changes layout.
+ grp:lshift_toggle Left Shift key changes layout.
+ grp:rshift_toggle Right Shift key changes layout.
+ grp:lctrl_toggle Left Ctrl key changes layout.
+ grp:rctrl_toggle Right Ctrl key changes layout.
+ lv3 Third level choosers
+ lv3:switch Press Right Ctrl to choose 3rd level.
+ lv3:menu_switch Press Menu key to choose 3rd level.
+ lv3:win_switch Press any of Win-keys to choose 3rd level.
+ lv3:lwin_switch Press Left Win-key to choose 3rd level.
+ lv3:rwin_switch Press Right Win-key to choose 3rd level.
+ lv3:alt_switch Press any of Alt keys to choose 3rd level.
+ lv3:lalt_switch Press Left Alt key to choose 3rd level.
+ lv3:ralt_switch Press Right Alt key to choose 3rd level.
+ lv3:ralt_switch_multikey Press Right Alt key to choose 3rd level, Shift+Right Alt key is Multi_Key.
+ lv3:ralt_alt Right Alt key never chooses 3rd level.
+ ctrl Ctrl key position
+ ctrl:nocaps Make CapsLock an additional Ctrl.
+ ctrl:swapcaps Swap Ctrl and CapsLock.
+ ctrl:ctrl_ac Ctrl key at left of 'A'
+ ctrl:ctrl_aa Ctrl key at bottom left
+ ctrl:ctrl_ra Right Ctrl key works as Right Alt.
+ grp_led Use keyboard LED to show alternative layout.
+ grp_led:num NumLock LED shows alternative layout.
+ grp_led:caps CapsLock LED shows alternative layout.
+ grp_led:scroll ScrollLock LED shows alternative layout.
+ keypad Numeric keypad layout selection
+ keypad:legacy Legacy keypad
+ keypad:oss Keypad with unicode additions (arrows and math operators)
+ keypad:future Keypad with unicode additions (arrows and math operators). Math operators on default level.
+ keypad:legacy_wang Legacy Wang 724 keypad
+ 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:phone_hex ATM/phone-style hexadecimal keypad
+ kpdl Numeric keypad delete key behaviour
+ 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 restriction
+ kpdl:commaoss Four-level key with comma
+ kpdl:momayyezoss Four-level key with momayyez
+ kpdl:kposs Four-level key with abstract separators
+ caps CapsLock key behavior
+ caps:internal CapsLock uses internal capitalization. Shift "pauses" CapsLock.
+ caps:internal_nocancel CapsLock uses internal capitalization. Shift doesn't affect CapsLock.
+ caps:shift CapsLock acts as Shift with locking. Shift "pauses" CapsLock.
+ caps:shift_nocancel CapsLock acts as Shift with locking. Shift doesn't affect CapsLock.
+ caps:capslock CapsLock toggles normal capitalization of alphabetic characters.
+ caps:swapescape Swap ESC and CapsLock.
+ caps:shiftlock CapsLock toggles Shift so all keys are affected.
+ altwin Alt/Win key behavior
+ altwin:menu Add the standard behavior to Menu key.
+ altwin:meta_alt Alt and Meta are on the Alt keys.
+ altwin:ctrl_win Control is mapped to the Win-keys (and the usual Ctrl keys).
+ altwin:meta_win Meta is mapped to the Win-keys.
+ altwin:left_meta_win Meta is mapped to the left Win-key.
+ altwin:super_win Super is mapped to the Win-keys.
+ altwin:hyper_win Hyper is mapped to the Win-keys.
+ altwin:alt_super_win Alt is mapped to the right Win-key and Super to Menu.
+ altwin:swap_lalt_lwin Left Alt is swapped with left Win-key.
+ Compose key Compose key position
+ compose:ralt Right Alt is Compose.
+ compose:lwin Left Win-key is Compose.
+ compose:rwin Right Win-key is Compose.
+ compose:menu Menu is Compose.
+ compose:rctrl Right Ctrl is Compose.
+ compose:caps Caps Lock is Compose.
+ compose:102 Less-than/Greater-than is Compose.
+ compat Miscellaneous compatibility options
+ numpad:pc Default numeric keypad keys.
+ numpad:mac Numeric keypad keys work as with Mac.
+ numpad:microsoft Shift with numeric keypad keys works as in MS Windows.
+ srvrkeys:none Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server.
+ apple:badmap Swap keycodes of two keys when Mac keyboards are misdetected by kernel.
+ shift:breaks_caps Shift cancels CapsLock.
+ eurosign Adding the EuroSign to certain keys
+ eurosign:e Add the EuroSign to the E key.
+ eurosign:2 Add the EuroSign to the 2 key.
+ eurosign:4 Add the EuroSign to the 4 key.
+ eurosign:5 Add the EuroSign to the 5 key.
+ nbsp Using space key to input non-breakable space character
+ nbsp:none Space key outputs usual space at any level.
+ nbsp:level2 Space key outputs non-breakable space character at second level.
+ nbsp:level3 Space key outputs non-breakable space character at third level.
+ nbsp:level3s Space key outputs non-breakable space character at third level, nothing at fourth level.
+ nbsp:level3n Space key outputs non-breakable space character at third level, thin non-breakable space character at fourth level
+ nbsp:level4 Space key outputs non-breakable space character at fourth level.
+ nbsp:level4n Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level
+ nbsp:level4nl Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)
+ japan Japanese keyboard options
+ japan:kana_lock Kana Lock key is locking
+ japan:nicola_f_bs NICOLA-F style Backspace
diff --git a/xorg-server/xkbdata.src/rules/base.m_g.part b/xorg-server/xkbdata.src/rules/base.m_g.part
new file mode 100644
index 000000000..7c0751d7b
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.m_g.part
@@ -0,0 +1,20 @@
+ microsoftelite = microsoft(elite)
+ $msmodels = microsoft(natural)
+ dell101 = dell(dell101)
+ dellm65 = dell(dellm65)
+ flexpro = keytronic(FlexPro)
+ hp6000 = hp(omnibook)
+ omnikey101 = northgate(omnikey101)
+ $pcmodels = pc(%m)
+ $pcgeometries = pc(%m)
+ everex = everex(STEPnote)
+ thinkpad = thinkpad(intl)
+ thinkpad60 = thinkpad(60)
+ thinkpadz60 = thinkpad(60)
+ winbook = winbook(XP5)
+ pc98 = nec(pc98)
+ $macbooks = macintosh(%m)
+ $macs = macintosh(macintosh)
+ hhk = hhk(basic)
+ kinesis = kinesis(model100)
+ * = pc(pc104)
diff --git a/xorg-server/xkbdata.src/rules/base.m_k.part b/xorg-server/xkbdata.src/rules/base.m_k.part
new file mode 100644
index 000000000..a39d4c881
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.m_k.part
@@ -0,0 +1,16 @@
+ amiga = amiga(de)
+ ataritt = ataritt(de)
+ sun4 = sun(type4_euro)
+ sun5 = sun(type5_euro)
+ sun6 = sun(type6_usb)
+ pc98 = xfree98(pc98)
+ abnt2 = xfree86(abnt2)
+ jp106 = xfree86(jp106)
+ evdev = evdev
+ olpc = evdev
+ macintosh_hhk = macintosh(hhk)
+ macintosh_old = macintosh(old)
+ $macbooks = macintosh+macintosh(goodmap)
+ $macs = macintosh
+ thinkpadz60 = xfree86(thinkpadz60)
+ * = xfree86
diff --git a/xorg-server/xkbdata.src/rules/base.m_s.part b/xorg-server/xkbdata.src/rules/base.m_s.part
new file mode 100644
index 000000000..f066cc077
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.m_s.part
@@ -0,0 +1,29 @@
+ benqx730 = +inet(benqx)
+ benqx800 = +inet(benqx)
+ dellsk8125 = +inet(dell)
+ dellsk8135 = +inet(dell)
+ hpnx9020 = +inet(hp5185)
+ logicd = +inet(logitech_base)
+ logicd_it = +inet(logitech_base)
+ logicd_nav = +inet(logitech_base)
+ logicd_opt = +inet(logitech_base)
+ logiultrax = +inet(logitech_base)
+ logiclx300 = +inet(logiex110)
+ logii350 = +inet(logiex110)
+ logimel = +inet(logiex110)
+ vsonku306 = +inet(microsoftprooem)
+ $inetkbds = +inet(%m)
+ acer_tm_800 = +inet(acer_laptop)
+ benqx730 = +inet(benqx)
+ benqx800 = +inet(benqx)
+ dell8125 = +inet(dellusbmm)
+ dell8135 = +inet(dellusbmm)
+ ltcd = +inet(logicda)
+ logicdit = +inet(logicd)
+ logicdo = +inet(logicd)
+ logicdp = +inet(logicd)
+ logicdpa = +inet(logicda)
+ logiciink = +inet(logicink)
+ $maclaptop = +inet(apple)+level3(enter_switch)
+ $macs = +inet(apple)
+ thinkpadz60 = +inet(thinkpad60)
diff --git a/xorg-server/xkbdata.src/rules/base.m_t.part b/xorg-server/xkbdata.src/rules/base.m_t.part
new file mode 100644
index 000000000..4548d2694
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.m_t.part
@@ -0,0 +1,2 @@
+ $macs = complete+numpad(mac)
+ * = complete
diff --git a/xorg-server/xkbdata.src/rules/base.ml1_c.part b/xorg-server/xkbdata.src/rules/base.ml1_c.part
new file mode 100644
index 000000000..f59e596d5
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.ml1_c.part
@@ -0,0 +1 @@
+ * * = complete
diff --git a/xorg-server/xkbdata.src/rules/base.ml1_s.part b/xorg-server/xkbdata.src/rules/base.ml1_s.part
new file mode 100644
index 000000000..8e0eeef4f
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.ml1_s.part
@@ -0,0 +1,10 @@
+ ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1])
+ amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1])
+ sun4 * = latin+sun_vndr/us(sun4)+%l[1]%(v[1])
+ sun5 * = latin+sun_vndr/us(sun5)+%l[1]%(v[1])
+ macintosh_old us = macintosh_vndr/us(oldmac)
+ macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1])
+ macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1])
+ $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1])
+ thinkpad br = pc+%l[1](thinkpad)
+ * * = pc+%l[1]%(v[1])
diff --git a/xorg-server/xkbdata.src/rules/base.ml_c.part b/xorg-server/xkbdata.src/rules/base.ml_c.part
new file mode 100644
index 000000000..ec8f02291
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.ml_c.part
@@ -0,0 +1,4 @@
+ pc98 nec_vndr/jp = pc98(basic)
+ * jp = complete+japan
+ olpc * = olpc
+ * * = complete
diff --git a/xorg-server/xkbdata.src/rules/base.ml_g.part b/xorg-server/xkbdata.src/rules/base.ml_g.part
new file mode 100644
index 000000000..e66bb0b50
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.ml_g.part
@@ -0,0 +1 @@
+ thinkpad us = thinkpad(us)
diff --git a/xorg-server/xkbdata.src/rules/base.ml_s.part b/xorg-server/xkbdata.src/rules/base.ml_s.part
new file mode 100644
index 000000000..570c5ef77
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.ml_s.part
@@ -0,0 +1,25 @@
+ ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2
+ ataritt * = xfree68_vndr/ataritt(us)+%l%(v)
+ amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2
+ amiga * = xfree68_vndr/amiga(usa1)+%l%(v)
+ classmate us = pc+%l(classmate)
+ sun4 $nonlatin = latin+sun_vndr/us(sun4)+%l%(v):2
+ sun4 * = latin+sun_vndr/us(sun4)+%l%(v)
+ sun5 $nonlatin = latin+sun_vndr/us(sun5)+%l%(v):2
+ sun5 * = latin+sun_vndr/us(sun5)+%l%(v)
+ sun6 us = sun_vndr/us(type6)
+ sun6 en_US = sun_vndr/us(type6)+iso9995-3(basic)
+ sun6 * = sun_vndr/us(type6)+%l%(v)
+ pc98 nec_vndr/jp = nec_vndr/jp(pc98)
+ macintosh_old us = macintosh_vndr/us(oldmac)
+ macintosh_old en_US = macintosh_vndr/us(oldmac)
+ macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v)
+ macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2
+ macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v)
+ $macs en_US = pc+macintosh_vndr/us(extended)
+ $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v)
+ olpc $olpclayouts = olpc+%l%(m)
+ olpc * = olpc+%l%(v)
+ thinkpad br = pc+br(thinkpad)
+ * $nonlatin = pc+us+%l%(v):2
+ * * = pc+%l%(v)
diff --git a/xorg-server/xkbdata.src/rules/base.mlv_s.part b/xorg-server/xkbdata.src/rules/base.mlv_s.part
new file mode 100644
index 000000000..df4eef24d
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.mlv_s.part
@@ -0,0 +1,3 @@
+ classmate us intl = pc+us(classmate-intl)
+ classmate us alt-intl = pc+us(classmate-alt-intl)
+ classmate us altgr-intl = pc+us(classmate-altgr-intl)
diff --git a/xorg-server/xkbdata.src/rules/base.o_c.part b/xorg-server/xkbdata.src/rules/base.o_c.part
new file mode 100644
index 000000000..9ce5410ed
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.o_c.part
@@ -0,0 +1,6 @@
+ grp_led:num = +lednum(group_lock)
+ grp_led:caps = +ledcaps(group_lock)
+ grp_led:scroll = +ledscroll(group_lock)
+ grp:caps_toggle = +ledcaps(group_lock)
+ japan:kana_lock = +japan(kana_lock)
+
diff --git a/xorg-server/xkbdata.src/rules/base.o_s.part b/xorg-server/xkbdata.src/rules/base.o_s.part
new file mode 100644
index 000000000..2e1e38cd2
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.o_s.part
@@ -0,0 +1,91 @@
+ altwin:menu = +altwin(menu)
+ altwin:meta_alt = +altwin(meta_alt)
+ altwin:ctrl_win = +altwin(ctrl_win)
+ altwin:meta_win = +altwin(meta_win)
+ altwin:left_meta_win = +altwin(left_meta_win)
+ altwin:super_win = +altwin(super_win)
+ altwin:hyper_win = +altwin(hyper_win)
+ altwin:alt_super_win = +altwin(alt_super_win)
+ altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin)
+ grp:switch = +group(switch)
+ grp:lswitch = +group(lswitch)
+ grp:win_switch = +group(win_switch)
+ grp:lwin_switch = +group(lwin_switch)
+ grp:rwin_switch = +group(rwin_switch)
+ grp:toggle = +group(toggle)
+ grp:shifts_toggle = +group(shifts_toggle)
+ grp:ctrls_toggle = +group(ctrls_toggle)
+ grp:alts_toggle = +group(alts_toggle)
+ grp:ctrl_shift_toggle = +group(ctrl_shift_toggle)
+ grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle)
+ grp:caps_toggle = +capslock(grouplock)
+ grp:caps_switch = +capslock(groupshift)
+ grp:shift_caps_toggle = +group(shift_caps_toggle)
+ grp:shift_caps_switch = +group(shift_caps_switch)
+ grp:alt_caps_toggle = +group(alt_caps_toggle)
+ grp:ctrl_alt_toggle = +group(ctrl_alt_toggle)
+ grp:alt_shift_toggle = +group(alt_shift_toggle)
+ grp:menu_toggle = +group(menu_toggle)
+ grp:lwin_toggle = +group(lwin_toggle)
+ grp:rwin_toggle = +group(rwin_toggle)
+ grp:lshift_toggle = +group(lshift_toggle)
+ grp:rshift_toggle = +group(rshift_toggle)
+ grp:rctrl_switch = +group(rctrl_switch)
+ grp:lctrl_toggle = +group(lctrl_toggle)
+ grp:rctrl_toggle = +group(rctrl_toggle)
+ grp:lalt_toggle = +group(lalt_toggle)
+ lv3:switch = +level3(switch)
+ lv3:ralt_switch = +level3(ralt_switch)
+ lv3:ralt_switch_multikey = +level3(ralt_switch_multikey)
+ lv3:ralt_alt = +level3(ralt_alt)
+ lv3:lalt_switch = +level3(lalt_switch)
+ lv3:alt_switch = +level3(alt_switch)
+ lv3:menu_switch = +level3(menu_switch)
+ lv3:win_switch = +level3(win_switch)
+ lv3:lwin_switch = +level3(lwin_switch)
+ lv3:rwin_switch = +level3(rwin_switch)
+ caps:capslock = +capslock(capslock)
+ caps:shiftlock = +capslock(shiftlock)
+ caps:swapescape = +capslock(swapescape)
+ ctrl:nocaps = +ctrl(nocaps)
+ ctrl:swapcaps = +ctrl(swapcaps)
+ ctrl:ctrl_ac = +ctrl(ctrl_ac)
+ ctrl:ctrl_aa = +ctrl(ctrl_aa)
+ ctrl:ctrl_ra = +ctrl(ctrl_ra)
+ compose:ralt = +compose(ralt)
+ compose:lwin = +compose(lwin)
+ compose:rwin = +compose(rwin)
+ compose:menu = +compose(menu)
+ compose:rctrl = +compose(rctrl)
+ compose:caps = +compose(caps)
+ compose:102 = +compose(102)
+ srvrkeys:none = +srvr_ctrl(no_srvr_keys)
+ eurosign:e = +eurosign(e)
+ eurosign:2 = +eurosign(2)
+ eurosign:4 = +eurosign(4)
+ eurosign:5 = +eurosign(5)
+ keypad:oss = +keypad(oss)
+ keypad:legacy = +keypad(legacy)
+ keypad:legacy_wang = +keypad(legacy_wang)
+ keypad:oss_wang = +keypad(oss_wang)
+ keypad:future = +keypad(future)
+ keypad:future_wang = +keypad(future_wang)
+ keypad:phone_hex = +keypad(phone_hex)
+ nbsp:none = +nbsp(none)
+ nbsp:level2 = +nbsp(level2)
+ nbsp:level3 = +nbsp(level3)
+ nbsp:level3s = +nbsp(level3s)
+ nbsp:level3n = +nbsp(level3n)
+ nbsp:level4 = +nbsp(level4)
+ nbsp:level4n = +nbsp(level4n)
+ nbsp:level4nl = +nbsp(level4nl)
+ japan:nicola_f_bs = +jp(nicola_f_bs)
+ kpdl:dot = +kpdl(dot)
+ kpdl:comma = +kpdl(comma)
+ kpdl:dotoss = +kpdl(dotoss)
+ kpdl:dotoss_latin9 = +kpdl(dotoss_latin9)
+ kpdl:commaoss = +kpdl(commaoss)
+ kpdl:momayyezoss = +kpdl(momayyezoss)
+ kpdl:kposs = +kpdl(kposs)
+ shift:breaks_caps = +shift(breaks_caps)
+
diff --git a/xorg-server/xkbdata.src/rules/base.o_t.part b/xorg-server/xkbdata.src/rules/base.o_t.part
new file mode 100644
index 000000000..440f9efe3
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.o_t.part
@@ -0,0 +1,7 @@
+ caps:internal = +caps(internal)
+ caps:internal_nocancel = +caps(internal_nocancel)
+ caps:shift = +caps(shift)
+ caps:shift_nocancel = +caps(shift_nocancel)
+ numpad:pc = +numpad(pc)
+ numpad:mac = +numpad(mac)
+ numpad:microsoft = +numpad(microsoft)
diff --git a/xorg-server/xkbdata.src/rules/base.xml.in b/xorg-server/xkbdata.src/rules/base.xml.in
new file mode 100644
index 000000000..8d0aa921c
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/base.xml.in
@@ -0,0 +1,4699 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
+<xkbConfigRegistry>
+ <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 (Intl) PC</_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 (Intl) PC</_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 series laptop</_description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dellm65</name>
+ <_description>Dell Precision M65</_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 Inc.</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>jp106</name>
+ <_description>Japanese 106-key</_description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>pc98</name>
+ <_description>PC-98xx Series</_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>abnt2</name>
+ <_description>Brazilian ABNT2</_description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>airkey</name>
+ <_description>Acer AirKey V</_description>
+ <vendor>Acer</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>acpi</name>
+ <_description>ACPI Standard</_description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>azonaRF2300</name>
+ <_description>Azona RF2300 wireless Internet Keyboard</_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 Keyboard</_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>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 (alternate option)</_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>chicony</name>
+ <_description>Chicony Internet Keyboard</_description>
+ <vendor>Chicony</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chicony0108</name>
+ <_description>Chicony KU-0108</_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 Keyboard</_description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqik7</name>
+ <_description>Compaq Internet Keyboard (7 keys)</_description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqik13</name>
+ <_description>Compaq Internet Keyboard (13 keys)</_description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqik18</name>
+ <_description>Compaq Internet Keyboard (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>Laptop/notebook Compaq (eg. Armada) Laptop Keyboard</_description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>presario</name>
+ <_description>Laptop/notebook Compaq (eg. Presario) Internet Keyboard</_description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>ipaq</name>
+ <_description>Compaq iPaq Keyboard</_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 Keyboard</_description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>inspiron</name>
+ <_description>Dell Laptop/notebook Inspiron 6xxx/8xxx</_description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>precision_m</name>
+ <_description>Dell Laptop/notebook Precision M series</_description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dexxa</name>
+ <_description>Dexxa Wireless Desktop Keyboard</_description>
+ <vendor>Dexxa</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>diamond</name>
+ <_description>Diamond 9801 / 9802 series</_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 Computers AMILO A1667G laptop</_description>
+ <vendor>Fujitsu-Siemens</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>genius</name>
+ <_description>Genius Comfy KB-16M / Genius MM Keyboard 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>gyration</name>
+ <_description>Gyration</_description>
+ <vendor>Gyration</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logitech_base</name>
+ <_description>Logitech Generic Keyboard</_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 Keyboard</_description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp2501</name>
+ <_description>Hewlett-Packard SK-2501 Multimedia Keyboard</_description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp2505</name>
+ <_description>Hewlett-Packard SK-2505 Internet Keyboard</_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>hpzt11xx</name>
+ <_description>Hewlett-Packard Pavilion ZT11xx</_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 5xx</_description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp5181</name>
+ <_description>Hewlett-Packard Internet Keyboard 5181</_description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp5185</name>
+ <_description>Hewlett-Packard Internet Keyboard 5185</_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>rapidaccess</name>
+ <_description>IBM Rapid Access</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>rapidaccess2</name>
+ <_description>IBM Rapid Access II</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>rapidaccess2a</name>
+ <_description>IBM Rapid Access II (alternate option)</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpad</name>
+ <_description>IBM ThinkPad 560Z/600/600E/A22E</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpadintl</name>
+ <_description>IBM ThinkPad 560Z/600/600E/A22E, Intl</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpad60</name>
+ <_description>IBM ThinkPad R60/T60/R61/T61</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpadz60</name>
+ <_description>IBM ThinkPad Z60m/Z60t/Z61m/Z61t</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>ibm_spacesaver</name>
+ <_description>IBM Space Saver</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiaccess</name>
+ <_description>Logitech Access Keyboard</_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 Keyboard</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logimel</name>
+ <_description>Logitech Media Elite Keyboard</_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 (alternate option)</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicdpa2</name>
+ <_description>Logitech Cordless Desktop Pro (alternate option2)</_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 Keyboard (model Y-RB6)</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiik</name>
+ <_description>Logitech Internet Keyboard</_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 Keyboard</_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 Keyboard SE</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiinkseusb</name>
+ <_description>Logitech iTouch Internet Navigator Keyboard SE (USB)</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiultrax</name>
+ <_description>Logitech Ultra-X Keyboard</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiultraxc</name>
+ <_description>Logitech Ultra-X Cordless Media Desktop Keyboard</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logidinovo</name>
+ <_description>Logitech diNovo Keyboard</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logidinovoedge</name>
+ <_description>Logitech diNovo Edge Keyboard</_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 Keyboard</_description>
+ <vendor>Memorex</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>mx2750</name>
+ <_description>Memorex MX2750</_description>
+ <vendor>Memorex</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoft7000</name>
+ <_description>Microsoft Natural Wireless Ergonomic Keyboard 7000</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftinet</name>
+ <_description>Microsoft Internet Keyboard</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftpro</name>
+ <_description>Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftprousb</name>
+ <_description>Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftprooem</name>
+ <_description>Microsoft Natural Keyboard Pro OEM</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>vsonku306</name>
+ <_description>ViewSonic KU-306 Internet Keyboard</_description>
+ <vendor>ViewSonic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftprose</name>
+ <_description>Microsoft Internet Keyboard Pro, Swedish</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftoffice</name>
+ <_description>Microsoft Office Keyboard</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftmult</name>
+ <_description>Microsoft Wireless Multimedia Keyboard 1.0A</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftelite</name>
+ <_description>Microsoft Natural Keyboard Elite</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>oretec</name>
+ <_description>Ortek MCK-800 MM/Internet keyboard</_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>sk1300</name>
+ <_description>SK-1300</_description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk2500</name>
+ <_description>SK-2500</_description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk6200</name>
+ <_description>SK-6200</_description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk7100</name>
+ <_description>SK-7100</_description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sp_inet</name>
+ <_description>Super Power Multimedia Keyboard</_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 PC)</_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 Keyboard Classic</_description>
+ <vendor>Trust</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>trustda</name>
+ <_description>Trust Direct Access Keyboard</_description>
+ <vendor>Trust</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>yahoo</name>
+ <_description>Yahoo! Internet Keyboard</_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 Keyboard 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>silvercrest</name>
+ <_description>SILVERCREST Multimedia Wireless Keyboard</_description>
+ <vendor>Silvercrest</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>emachines</name>
+ <_description>Laptop/notebook eMachines m68xx</_description>
+ <vendor>eMachines</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>kr106</name>
+ <_description>Korean 106-key</_description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>evdev</name>
+ <_description>Evdev-managed keyboard</_description>
+ <vendor>Generic</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 Keyboard</_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>sun6</name>
+ <_description>Sun Type 5/6</_description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ </modelList>
+ <layoutList>
+ <layout>
+ <configItem>
+ <name>us</name>
+ <_shortDescription>USA</_shortDescription>
+ <_description>USA</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>chr</name>
+ <_description>Cherokee</_description>
+ <languageList><iso639Id>chr</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>euro</name>
+ <_description>With EuroSign on 5</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>intl</name>
+ <_description>International (with dead keys)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alt-intl</name>
+ <_description>Alternative international (former us_intl)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+ <_description>Colemak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-intl</name>
+ <_description>Dvorak international</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-l</name>
+ <_description>Left handed Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-r</name>
+ <_description>Right handed Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-classic</name>
+ <_description>Classic Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvp</name>
+ <_description>Programmer Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rus</name>
+ <_description>Russian phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>altgr-intl</name>
+ <_description>International (AltGr dead keys)</_description>
+ <languageList><iso639Id>eng</iso639Id>
+ <iso639Id>fra</iso639Id>
+ <iso639Id>ger</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>olpc2</name>
+ <_description>Group toggle on multiply/divide key</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ad</name>
+ <_shortDescription>And</_shortDescription>
+ <_description>Andorra</_description>
+ <languageList><iso639Id>cat</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>af</name>
+ <_shortDescription>Afg</_shortDescription>
+ <_description>Afghanistan</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ps</name>
+ <_description>Pashto</_description>
+ <languageList><iso639Id>pus</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>uz</name>
+ <_description>Southern Uzbek</_description>
+ <languageList><iso639Id>uzb</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>olpc-ps</name>
+ <_description>OLPC Pashto</_description>
+ <languageList><iso639Id>pus</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>olpc-fa</name>
+ <_description>OLPC Dari</_description>
+ <!-- No ISO code in ISO639-2, only draft ISO693-3 -->
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>olpc-uz</name>
+ <_description>OLPC Southern Uzbek</_description>
+ <languageList><iso639Id>uzb</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ara</name>
+ <_shortDescription>Ara</_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>azerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>azerty_digits</name>
+ <_description>azerty/digits</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>digits</name>
+ <_description>digits</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+ <_description>qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty_digits</name>
+ <_description>qwerty/digits</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>buckwalter</name>
+ <_description>Buckwalter</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>al</name>
+ <_shortDescription>Alb</_shortDescription>
+ <_description>Albania</_description>
+ <languageList><iso639Id>alb</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>am</name>
+ <_shortDescription>Arm</_shortDescription>
+ <_description>Armenia</_description>
+ <languageList><iso639Id>hye</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+ <_description>Phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>phonetic-alt</name>
+ <_description>Alternative Phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>eastern</name>
+ <_description>Eastern</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>western</name>
+ <_description>Western</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>eastern-alt</name>
+ <_description>Alternative Eastern</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>az</name>
+ <_shortDescription>Aze</_shortDescription>
+ <_description>Azerbaijan</_description>
+ <languageList><iso639Id>aze</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>cyrillic</name>
+ <_description>Cyrillic</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>by</name>
+ <_shortDescription>Blr</_shortDescription>
+ <_description>Belarus</_description>
+ <languageList><iso639Id>bel</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>winkeys</name>
+ <_description>Winkeys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin</name>
+ <_description>Latin</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>be</name>
+ <_shortDescription>Bel</_shortDescription>
+ <_description>Belgium</_description>
+ <languageList><iso639Id>ger</iso639Id>
+ <iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>iso-alternate</name>
+ <_description>ISO Alternate</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>wang</name>
+ <_description>Wang model 724 azerty</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>bd</name>
+ <_shortDescription>Ban</_shortDescription>
+ <_description>Bangladesh</_description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>probhat</name>
+ <_description>Probhat</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>in</name>
+ <_shortDescription>Ind</_shortDescription>
+ <_description>India</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ben</name>
+ <_description>Bengali</_description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ben_probhat</name>
+ <_description>Bengali Probhat</_description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>guj</name>
+ <_description>Gujarati</_description>
+ <languageList><iso639Id>guj</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>guru</name>
+ <_description>Gurmukhi</_description>
+ <languageList><iso639Id>pan</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>jhelum</name>
+ <_description>Gurmukhi Jhelum</_description>
+ <languageList><iso639Id>pan</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>kan</name>
+ <_description>Kannada</_description>
+ <languageList><iso639Id>kan</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mal</name>
+ <_description>Malayalam</_description>
+ <languageList><iso639Id>mal</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mal_lalitha</name>
+ <_description>Malayalam Lalitha</_description>
+ <languageList><iso639Id>mal</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ori</name>
+ <_description>Oriya</_description>
+ <languageList><iso639Id>ori</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tam_unicode</name>
+ <_description>Tamil Unicode</_description>
+ <languageList><iso639Id>tam</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tam_TAB</name>
+ <_description>Tamil TAB Typewriter</_description>
+ <languageList><iso639Id>tam</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tam_TSCII</name>
+ <_description>Tamil TSCII Typewriter</_description>
+ <languageList><iso639Id>tam</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tam</name>
+ <_description>Tamil</_description>
+ <languageList><iso639Id>tam</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tel</name>
+ <_description>Telugu</_description>
+ <languageList><iso639Id>tel</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>urd</name>
+ <_description>Urdu</_description>
+ <languageList><iso639Id>urd</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bolnagri</name>
+ <_description>Hindi Bolnagri</_description>
+ <languageList><iso639Id>hin</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ba</name>
+ <_shortDescription>Bih</_shortDescription>
+ <_description>Bosnia and Herzegovina</_description>
+ <languageList><iso639Id>bos</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+ <_description> Use guillemets for quotes</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicode</name>
+ <_description>Use Bosnian digraphs</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicodeus</name>
+ <_description>US keyboard with Bosnian digraphs</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+ <_description>US keyboard with Bosnian letters</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>br</name>
+ <_shortDescription>Bra</_shortDescription>
+ <_description>Brazil</_description>
+ <languageList><iso639Id>por</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo</name>
+ <_description>Nativo</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-us</name>
+ <_description>Nativo for USA keyboards</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-epo</name>
+ <_description>Nativo for Esperanto</_description>
+ <languageList><iso639Id>epo</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>bg</name>
+ <_shortDescription>Bgr</_shortDescription>
+ <_description>Bulgaria</_description>
+ <languageList><iso639Id>bul</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+ <_description>Phonetic</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ma</name>
+ <_description>Morocco</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>french</name>
+ <_description>French</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tifinagh</name>
+ <_description>Tifinagh</_description>
+ <languageList><iso639Id>ber</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tifinagh-alt</name>
+ <_description>Tifinagh Alternative</_description>
+ <languageList><iso639Id>ber</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tifinagh-alt-phonetic</name>
+ <_description>Tifinagh Alternative Phonetic</_description>
+ <languageList><iso639Id>ber</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tifinagh-extended</name>
+ <_description>Tifinagh Extended</_description>
+ <languageList><iso639Id>ber</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tifinagh-phonetic</name>
+ <_description>Tifinagh Phonetic</_description>
+ <languageList><iso639Id>ber</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tifinagh-extended-phonetic</name>
+ <_description>Tifinagh Extended Phonetic</_description>
+ <languageList><iso639Id>ber</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>mm</name>
+ <_shortDescription>Mmr</_shortDescription>
+ <_description>Myanmar</_description>
+ <languageList><iso639Id>mya</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ca</name>
+ <_shortDescription>Can</_shortDescription>
+ <_description>Canada</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>fr-dvorak</name>
+ <_description>French Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr-legacy</name>
+ <_description>French (legacy)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>multix</name>
+ <_description>Multilingual</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>multi</name>
+ <_description>Multilingual, first part</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>multi-2gr</name>
+ <_description>Multilingual, second part</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ike</name>
+ <_description>Inuktitut</_description>
+ <languageList><iso639Id>iku</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>shs</name>
+ <_description>Secwepemctsin</_description>
+ <!-- No ISO code in ISO639-2, only draft ISO693-3 -->
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>kut</name>
+ <_description>Ktunaxa</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>cd</name>
+ <_shortDescription>DRC</_shortDescription>
+ <_description>Congo, Democratic Republic of the</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>cn</name>
+ <_shortDescription>China</_shortDescription>
+ <_description>China</_description>
+ <languageList><iso639Id>chi</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <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>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>hr</name>
+ <_shortDescription>Hrv</_shortDescription>
+ <_description>Croatia</_description>
+ <languageList><iso639Id>scr</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+ <_description>Use guillemets for quotes</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicode</name>
+ <_description>Use Croatian digraphs</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicodeus</name>
+ <_description>US keyboard with Croatian digraphs</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+ <_description>US keyboard with Croatian letters</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>cz</name>
+ <_shortDescription>Cze</_shortDescription>
+ <_description>Czechia</_description>
+ <languageList><iso639Id>cze</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>bksl</name>
+ <_description>With &lt;\|&gt; key</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+ <_description>qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty_bksl</name>
+ <_description>qwerty, extended Backslash</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ucw</name>
+ <_description>UCW layout (accented letters only)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>dk</name>
+ <_shortDescription>Dan</_shortDescription>
+ <_description>Denmark</_description>
+ <languageList><iso639Id>dan</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+ <_description>Macintosh, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>nl</name>
+ <_shortDescription>Nld</_shortDescription>
+ <_description>Netherlands</_description>
+ <languageList><iso639Id>nld</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>std</name>
+ <_description>Standard</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>bt</name>
+ <_shortDescription>Bhu</_shortDescription>
+ <_description>Bhutan</_description>
+ <languageList><iso639Id>dzo</iso639Id></languageList>
+ </configItem>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ee</name>
+ <_shortDescription>Est</_shortDescription>
+ <_description>Estonia</_description>
+ <languageList><iso639Id>est</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+ <_description>US keyboard with Estonian letters</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ir</name>
+ <_shortDescription>Irn</_shortDescription>
+ <_description>Iran</_description>
+ <languageList><iso639Id>per</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>pro</name>
+ <_description>Pro</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>keypad</name>
+ <_description>Keypad</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>pro_keypad</name>
+ <_description>Pro Keypad</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku</name>
+ <_description>Kurdish, Latin Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+ <_description>Kurdish, (F)</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+ <_description>Kurdish, Latin Alt-Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_ara</name>
+ <_description>Kurdish, Arabic-Latin</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>iq</name>
+ <_shortDescription>Irq</_shortDescription>
+ <_description>Iraq</_description>
+ <languageList><iso639Id>ara</iso639Id>
+ <iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ku</name>
+ <_description>Kurdish, Latin Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+ <_description>Kurdish, (F)</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+ <_description>Kurdish, Latin Alt-Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_ara</name>
+ <_description>Kurdish, Arabic-Latin</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>fo</name>
+ <_shortDescription>Fao</_shortDescription>
+ <_description>Faroe Islands</_description>
+ <languageList><iso639Id>fao</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>fi</name>
+ <_shortDescription>Fin</_shortDescription>
+ <_description>Finland</_description>
+ <languageList><iso639Id>fin</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>smi</name>
+ <_description>Northern Saami</_description>
+ <languageList><iso639Id>smi</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>classic</name>
+ <_description>Classic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>fr</name>
+ <_shortDescription>Fra</_shortDescription>
+ <_description>France</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss</name>
+ <_description>Alternative</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_latin9</name>
+ <_description>Alternative, latin-9 only</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_nodeadkeys</name>
+ <_description>Alternative, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_sundeadkeys</name>
+ <_description>Alternative, Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin9</name>
+ <_description>(Legacy) Alternative</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin9_nodeadkeys</name>
+ <_description>(Legacy) Alternative, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin9_sundeadkeys</name>
+ <_description>(Legacy) Alternative, Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bepo</name>
+ <_description>Bepo, ergonomic, Dvorak way</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bepo_latin9</name>
+ <_description>Bepo, ergonomic, Dvorak way, latin-9 only</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>geo</name>
+ <_description>Georgian AZERTY Tskapo</_description>
+ <languageList><iso639Id>geo</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>gh</name>
+ <_shortDescription>Gha</_shortDescription>
+ <_description>Ghana</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>generic</name>
+ <_description>Multilingual</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>akan</name>
+ <_description>Akan</_description>
+ <languageList><iso639Id>aka</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ewe</name>
+ <_description>Ewe</_description>
+ <languageList><iso639Id>ewe</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fula</name>
+ <_description>Fula</_description>
+ <languageList><iso639Id>ful</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ga</name>
+ <_description>Ga</_description>
+ <languageList><iso639Id>gaa</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>hausa</name>
+ <_description>Hausa</_description>
+ <languageList><iso639Id>hau</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>gn</name>
+ <_shortDescription>Gui</_shortDescription>
+ <_description>Guinea</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ge</name>
+ <_shortDescription>Geo</_shortDescription>
+ <_description>Georgia</_description>
+ <languageList><iso639Id>geo</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ergonomic</name>
+ <_description>Ergonomic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mess</name>
+ <_description>MESS</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ru</name>
+ <_description>Russian</_description>
+ <languageList><iso639Id>rus</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>os</name>
+ <_description>Ossetian</_description>
+ <languageList><iso639Id>oss</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>de</name>
+ <_shortDescription>Deu</_shortDescription>
+ <_description>Germany</_description>
+ <languageList><iso639Id>ger</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>deadacute</name>
+ <_description>Dead acute</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>deadgraveacute</name>
+ <_description>Dead grave acute</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ro</name>
+ <_description>Romanian keyboard with German letters</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ro_nodeadkeys</name>
+ <_description>Romanian keyboard with German letters, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>neo</name>
+ <_description>Neostyle</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+ <_description>Macintosh, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>gr</name>
+ <_shortDescription>Gre</_shortDescription>
+ <_description>Greece</_description>
+ <languageList><iso639Id>gre</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>simple</name>
+ <_description>Simple</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>extended</name>
+ <_description>Extended</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>polytonic</name>
+ <_description>Polytonic</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>hu</name>
+ <_shortDescription>Hun</_shortDescription>
+ <_description>Hungary</_description>
+ <languageList><iso639Id>hun</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>standard</name>
+ <_description>Standard</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+ <_description>qwerty</_description>
+ </configItem>
+ </variant>
+
+ <!-- 101 keys -->
+ <variant>
+ <configItem>
+ <name>101_qwertz_comma_dead</name>
+ <_description>101/qwertz/comma/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_comma_nodead</name>
+ <_description>101/qwertz/comma/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_dot_dead</name>
+ <_description>101/qwertz/dot/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_dot_nodead</name>
+ <_description>101/qwertz/dot/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_comma_dead</name>
+ <_description>101/qwerty/comma/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_comma_nodead</name>
+ <_description>101/qwerty/comma/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_dot_dead</name>
+ <_description>101/qwerty/dot/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_dot_nodead</name>
+ <_description>101/qwerty/dot/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+
+
+ <!-- 102 keys -->
+ <variant>
+ <configItem>
+ <name>102_qwertz_comma_dead</name>
+ <_description>102/qwertz/comma/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_comma_nodead</name>
+ <_description>102/qwertz/comma/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_dot_dead</name>
+ <_description>102/qwertz/dot/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_dot_nodead</name>
+ <_description>102/qwertz/dot/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_comma_dead</name>
+ <_description>102/qwerty/comma/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_comma_nodead</name>
+ <_description>102/qwerty/comma/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_dot_dead</name>
+ <_description>102/qwerty/dot/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_dot_nodead</name>
+ <_description>102/qwerty/dot/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>is</name>
+ <_shortDescription>Isl</_shortDescription>
+ <_description>Iceland</_description>
+ <languageList><iso639Id>ice</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>Sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>il</name>
+ <_shortDescription>Isr</_shortDescription>
+ <_description>Israel</_description>
+ <languageList><iso639Id>heb</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>lyx</name>
+ <_description>lyx</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+ <_description>Phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>biblical</name>
+ <_description>Biblical Hebrew (Tiro)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>it</name>
+ <_shortDescription>Ita</_shortDescription>
+ <_description>Italy</_description>
+ <languageList><iso639Id>ita</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>geo</name>
+ <_description>Georgian</_description>
+ <languageList><iso639Id>geo</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>jp</name>
+ <_shortDescription>Jpn</_shortDescription>
+ <_description>Japan</_description>
+ <languageList><iso639Id>jpn</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>kana</name>
+ <_description>Kana</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>OADG109A</name>
+ <_description>OADG 109A</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>kg</name>
+ <_shortDescription>Kir</_shortDescription>
+ <_description>Kyrgyzstan</_description>
+ <languageList><iso639Id>kir</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>kh</name>
+ <_shortDescription>Khm</_shortDescription>
+ <_description>Cambodia</_description>
+ <languageList><iso639Id>khm</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>kz</name>
+ <_shortDescription>Kaz</_shortDescription>
+ <_description>Kazakhstan</_description>
+ <languageList><iso639Id>kaz</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ruskaz</name>
+ <_description>Russian 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>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>la</name>
+ <_shortDescription>Lao</_shortDescription>
+ <_description>Laos</_description>
+ <languageList><iso639Id>lao</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>latam</name>
+ <_shortDescription>LAm</_shortDescription>
+ <_description>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>UY</iso3166Id>
+ <iso3166Id>VE</iso3166Id>
+ </countryList>
+ <languageList><iso639Id>spa</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>lt</name>
+ <_shortDescription>Ltu</_shortDescription>
+ <_description>Lithuania</_description>
+ <languageList><iso639Id>lit</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>std</name>
+ <_description>Standard</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+ <_description>US keyboard with Lithuanian letters</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ibm</name>
+ <_description>IBM (LST 1205-92)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>lekp</name>
+ <_description>LEKP</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>lekpa</name>
+ <_description>LEKPa</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>balticplus</name>
+ <_description>Baltic+</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>lv</name>
+ <_shortDescription>Lav</_shortDescription>
+ <_description>Latvia</_description>
+ <languageList><iso639Id>lav</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>apostrophe</name>
+ <_description>Apostrophe (') variant</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tilde</name>
+ <_description>Tilde (~) variant</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fkey</name>
+ <_description>F-letter (F) variant</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>mao</name>
+ <_shortDescription>Mao</_shortDescription>
+ <_description>Maori</_description>
+ <languageList><iso639Id>mao</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>me</name>
+ <_shortDescription>MNE</_shortDescription>
+ <_description>Montenegro</_description>
+ <languageList><iso639Id>srp</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>cyrillic</name>
+ <_description>Cyrillic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>cyrillicyz</name>
+ <_description>Cyrillic, Z and ZHE swapped</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicode</name>
+ <_description>Latin unicode</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinyz</name>
+ <_description>Latin qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicodeyz</name>
+ <_description>Latin unicode qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>cyrillicalternatequotes</name>
+ <_description>Cyrillic with guillemets</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinalternatequotes</name>
+ <_description>Latin with guillemets</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>mk</name>
+ <_shortDescription>Mkd</_shortDescription>
+ <_description>Macedonia</_description>
+ <languageList><iso639Id>mkd</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>mt</name>
+ <_shortDescription>Mlt</_shortDescription>
+ <_description>Malta</_description>
+ <languageList><iso639Id>mlt</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>us</name>
+ <_description>Maltese keyboard with US layout</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>mn</name>
+ <_shortDescription>Mng</_shortDescription>
+ <_description>Mongolia</_description>
+ <languageList><iso639Id>mng</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>no</name>
+ <_shortDescription>Nor</_shortDescription>
+ <_description>Norway</_description>
+ <languageList><iso639Id>nor</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>smi</name>
+ <_description>Northern Saami</_description>
+ <languageList><iso639Id>sme</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>smi_nodeadkeys</name>
+ <_description>Northern Saami, eliminate dead keys</_description>
+ <languageList><iso639Id>sme</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+ <_description>Macintosh, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>pl</name>
+ <_shortDescription>Pol</_shortDescription>
+ <_description>Poland</_description>
+ <languageList><iso639Id>pol</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>qwertz</name>
+ <_description>qwertz</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak_quotes</name>
+ <_description>Dvorak, Polish quotes on quotemark key</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak_altquotes</name>
+ <_description>Dvorak, 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>ru_phonetic_dvorak</name>
+ <_description>Russian phonetic Dvorak</_description>
+ <languageList><iso639Id>rus</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>pt</name>
+ <_shortDescription>Prt</_shortDescription>
+ <_description>Portugal</_description>
+ <languageList><iso639Id>por</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+ <_description>Macintosh, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_sundeadkeys</name>
+ <_description>Macintosh, Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo</name>
+ <_description>Nativo</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-us</name>
+ <_description>Nativo for USA keyboards</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-epo</name>
+ <_description>Nativo for Esperanto</_description>
+ <languageList><iso639Id>epo</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ro</name>
+ <_shortDescription>Rou</_shortDescription>
+ <_description>Romania</_description>
+ <languageList><iso639Id>rum</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>cedilla</name>
+ <_description>Cedilla</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>std</name>
+ <_description>Standard</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>std_cedilla</name>
+ <_description>Standard (Cedilla)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>winkeys</name>
+ <_description>Winkeys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ru</name>
+ <_shortDescription>Rus</_shortDescription>
+ <_description>Russia</_description>
+ <languageList><iso639Id>rus</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+ <_description>Phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>typewriter</name>
+ <_description>Typewriter</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>legacy</name>
+ <_description>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, Winkeys</_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>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>rs</name>
+ <_shortDescription>SRB</_shortDescription>
+ <_description>Serbia</_description>
+ <languageList><iso639Id>srp</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>yz</name>
+ <_description>Z and ZHE swapped</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin</name>
+ <_description>Latin</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicode</name>
+ <_description>Latin Unicode</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinyz</name>
+ <_description>Latin qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicodeyz</name>
+ <_description>Latin Unicode qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+ <_description>With guillemets</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinalternatequotes</name>
+ <_description>Latin with guillemets</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>si</name>
+ <_shortDescription>Svn</_shortDescription>
+ <_description>Slovenia</_description>
+ <languageList><iso639Id>slv</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+ <_description>Use guillemets for quotes</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicode</name>
+ <_description>Use Slovenian digraphs</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicodeus</name>
+ <_description>US keyboard with Slovenian digraphs</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+ <_description>US keyboard with Slovenian letters</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>sk</name>
+ <_shortDescription>Svk</_shortDescription>
+ <_description>Slovakia</_description>
+ <languageList><iso639Id>slo</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>bksl</name>
+ <_description>Extended Backslash</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+ <_description>qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty_bksl</name>
+ <_description>qwerty, extended Backslash</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>es</name>
+ <_shortDescription>Esp</_shortDescription>
+ <_description>Spain</_description>
+ <languageList><iso639Id>spa</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ast</name>
+ <_description>Asturian variant with bottom-dot H and bottom-dot L</_description>
+ <languageList><iso639Id>ast</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>cat</name>
+ <_description>Catalan variant with middle-dot L</_description>
+ <languageList><iso639Id>cat</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>se</name>
+ <_shortDescription>Swe</_shortDescription>
+ <_description>Sweden</_description>
+ <languageList><iso639Id>swe</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rus</name>
+ <_description>Russian phonetic</_description>
+ <languageList><iso639Id>rus</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rus_nodeadkeys</name>
+ <_description>Russian phonetic, eliminate dead keys</_description>
+ <languageList><iso639Id>rus</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>smi</name>
+ <_description>Northern Saami</_description>
+ <languageList><iso639Id>sme</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>svdvorak</name>
+ <_description>Svdvorak</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ch</name>
+ <_shortDescription>Che</_shortDescription>
+ <_description>Switzerland</_description>
+ <languageList><iso639Id>ger</iso639Id>
+ <iso639Id>gsw</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>de_nodeadkeys</name>
+ <_description>German, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>de_sundeadkeys</name>
+ <_description>German, Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr</name>
+ <_description>French</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr_nodeadkeys</name>
+ <_description>French, eliminate dead keys</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr_sundeadkeys</name>
+ <_description>French, Sun dead keys</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr_mac</name>
+ <_description>French (Macintosh)</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>de_mac</name>
+ <_description>German (Macintosh)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>sy</name>
+ <_shortDescription>Syr</_shortDescription>
+ <_description>Syria</_description>
+ <languageList><iso639Id>syr</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>syc</name>
+ <_description>Syriac</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>syc_phonetic</name>
+ <_description>Syriac phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku</name>
+ <_description>Kurdish, Latin Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+ <_description>Kurdish, (F)</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+ <_description>Kurdish, Latin Alt-Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>tj</name>
+ <_shortDescription>Tjk</_shortDescription>
+ <_description>Tajikistan</_description>
+ <languageList><iso639Id>tgk</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>lk</name>
+ <_shortDescription>SrL</_shortDescription>
+ <_description>Sri Lanka</_description>
+ <languageList><iso639Id>sin</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>tam_unicode</name>
+ <_description>Tamil Unicode</_description>
+ <languageList><iso639Id>tam</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tam_TAB</name>
+ <_description>Tamil TAB Typewriter</_description>
+ <languageList><iso639Id>tam</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>th</name>
+ <_shortDescription>Tha</_shortDescription>
+ <_description>Thailand</_description>
+ <languageList><iso639Id>tha</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>tis</name>
+ <_description>TIS-820.2538</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>pat</name>
+ <_description>Pattachote</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>tr</name>
+ <_shortDescription>Tur</_shortDescription>
+ <_description>Turkey</_description>
+ <languageList><iso639Id>tur</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>f</name>
+ <_description>(F)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alt</name>
+ <_description>Alt-Q</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku</name>
+ <_description>Kurdish, Latin Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+ <_description>Kurdish, (F)</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+ <_description>Kurdish, Latin Alt-Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>intl</name>
+ <_description>International (with dead keys)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ua</name>
+ <_shortDescription>Ukr</_shortDescription>
+ <_description>Ukraine</_description>
+ <languageList><iso639Id>ukr</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+ <_description>Phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>typewriter</name>
+ <_description>Typewriter</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>winkeys</name>
+ <_description>Winkeys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicode</name>
+ <_description>Unicode</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rstu</name>
+<!-- RSTU 2019-91 -->
+ <_description>Standard RSTU</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rstu_ru</name>
+<!-- RSTU 2019-91 -->
+ <_description>Standard RSTU on Russian layout</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>homophonic</name>
+ <_description>Homophonic</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>gb</name>
+ <_shortDescription>GBr</_shortDescription>
+ <_description>United Kingdom</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>intl</name>
+ <_description>International (with dead keys)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorakukp</name>
+ <_description>Dvorak (UK Punctuation)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+ <_description>Colemak</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>uz</name>
+ <_shortDescription>Uzb</_shortDescription>
+ <_description>Uzbekistan</_description>
+ <languageList><iso639Id>uzb</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>latin</name>
+ <_description>Latin</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>vn</name>
+ <_shortDescription>Vnm</_shortDescription>
+ <_description>Vietnam</_description>
+ <languageList><iso639Id>vie</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>kr</name>
+ <_shortDescription>Kor</_shortDescription>
+ <_description>Korea, Republic of</_description>
+ <languageList><iso639Id>kor</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>kr104</name>
+ <_description>101/104 key Compatible</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>nec_vndr/jp</name>
+ <_shortDescription>Jpn</_shortDescription>
+ <_description>Japan (PC-98xx Series)</_description>
+ <countryList><iso3166Id>JP</iso3166Id></countryList>
+ <languageList><iso639Id>jpn</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ie</name>
+ <_shortDescription>Irl</_shortDescription>
+ <_description>Ireland</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>CloGaelach</name>
+ <_description>CloGaelach</_description>
+ <languageList><iso639Id>gla</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>UnicodeExpert</name>
+ <_description>UnicodeExpert</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ogam</name>
+ <_description>Ogham</_description>
+ <!-- No ISO code in ISO639 -->
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ogam_is434</name>
+ <_description>Ogham IS434</_description>
+ <!-- No ISO code in ISO639 -->
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>pk</name>
+ <_shortDescription>Pak</_shortDescription>
+ <_description>Pakistan</_description>
+ <languageList><iso639Id>urd</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ara</name>
+ <_description>Arabic</_description>
+ <languageList><iso639Id>ara</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>mv</name>
+ <_shortDescription>Mal</_shortDescription>
+ <_description>Maldives</_description>
+ <languageList><iso639Id>div</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>za</name>
+ <_shortDescription>Zar</_shortDescription>
+ <_description>South Africa</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ </layout>
+ <layout>
+ <configItem>
+ <name>epo</name>
+ <_shortDescription>Epo</_shortDescription>
+ <_description>Esperanto</_description>
+ <languageList><iso639Id>epo</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>legacy</name>
+ <_description>displaced semicolon and quote (obsolete)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>np</name>
+ <_shortDescription>Nep</_shortDescription>
+ <_description>Nepal</_description>
+ <languageList><iso639Id>nep</iso639Id></languageList>
+ </configItem>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ng</name>
+ <_shortDescription>Nig</_shortDescription>
+ <_description>Nigeria</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>igbo</name>
+ <_description>Igbo</_description>
+ <languageList><iso639Id>ibo</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>yoruba</name>
+ <_description>Yoruba</_description>
+ <languageList><iso639Id>yor</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>hausa</name>
+ <_description>Hausa</_description>
+ <languageList><iso639Id>hau</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>et</name>
+ <_shortDescription>Eth</_shortDescription>
+ <_description>Ethiopia</_description>
+ <languageList><iso639Id>amh</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>braille</name>
+ <_shortDescription>Brl</_shortDescription>
+ <_description>Braille</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>left_hand</name>
+ <_description>Left hand</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>right_hand</name>
+ <_description>Right hand</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ </layoutList>
+ <optionList>
+ <group allowMultipleSelection="true">
+ <!-- The key combination used to switch between groups -->
+ <configItem>
+ <name>grp</name>
+ <_description>Layout switching</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>grp:switch</name>
+ <_description>R-Alt switches layout while pressed.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lswitch</name>
+ <_description>Left Alt key switches layout while pressed.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lwin_switch</name>
+ <_description>Left Win-key switches layout while pressed.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rwin_switch</name>
+ <_description>Right Win-key switches layout while pressed.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:win_switch</name>
+ <_description>Both Win-keys switch layout while pressed.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:caps_switch</name>
+ <_description>CapsLock key switches layout while pressed, Alt+CapsLock does the original capslock action.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rctrl_switch</name>
+ <_description>Right Ctrl key switches layout while pressed.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:toggle</name>
+ <_description>Right Alt key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lalt_toggle</name>
+ <_description>Left Alt key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:caps_toggle</name>
+ <_description>CapsLock key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:shift_caps_toggle</name>
+ <_description>Shift+CapsLock changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:shift_caps_switch</name>
+ <_description>CapsLock switch to first layout, Shift+CapsLock switch to last layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alt_caps_toggle</name>
+ <_description>Alt+CapsLock changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:shifts_toggle</name>
+ <_description>Both Shift keys together change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alts_toggle</name>
+ <_description>Both Alt keys together change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:ctrls_toggle</name>
+ <_description>Both Ctrl keys together change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:ctrl_shift_toggle</name>
+ <_description>Ctrl+Shift change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lctrl_lshift_toggle</name>
+ <_description>LCtrl+LShift change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:ctrl_alt_toggle</name>
+ <_description>Alt+Ctrl change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alt_shift_toggle</name>
+ <_description>Alt+Shift change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:menu_toggle</name>
+ <_description>Menu key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lwin_toggle</name>
+ <_description>Left Win-key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rwin_toggle</name>
+ <_description>Right Win-key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lshift_toggle</name>
+ <_description>Left Shift key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rshift_toggle</name>
+ <_description>Right Shift key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lctrl_toggle</name>
+ <_description>Left Ctrl key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rctrl_toggle</name>
+ <_description>Right Ctrl key changes layout.</_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>Third level choosers</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>lv3:switch</name>
+ <_description>Press Right Ctrl to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:menu_switch</name>
+ <_description>Press Menu key to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:win_switch</name>
+ <_description>Press any of Win-keys to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:lwin_switch</name>
+ <_description>Press Left Win-key to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:rwin_switch</name>
+ <_description>Press Right Win-key to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:alt_switch</name>
+ <_description>Press any of Alt keys to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:lalt_switch</name>
+ <_description>Press Left Alt key to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:ralt_switch</name>
+ <_description>Press Right Alt key to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:ralt_switch_multikey</name>
+ <_description>Press Right Alt key to choose 3rd level, Shift+Right Alt key is Multi_Key.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:ralt_alt</name>
+ <_description>Right Alt key never chooses 3rd level.</_description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+ <!-- Tweaking the position of the "Ctrl" key -->
+ <configItem>
+ <name>ctrl</name>
+ <_description>Ctrl key position</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>ctrl:nocaps</name>
+ <_description>Make CapsLock an additional Ctrl.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:swapcaps</name>
+ <_description>Swap Ctrl and CapsLock.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:ctrl_ac</name>
+ <_description>Ctrl key at left of 'A'</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:ctrl_aa</name>
+ <_description>Ctrl key at bottom left</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:ctrl_ra</name>
+ <_description>Right Ctrl key works as Right 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>NumLock LED shows alternative layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp_led:caps</name>
+ <_description>CapsLock LED shows alternative layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp_led:scroll</name>
+ <_description>ScrollLock LED shows alternative layout.</_description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+ <!-- Select a keypad type -->
+ <configItem>
+ <name>keypad</name>
+ <_description>Numeric keypad layout selection</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>keypad:legacy</name>
+ <_description>Legacy keypad</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:oss</name>
+ <_description>Keypad with unicode additions (arrows and math operators)</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:future</name>
+ <_description>Keypad with 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 keypad</_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:phone_hex</name>
+ <_description>ATM/phone-style hexadecimal keypad</_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 key behaviour</_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 restriction</_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>
+ </group>
+ <group allowMultipleSelection="false">
+ <!-- CapsLock tweaks.
+ "Internal" capitalization means capitalization using some internal tables.
+ Otherwise "as Shift" - means using next group. -->
+ <configItem>
+ <name>caps</name>
+ <_description>CapsLock key behavior</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>caps:internal</name>
+ <_description>CapsLock uses internal capitalization. Shift "pauses" CapsLock.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:internal_nocancel</name>
+ <_description>CapsLock uses internal capitalization. Shift doesn't affect CapsLock.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:shift</name>
+ <_description>CapsLock acts as Shift with locking. Shift "pauses" CapsLock.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:shift_nocancel</name>
+ <_description>CapsLock acts as Shift with locking. Shift doesn't affect CapsLock.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:capslock</name>
+ <_description>CapsLock toggles normal capitalization of alphabetic characters.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:swapescape</name>
+ <_description>Swap ESC and CapsLock.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:shiftlock</name>
+ <_description>CapsLock toggles Shift so all keys are affected.</_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:meta_alt</name>
+ <_description>Alt and Meta are on the Alt keys.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:ctrl_win</name>
+ <_description>Control is mapped to the Win-keys (and the usual Ctrl keys).</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:meta_win</name>
+ <_description>Meta is mapped to the Win-keys.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:left_meta_win</name>
+ <_description>Meta is mapped to the left Win-key.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:super_win</name>
+ <_description>Super is mapped to the Win-keys.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:hyper_win</name>
+ <_description>Hyper is mapped to the Win-keys.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:alt_super_win</name>
+ <_description>Alt is mapped to the right Win-key and Super to Menu.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:swap_lalt_lwin</name>
+ <_description>Left Alt is swapped with left Win-key.</_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>Compose key position</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>compose:ralt</name>
+ <_description>Right Alt is Compose.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:lwin</name>
+ <_description>Left Win-key is Compose.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:rwin</name>
+ <_description>Right Win-key is Compose.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:menu</name>
+ <_description>Menu is Compose.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:rctrl</name>
+ <_description>Right Ctrl is Compose.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:caps</name>
+ <_description>Caps Lock is Compose.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:102</name>
+ <_description>Less-than/Greater-than is Compose.</_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 keys work as with Mac.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>numpad:microsoft</name>
+ <_description>Shift with numeric keypad keys works as in MS Windows.</_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:badmap</name>
+ <_description>Swap keycodes of two keys when Mac keyboards are misdetected by kernel.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>shift:breaks_caps</name>
+ <_description>Shift cancels CapsLock.</_description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+ <!-- Special shortcuts for the Euro character -->
+ <configItem>
+ <name>eurosign</name>
+ <_description>Adding the EuroSign to certain keys</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>eurosign:e</name>
+ <_description>Add the EuroSign to the E key.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>eurosign:2</name>
+ <_description>Add the EuroSign to the 2 key.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>eurosign:4</name>
+ <_description>Add the EuroSign to the 4 key.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>eurosign:5</name>
+ <_description>Add the EuroSign to the 5 key.</_description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+ <!-- Let space output nobreakspace for the desired level -->
+ <configItem>
+ <name>nbsp</name>
+ <_description>Using space key to input non-breakable space character</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>nbsp:none</name>
+ <_description>Space key outputs usual space at any level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level2</name>
+ <_description>Space key outputs non-breakable space character at second level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level3</name>
+ <_description>Space key outputs non-breakable space character at third level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level3s</name>
+ <_description>Space key outputs non-breakable space character at third level, nothing at fourth level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level3n</name>
+ <_description>Space key outputs non-breakable space character at third level, thin non-breakable space character at fourth level</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level4</name>
+ <_description>Space key outputs non-breakable space character at fourth level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level4n</name>
+ <_description>Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level4nl</name>
+ <_description>Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)</_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>
+ </group>
+ </optionList>
+</xkbConfigRegistry>
diff --git a/xorg-server/xkbdata.src/rules/compat/Makefile.am b/xorg-server/xkbdata.src/rules/compat/Makefile.am
new file mode 100644
index 000000000..331265ae1
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/compat/Makefile.am
@@ -0,0 +1,56 @@
+
+transform_files=layoutRename.lst variantRename.lst
+
+transform_scripts=ln_s.sh lnv_s.sh ml_s.sh mlv_s.sh ml1_s.sh ml1v_s.sh ml1v1_s.sh
+
+dist_parts=base.o_s.part
+
+scripts=base.l2_s.part base.l3_s.part base.l4_s.part \
+base.l2v2_s.part base.l3v3_s.part base.l4v4_s.part \
+base.ml_s.part base.ml1_s.part \
+base.mlv_s.part base.ml1v1_s.part \
+base.ml_s.part
+
+if USE_COMPAT_RULES
+
+noinst_SCRIPTS=$(scripts) $(dist_parts)
+
+else
+
+noinst_SCRIPTS=
+
+endif
+
+base.l2_s.part: ln_s.sh $(transform_files)
+ sh $< 2
+
+base.l3_s.part: ln_s.sh $(transform_files)
+ sh $< 3
+
+base.l4_s.part: ln_s.sh $(transform_files)
+ sh $< 4
+
+base.l2v2_s.part: lnv_s.sh $(transform_files)
+ sh $< 2
+
+base.l3v3_s.part: lnv_s.sh $(transform_files)
+ sh $< 3
+
+base.l4v4_s.part: lnv_s.sh $(transform_files)
+ sh $< 4
+
+base.ml_s.part: ml_s.sh $(transform_files)
+ sh $<
+
+base.ml1_s.part: ml1_s.sh $(transform_files)
+ sh $<
+
+base.mlv_s.part: mlv_s.sh $(transform_files)
+ sh $<
+
+base.ml1v1_s.part: ml1v1_s.sh $(transform_files)
+ sh $<
+
+EXTRA_DIST=base.lists.part $(transform_files) $(transform_scripts) $(dist_parts)
+
+CLEANFILES=$(scripts)
diff --git a/xorg-server/xkbdata.src/rules/compat/Makefile.in b/xorg-server/xkbdata.src/rules/compat/Makefile.in
new file mode 100644
index 000000000..10fa254b1
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/compat/Makefile.in
@@ -0,0 +1,377 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = rules/compat
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SCRIPTS = $(noinst_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CREATE_RULES_SYMLINK_FALSE = @CREATE_RULES_SYMLINK_FALSE@
+CREATE_RULES_SYMLINK_TRUE = @CREATE_RULES_SYMLINK_TRUE@
+CREATE_XKBCOMP_SYMLINK_FALSE = @CREATE_XKBCOMP_SYMLINK_FALSE@
+CREATE_XKBCOMP_SYMLINK_TRUE = @CREATE_XKBCOMP_SYMLINK_TRUE@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_COMPAT_RULES_FALSE = @USE_COMPAT_RULES_FALSE@
+USE_COMPAT_RULES_TRUE = @USE_COMPAT_RULES_TRUE@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XKBCOMP = @XKBCOMP@
+ac_ct_CC = @ac_ct_CC@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+xkb_base = @xkb_base@
+xkb_rules_symlink = @xkb_rules_symlink@
+transform_files = layoutRename.lst variantRename.lst
+transform_scripts = ln_s.sh lnv_s.sh ml_s.sh mlv_s.sh ml1_s.sh ml1v_s.sh ml1v1_s.sh
+dist_parts = base.o_s.part
+scripts = base.l2_s.part base.l3_s.part base.l4_s.part \
+base.l2v2_s.part base.l3v3_s.part base.l4v4_s.part \
+base.ml_s.part base.ml1_s.part \
+base.mlv_s.part base.ml1v1_s.part \
+base.ml_s.part
+
+@USE_COMPAT_RULES_FALSE@noinst_SCRIPTS =
+@USE_COMPAT_RULES_TRUE@noinst_SCRIPTS = $(scripts) $(dist_parts)
+EXTRA_DIST = base.lists.part $(transform_files) $(transform_scripts) $(dist_parts)
+CLEANFILES = $(scripts)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu rules/compat/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu rules/compat/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-info-am
+
+
+base.l2_s.part: ln_s.sh $(transform_files)
+ sh $< 2
+
+base.l3_s.part: ln_s.sh $(transform_files)
+ sh $< 3
+
+base.l4_s.part: ln_s.sh $(transform_files)
+ sh $< 4
+
+base.l2v2_s.part: lnv_s.sh $(transform_files)
+ sh $< 2
+
+base.l3v3_s.part: lnv_s.sh $(transform_files)
+ sh $< 3
+
+base.l4v4_s.part: lnv_s.sh $(transform_files)
+ sh $< 4
+
+base.ml_s.part: ml_s.sh $(transform_files)
+ sh $<
+
+base.ml1_s.part: ml1_s.sh $(transform_files)
+ sh $<
+
+base.mlv_s.part: mlv_s.sh $(transform_files)
+ sh $<
+
+base.ml1v1_s.part: ml1v1_s.sh $(transform_files)
+ sh $<
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/xorg-server/xkbdata.src/rules/compat/base.lists.part b/xorg-server/xkbdata.src/rules/compat/base.lists.part
new file mode 100644
index 000000000..f1cf7ee22
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/compat/base.lists.part
@@ -0,0 +1,2 @@
+
+! $dvoraklayouts = br ca de ee es fr gb no pl se us
diff --git a/xorg-server/xkbdata.src/rules/compat/base.o_s.part b/xorg-server/xkbdata.src/rules/compat/base.o_s.part
new file mode 100644
index 000000000..8f1e9e452
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/compat/base.o_s.part
@@ -0,0 +1 @@
+ grp:shift_toggle = +group(shifts_toggle)
diff --git a/xorg-server/xkbdata.src/rules/compat/layoutRename.lst b/xorg-server/xkbdata.src/rules/compat/layoutRename.lst
new file mode 100644
index 000000000..cecda6d8a
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/compat/layoutRename.lst
@@ -0,0 +1,27 @@
+ar ara
+ben in(ben)
+bs ba
+cs rs
+cz_qwerty cz(qwerty)
+dev in(deva)
+dvorak us(dvorak)
+dzdwi bt
+el gr
+en_US latin
+guj in(guj)
+gur in(guru)
+iu ca(ike)
+lo la
+kan in(kan)
+mi mao
+ml in(mal)
+ogham ie(ogam)
+ori ie(ori)
+sapmi no(smi)
+sr srp
+syr sy(syc)
+tel in(tel)
+tml in(tam)
+yu srp
+fr-latin9 fr(latin9)
+us_intl us(alt-intl)
diff --git a/xorg-server/xkbdata.src/rules/compat/ln_s.sh b/xorg-server/xkbdata.src/rules/compat/ln_s.sh
new file mode 100644
index 000000000..00c2f593c
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/compat/ln_s.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+variant=$1
+
+INDIR=`dirname $0`
+OUTFILE=base.l${variant}_s.part
+
+> $OUTFILE
+
+awk '{
+ printf " %s = +%s%%(v['${variant}']):'${variant}'\n", $1, $2;
+}' < $INDIR/layoutRename.lst >> $OUTFILE
+
+awk '{
+ printf " %s(%s) = +%s(%s):'${variant}'\n", $1, $2, $3, $4;
+}' < $INDIR/variantRename.lst >> $OUTFILE
diff --git a/xorg-server/xkbdata.src/rules/compat/lnv_s.sh b/xorg-server/xkbdata.src/rules/compat/lnv_s.sh
new file mode 100644
index 000000000..ae699f95b
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/compat/lnv_s.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+variant=$1
+
+INDIR=`dirname $0`
+OUTFILE=base.l${variant}v${variant}_s.part
+
+> $OUTFILE
+
+awk '{
+ printf " %s %s = +%s(%s):'${variant}'\n", $1, $2, $3, $4;
+}' < $INDIR/variantRename.lst >> $OUTFILE
diff --git a/xorg-server/xkbdata.src/rules/compat/ml1_s.sh b/xorg-server/xkbdata.src/rules/compat/ml1_s.sh
new file mode 100644
index 000000000..210d1b655
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/compat/ml1_s.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+INDIR=`dirname $0`
+OUTFILE=base.ml1_s.part
+
+> $OUTFILE
+
+awk '{
+ printf " * %s = pc+%s%%(v[1])\n", $1, $2;
+}' < $INDIR/layoutRename.lst >> $OUTFILE
+
+awk '{
+ printf " * %s(%s) = pc+%s(%s)\n", $1, $2, $3, $4;
+}' < $INDIR/variantRename.lst >> $OUTFILE
diff --git a/xorg-server/xkbdata.src/rules/compat/ml1v1_s.sh b/xorg-server/xkbdata.src/rules/compat/ml1v1_s.sh
new file mode 100644
index 000000000..9edcb8e8c
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/compat/ml1v1_s.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+INDIR=`dirname $0`
+OUTFILE=base.ml1v1_s.part
+
+> $OUTFILE
+
+awk '{
+ printf " * %s %s = pc+%s(%s)\n", $1, $2, $3, $4;
+}' < $INDIR/variantRename.lst >> $OUTFILE
diff --git a/xorg-server/xkbdata.src/rules/compat/ml1v_s.sh b/xorg-server/xkbdata.src/rules/compat/ml1v_s.sh
new file mode 100644
index 000000000..02ae5726d
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/compat/ml1v_s.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+INDIR=`dirname $0`
+OUTFILE=base.ml1v_s.part
+
+> $OUTFILE
+
+awk '{
+ printf " * %s %s = pc+%s(%s)\n", $1, $2, $3, $4;
+}' < $INDIR/variantRename.lst >> $OUTFILE
diff --git a/xorg-server/xkbdata.src/rules/compat/ml_s.sh b/xorg-server/xkbdata.src/rules/compat/ml_s.sh
new file mode 100644
index 000000000..f35087380
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/compat/ml_s.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+INDIR=`dirname $0`
+OUTFILE=base.ml_s.part
+
+> $OUTFILE
+
+awk '{
+ printf " * %s = pc+%s\n", $1, $2;
+}' < $INDIR/layoutRename.lst >> $OUTFILE
+
+awk '{
+ printf " * %s(%s) = pc+%s(%s)\n", $1, $2, $3, $4;
+}' < $INDIR/variantRename.lst >> $OUTFILE
diff --git a/xorg-server/xkbdata.src/rules/compat/mlv_s.sh b/xorg-server/xkbdata.src/rules/compat/mlv_s.sh
new file mode 100644
index 000000000..ea644dcab
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/compat/mlv_s.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+INDIR=`dirname $0`
+OUTFILE=base.mlv_s.part
+
+> $OUTFILE
+
+awk '{
+ printf " * %s %s = pc+%s(%s)\n", $1, $2, $3, $4;
+}' < $INDIR/variantRename.lst >> $OUTFILE
diff --git a/xorg-server/xkbdata.src/rules/compat/variantRename.lst b/xorg-server/xkbdata.src/rules/compat/variantRename.lst
new file mode 100644
index 000000000..e6a99e9de
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/compat/variantRename.lst
@@ -0,0 +1,47 @@
+ben basic in ben
+ben probhat in ben_probhat
+dev basic in deva
+dvorak $dvoraklayouts %v dvorak
+dvorak basic us dvorak
+dvorak pl_basic pl dvorak
+dvorak pl pl dvorak_quotes
+dvorak pl_altquotes pl dvorak_altquotes
+dzdwi basic bt basic
+fi basic fi classic
+ge azerty_tskapo fr geo
+guj basic in guj
+gur basic in guru
+ie laptop ie basic
+ie CloGaelachLaptop ie CloGaelach
+il si1452 ie basic
+iu basic ca ike
+lo basic la basic
+kan basic in kan
+mal basic in mal
+mal mlplusnum in mal
+ogham basic ie ogam
+ogham laptop ie ogam
+ogham is434 ie ogam_is434
+ogham is434laptop ie ogam_is434
+ori basic in ori
+ro de ro winkeys
+ro us ro std
+ro academic ro std
+ro std_comma ro std
+ro comma ro basic
+ru os ru os_legacy
+sapmi basic no smi
+sapmi nodeadkeys no smi_nodeadkeys
+sapmi sefi fi smi
+sin phonetic-static in sin_phonetic
+syr basic sy syc
+syr phonetic sy syc_phonetic
+tam INSCRIPT in tam
+tam UNI in tam_unicode
+tam TAB in tam_TAB
+tam TSCII in tam_TSCII
+tel basic in tel
+yu basic srp latin
+yu unicode srp latinunicode
+yu yz srp latinyz
+yu unicodeyz srp latinunicodeyz
diff --git a/xorg-server/xkbdata.src/rules/evdev b/xorg-server/xkbdata.src/rules/evdev
new file mode 100644
index 000000000..d58b15b1c
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/evdev
@@ -0,0 +1,953 @@
+// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part
+// $Xorg: xfree86,v 1.3 2000/08/17 19:54:42 cpqbld Exp $
+
+//
+// Rules for resolving XKB components for use with XFree86
+// Copyright 1996 by Joseph Moss
+//
+// 2002 Modifier: Ivan Pascal The XFree86 Project
+// $XFree86: xc/programs/xkbcomp/rules/xfree86,v 3.79 2004/01/09 00:16:01 dawes Exp $
+//
+
+// If you want non-latin layouts implicitly include the en_US layout
+// uncomment lines below
+//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \
+// in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \
+// ru scc sy syr tel th tj tam ua uz
+
+// PC models
+! $pcmodels = pc101 pc102 pc104 pc105
+
+// Microsoft models (using MS geometry)
+! $msmodels = microsoft microsoft7000 microsoftpro microsoftprousb microsoftprose
+
+// PC geometries - they have special geometry but symbols are mostly pc105
+! $pcgeometries = abnt2 latitude jp106 kr106
+
+// Layouts that provide further specializations for the OLPC
+! $olpclayouts = af am ara br ca es et it kh kz in mn np ru th tr us
+
+! $macbooks = macbook78 macbook79
+! $maclaptop = ibook powerbook macbook78 macbook79
+! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79
+
+! $macvendorlayouts = ch de dk es fi fr gb is it latam nl no pt se us
+
+! $azerty = be fr
+! $qwertz = al cz de hr hu ro si sk
+
+! $inetkbds = a4techKB21 a4techKBS8 a4_rfkb23 \
+ acer_c300 acer_ferrari4k acer_laptop \
+ acpi airkey \
+ apple armada asus_laptop azonaRF2300 \
+ benqx brother \
+ btc5113rf btc5126t btc6301urf btc9000 btc9000a btc9001ah btc5090 btc9019u \
+ cherryblue cherrybluea cherryblueb cherrycyboard \
+ chicony chicony0108 chicony9885 \
+ compaqeak8 compaqik7 compaqik13 compaqik18 \
+ cymotionlinux \
+ dell dellm65 inspiron precision_m dellusbmm dtk2000 \
+ emachines ennyah_dkb1008 evdev fscaa1667g \
+ genius geniuscomfy geniuscomfy2 geniuskb19e \
+ gyration honeywell_euroboard \
+ hp2501 hp2505 hp5xx hp500fa hp5181 hp5185 \
+ hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx \
+ ibm_spacesaver ipaq inspiron intel latitude \
+ logiaccess logicda logicink \
+ logiex110 logiclx300 \
+ logiinkse logiinkseusb logiitc logiik \
+ logitech_base itouch logiultrax \
+ logitech_g15 \
+ logidinovo logidinovoedge \
+ microsoft7000 microsoftinet microsoftpro microsoftprousb microsoftprooem microsoftprose \
+ microsoftoffice microsoftmult \
+ mx1998 mx2500 mx2750 \
+ oretec \
+ presario propeller \
+ qtronix \
+ rapidaccess rapidaccess2 rapidaccess2a thinkpad thinkpad60 \
+ samsung4500 samsung4510 \
+ scorpius silvercrest \
+ sk1300 sk2500 sk6200 sk7100 sp_inet \
+ sven sven303 symplon \
+ toshiba_s3000 trust trustda \
+ yahoo
+
+// all layouts with 3rd and 4th groups
+! $threelevellayouts = al az \
+ be br bt \
+ ca ch cs cz \
+ de dk \
+ ee es \
+ fi fo fr \
+ gb gr \
+ hu \
+ ie ir is it \
+ kg \
+ latam \
+ lk lt \
+ mn mt \
+ nl no \
+ pl pt \
+ ro \
+ se sk \
+ tr \
+ us \
+ vn \
+ za
+
+
+! $dvoraklayouts = br ca de ee es fr gb no pl se us
+
+! model = keycodes
+ pc98 = evdev(pc98)
+ abnt2 = evdev(abnt2)
+ jp106 = evdev(jp106)
+ * = evdev
+
+! layout[1] = keycodes
+ $azerty = +aliases(azerty)
+ $qwertz = +aliases(qwertz)
+ * = +aliases(qwerty)
+
+! layout = keycodes
+ $azerty = +aliases(azerty)
+ $qwertz = +aliases(qwertz)
+ * = +aliases(qwerty)
+
+! option = keycodes
+ apple:badmap = +macintosh(badmap)
+ apple:goodmap = +macintosh(goodmap)
+
+! model layout = geometry
+ thinkpad us = thinkpad(us)
+
+! model = geometry
+ microsoftelite = microsoft(elite)
+ $msmodels = microsoft(natural)
+ dell101 = dell(dell101)
+ dellm65 = dell(dellm65)
+ flexpro = keytronic(FlexPro)
+ hp6000 = hp(omnibook)
+ omnikey101 = northgate(omnikey101)
+ $pcmodels = pc(%m)
+ $pcgeometries = pc(%m)
+ everex = everex(STEPnote)
+ thinkpad = thinkpad(intl)
+ thinkpad60 = thinkpad(60)
+ thinkpadz60 = thinkpad(60)
+ winbook = winbook(XP5)
+ pc98 = nec(pc98)
+ $macbooks = macintosh(%m)
+ $macs = macintosh(macintosh)
+ hhk = hhk(basic)
+ kinesis = kinesis(model100)
+ * = pc(pc104)
+
+! model layout variant = symbols
+ * ben basic = pc+in(ben)
+ * ben probhat = pc+in(ben_probhat)
+ * dev basic = pc+in(deva)
+ * dvorak $dvoraklayouts = pc+%v(dvorak)
+ * dvorak basic = pc+us(dvorak)
+ * dvorak pl_basic = pc+pl(dvorak)
+ * dvorak pl = pc+pl(dvorak_quotes)
+ * dvorak pl_altquotes = pc+pl(dvorak_altquotes)
+ * dzdwi basic = pc+bt(basic)
+ * fi basic = pc+fi(classic)
+ * ge azerty_tskapo = pc+fr(geo)
+ * guj basic = pc+in(guj)
+ * gur basic = pc+in(guru)
+ * ie laptop = pc+ie(basic)
+ * ie CloGaelachLaptop = pc+ie(CloGaelach)
+ * il si1452 = pc+ie(basic)
+ * iu basic = pc+ca(ike)
+ * lo basic = pc+la(basic)
+ * kan basic = pc+in(kan)
+ * mal basic = pc+in(mal)
+ * mal mlplusnum = pc+in(mal)
+ * ogham basic = pc+ie(ogam)
+ * ogham laptop = pc+ie(ogam)
+ * ogham is434 = pc+ie(ogam_is434)
+ * ogham is434laptop = pc+ie(ogam_is434)
+ * ori basic = pc+in(ori)
+ * ro de = pc+ro(winkeys)
+ * ro us = pc+ro(std)
+ * ro academic = pc+ro(std)
+ * ro std_comma = pc+ro(std)
+ * ro comma = pc+ro(basic)
+ * ru os = pc+ru(os_legacy)
+ * sapmi basic = pc+no(smi)
+ * sapmi nodeadkeys = pc+no(smi_nodeadkeys)
+ * sapmi sefi = pc+fi(smi)
+ * sin phonetic-static = pc+in(sin_phonetic)
+ * syr basic = pc+sy(syc)
+ * syr phonetic = pc+sy(syc_phonetic)
+ * tam INSCRIPT = pc+in(tam)
+ * tam UNI = pc+in(tam_unicode)
+ * tam TAB = pc+in(tam_TAB)
+ * tam TSCII = pc+in(tam_TSCII)
+ * tel basic = pc+in(tel)
+ * yu basic = pc+srp(latin)
+ * yu unicode = pc+srp(latinunicode)
+ * yu yz = pc+srp(latinyz)
+ * yu unicodeyz = pc+srp(latinunicodeyz)
+ classmate us intl = pc+us(classmate-intl)
+ classmate us alt-intl = pc+us(classmate-alt-intl)
+ classmate us altgr-intl = pc+us(classmate-altgr-intl)
+
+! model layout = symbols
+ * ar = pc+ara
+ * ben = pc+in(ben)
+ * bs = pc+ba
+ * cs = pc+rs
+ * cz_qwerty = pc+cz(qwerty)
+ * dev = pc+in(deva)
+ * dvorak = pc+us(dvorak)
+ * dzdwi = pc+bt
+ * el = pc+gr
+ * en_US = pc+latin
+ * guj = pc+in(guj)
+ * gur = pc+in(guru)
+ * iu = pc+ca(ike)
+ * lo = pc+la
+ * kan = pc+in(kan)
+ * mi = pc+mao
+ * ml = pc+in(mal)
+ * ogham = pc+ie(ogam)
+ * ori = pc+ie(ori)
+ * sapmi = pc+no(smi)
+ * sr = pc+srp
+ * syr = pc+sy(syc)
+ * tel = pc+in(tel)
+ * tml = pc+in(tam)
+ * yu = pc+srp
+ * fr-latin9 = pc+fr(latin9)
+ * us_intl = pc+us(alt-intl)
+ * ben(basic) = pc+in(ben)
+ * ben(probhat) = pc+in(ben_probhat)
+ * dev(basic) = pc+in(deva)
+ * dvorak($dvoraklayouts) = pc+%v(dvorak)
+ * dvorak(basic) = pc+us(dvorak)
+ * dvorak(pl_basic) = pc+pl(dvorak)
+ * dvorak(pl) = pc+pl(dvorak_quotes)
+ * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes)
+ * dzdwi(basic) = pc+bt(basic)
+ * fi(basic) = pc+fi(classic)
+ * ge(azerty_tskapo) = pc+fr(geo)
+ * guj(basic) = pc+in(guj)
+ * gur(basic) = pc+in(guru)
+ * ie(laptop) = pc+ie(basic)
+ * ie(CloGaelachLaptop) = pc+ie(CloGaelach)
+ * il(si1452) = pc+ie(basic)
+ * iu(basic) = pc+ca(ike)
+ * lo(basic) = pc+la(basic)
+ * kan(basic) = pc+in(kan)
+ * mal(basic) = pc+in(mal)
+ * mal(mlplusnum) = pc+in(mal)
+ * ogham(basic) = pc+ie(ogam)
+ * ogham(laptop) = pc+ie(ogam)
+ * ogham(is434) = pc+ie(ogam_is434)
+ * ogham(is434laptop) = pc+ie(ogam_is434)
+ * ori(basic) = pc+in(ori)
+ * ro(de) = pc+ro(winkeys)
+ * ro(us) = pc+ro(std)
+ * ro(academic) = pc+ro(std)
+ * ro(std_comma) = pc+ro(std)
+ * ro(comma) = pc+ro(basic)
+ * ru(os) = pc+ru(os_legacy)
+ * sapmi(basic) = pc+no(smi)
+ * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys)
+ * sapmi(sefi) = pc+fi(smi)
+ * sin(phonetic-static) = pc+in(sin_phonetic)
+ * syr(basic) = pc+sy(syc)
+ * syr(phonetic) = pc+sy(syc_phonetic)
+ * tam(INSCRIPT) = pc+in(tam)
+ * tam(UNI) = pc+in(tam_unicode)
+ * tam(TAB) = pc+in(tam_TAB)
+ * tam(TSCII) = pc+in(tam_TSCII)
+ * tel(basic) = pc+in(tel)
+ * yu(basic) = pc+srp(latin)
+ * yu(unicode) = pc+srp(latinunicode)
+ * yu(yz) = pc+srp(latinyz)
+ * yu(unicodeyz) = pc+srp(latinunicodeyz)
+ ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2
+ ataritt * = xfree68_vndr/ataritt(us)+%l%(v)
+ amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2
+ amiga * = xfree68_vndr/amiga(usa1)+%l%(v)
+ classmate us = pc+%l(classmate)
+ sun4 $nonlatin = latin+sun_vndr/us(sun4)+%l%(v):2
+ sun4 * = latin+sun_vndr/us(sun4)+%l%(v)
+ sun5 $nonlatin = latin+sun_vndr/us(sun5)+%l%(v):2
+ sun5 * = latin+sun_vndr/us(sun5)+%l%(v)
+ sun6 us = sun_vndr/us(type6)
+ sun6 en_US = sun_vndr/us(type6)+iso9995-3(basic)
+ sun6 * = sun_vndr/us(type6)+%l%(v)
+ pc98 nec_vndr/jp = nec_vndr/jp(pc98)
+ macintosh_old us = macintosh_vndr/us(oldmac)
+ macintosh_old en_US = macintosh_vndr/us(oldmac)
+ macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v)
+ macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2
+ macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v)
+ $macs en_US = pc+macintosh_vndr/us(extended)
+ $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v)
+ olpc $olpclayouts = olpc+%l%(m)
+ olpc * = olpc+%l%(v)
+ thinkpad br = pc+br(thinkpad)
+ * $nonlatin = pc+us+%l%(v):2
+ * * = pc+%l%(v)
+
+! model layout[1] = symbols
+ * ar = pc+ara%(v[1])
+ * ben = pc+in(ben)%(v[1])
+ * bs = pc+ba%(v[1])
+ * cs = pc+rs%(v[1])
+ * cz_qwerty = pc+cz(qwerty)%(v[1])
+ * dev = pc+in(deva)%(v[1])
+ * dvorak = pc+us(dvorak)%(v[1])
+ * dzdwi = pc+bt%(v[1])
+ * el = pc+gr%(v[1])
+ * en_US = pc+latin%(v[1])
+ * guj = pc+in(guj)%(v[1])
+ * gur = pc+in(guru)%(v[1])
+ * iu = pc+ca(ike)%(v[1])
+ * lo = pc+la%(v[1])
+ * kan = pc+in(kan)%(v[1])
+ * mi = pc+mao%(v[1])
+ * ml = pc+in(mal)%(v[1])
+ * ogham = pc+ie(ogam)%(v[1])
+ * ori = pc+ie(ori)%(v[1])
+ * sapmi = pc+no(smi)%(v[1])
+ * sr = pc+srp%(v[1])
+ * syr = pc+sy(syc)%(v[1])
+ * tel = pc+in(tel)%(v[1])
+ * tml = pc+in(tam)%(v[1])
+ * yu = pc+srp%(v[1])
+ * fr-latin9 = pc+fr(latin9)%(v[1])
+ * us_intl = pc+us(alt-intl)%(v[1])
+ * ben(basic) = pc+in(ben)
+ * ben(probhat) = pc+in(ben_probhat)
+ * dev(basic) = pc+in(deva)
+ * dvorak($dvoraklayouts) = pc+%v(dvorak)
+ * dvorak(basic) = pc+us(dvorak)
+ * dvorak(pl_basic) = pc+pl(dvorak)
+ * dvorak(pl) = pc+pl(dvorak_quotes)
+ * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes)
+ * dzdwi(basic) = pc+bt(basic)
+ * fi(basic) = pc+fi(classic)
+ * ge(azerty_tskapo) = pc+fr(geo)
+ * guj(basic) = pc+in(guj)
+ * gur(basic) = pc+in(guru)
+ * ie(laptop) = pc+ie(basic)
+ * ie(CloGaelachLaptop) = pc+ie(CloGaelach)
+ * il(si1452) = pc+ie(basic)
+ * iu(basic) = pc+ca(ike)
+ * lo(basic) = pc+la(basic)
+ * kan(basic) = pc+in(kan)
+ * mal(basic) = pc+in(mal)
+ * mal(mlplusnum) = pc+in(mal)
+ * ogham(basic) = pc+ie(ogam)
+ * ogham(laptop) = pc+ie(ogam)
+ * ogham(is434) = pc+ie(ogam_is434)
+ * ogham(is434laptop) = pc+ie(ogam_is434)
+ * ori(basic) = pc+in(ori)
+ * ro(de) = pc+ro(winkeys)
+ * ro(us) = pc+ro(std)
+ * ro(academic) = pc+ro(std)
+ * ro(std_comma) = pc+ro(std)
+ * ro(comma) = pc+ro(basic)
+ * ru(os) = pc+ru(os_legacy)
+ * sapmi(basic) = pc+no(smi)
+ * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys)
+ * sapmi(sefi) = pc+fi(smi)
+ * sin(phonetic-static) = pc+in(sin_phonetic)
+ * syr(basic) = pc+sy(syc)
+ * syr(phonetic) = pc+sy(syc_phonetic)
+ * tam(INSCRIPT) = pc+in(tam)
+ * tam(UNI) = pc+in(tam_unicode)
+ * tam(TAB) = pc+in(tam_TAB)
+ * tam(TSCII) = pc+in(tam_TSCII)
+ * tel(basic) = pc+in(tel)
+ * yu(basic) = pc+srp(latin)
+ * yu(unicode) = pc+srp(latinunicode)
+ * yu(yz) = pc+srp(latinyz)
+ * yu(unicodeyz) = pc+srp(latinunicodeyz)
+ ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1])
+ amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1])
+ sun4 * = latin+sun_vndr/us(sun4)+%l[1]%(v[1])
+ sun5 * = latin+sun_vndr/us(sun5)+%l[1]%(v[1])
+ macintosh_old us = macintosh_vndr/us(oldmac)
+ macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1])
+ macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1])
+ $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1])
+ thinkpad br = pc+%l[1](thinkpad)
+ * * = pc+%l[1]%(v[1])
+
+! model layout[1] variant[1] = symbols
+ * ben basic = pc+in(ben)
+ * ben probhat = pc+in(ben_probhat)
+ * dev basic = pc+in(deva)
+ * dvorak $dvoraklayouts = pc+%v(dvorak)
+ * dvorak basic = pc+us(dvorak)
+ * dvorak pl_basic = pc+pl(dvorak)
+ * dvorak pl = pc+pl(dvorak_quotes)
+ * dvorak pl_altquotes = pc+pl(dvorak_altquotes)
+ * dzdwi basic = pc+bt(basic)
+ * fi basic = pc+fi(classic)
+ * ge azerty_tskapo = pc+fr(geo)
+ * guj basic = pc+in(guj)
+ * gur basic = pc+in(guru)
+ * ie laptop = pc+ie(basic)
+ * ie CloGaelachLaptop = pc+ie(CloGaelach)
+ * il si1452 = pc+ie(basic)
+ * iu basic = pc+ca(ike)
+ * lo basic = pc+la(basic)
+ * kan basic = pc+in(kan)
+ * mal basic = pc+in(mal)
+ * mal mlplusnum = pc+in(mal)
+ * ogham basic = pc+ie(ogam)
+ * ogham laptop = pc+ie(ogam)
+ * ogham is434 = pc+ie(ogam_is434)
+ * ogham is434laptop = pc+ie(ogam_is434)
+ * ori basic = pc+in(ori)
+ * ro de = pc+ro(winkeys)
+ * ro us = pc+ro(std)
+ * ro academic = pc+ro(std)
+ * ro std_comma = pc+ro(std)
+ * ro comma = pc+ro(basic)
+ * ru os = pc+ru(os_legacy)
+ * sapmi basic = pc+no(smi)
+ * sapmi nodeadkeys = pc+no(smi_nodeadkeys)
+ * sapmi sefi = pc+fi(smi)
+ * sin phonetic-static = pc+in(sin_phonetic)
+ * syr basic = pc+sy(syc)
+ * syr phonetic = pc+sy(syc_phonetic)
+ * tam INSCRIPT = pc+in(tam)
+ * tam UNI = pc+in(tam_unicode)
+ * tam TAB = pc+in(tam_TAB)
+ * tam TSCII = pc+in(tam_TSCII)
+ * tel basic = pc+in(tel)
+ * yu basic = pc+srp(latin)
+ * yu unicode = pc+srp(latinunicode)
+ * yu yz = pc+srp(latinyz)
+ * yu unicodeyz = pc+srp(latinunicodeyz)
+
+! layout[2] = symbols
+ ar = +ara%(v[2]):2
+ ben = +in(ben)%(v[2]):2
+ bs = +ba%(v[2]):2
+ cs = +rs%(v[2]):2
+ cz_qwerty = +cz(qwerty)%(v[2]):2
+ dev = +in(deva)%(v[2]):2
+ dvorak = +us(dvorak)%(v[2]):2
+ dzdwi = +bt%(v[2]):2
+ el = +gr%(v[2]):2
+ en_US = +latin%(v[2]):2
+ guj = +in(guj)%(v[2]):2
+ gur = +in(guru)%(v[2]):2
+ iu = +ca(ike)%(v[2]):2
+ lo = +la%(v[2]):2
+ kan = +in(kan)%(v[2]):2
+ mi = +mao%(v[2]):2
+ ml = +in(mal)%(v[2]):2
+ ogham = +ie(ogam)%(v[2]):2
+ ori = +ie(ori)%(v[2]):2
+ sapmi = +no(smi)%(v[2]):2
+ sr = +srp%(v[2]):2
+ syr = +sy(syc)%(v[2]):2
+ tel = +in(tel)%(v[2]):2
+ tml = +in(tam)%(v[2]):2
+ yu = +srp%(v[2]):2
+ fr-latin9 = +fr(latin9)%(v[2]):2
+ us_intl = +us(alt-intl)%(v[2]):2
+ ben(basic) = +in(ben):2
+ ben(probhat) = +in(ben_probhat):2
+ dev(basic) = +in(deva):2
+ dvorak($dvoraklayouts) = +%v(dvorak):2
+ dvorak(basic) = +us(dvorak):2
+ dvorak(pl_basic) = +pl(dvorak):2
+ dvorak(pl) = +pl(dvorak_quotes):2
+ dvorak(pl_altquotes) = +pl(dvorak_altquotes):2
+ dzdwi(basic) = +bt(basic):2
+ fi(basic) = +fi(classic):2
+ ge(azerty_tskapo) = +fr(geo):2
+ guj(basic) = +in(guj):2
+ gur(basic) = +in(guru):2
+ ie(laptop) = +ie(basic):2
+ ie(CloGaelachLaptop) = +ie(CloGaelach):2
+ il(si1452) = +ie(basic):2
+ iu(basic) = +ca(ike):2
+ lo(basic) = +la(basic):2
+ kan(basic) = +in(kan):2
+ mal(basic) = +in(mal):2
+ mal(mlplusnum) = +in(mal):2
+ ogham(basic) = +ie(ogam):2
+ ogham(laptop) = +ie(ogam):2
+ ogham(is434) = +ie(ogam_is434):2
+ ogham(is434laptop) = +ie(ogam_is434):2
+ ori(basic) = +in(ori):2
+ ro(de) = +ro(winkeys):2
+ ro(us) = +ro(std):2
+ ro(academic) = +ro(std):2
+ ro(std_comma) = +ro(std):2
+ ro(comma) = +ro(basic):2
+ ru(os) = +ru(os_legacy):2
+ sapmi(basic) = +no(smi):2
+ sapmi(nodeadkeys) = +no(smi_nodeadkeys):2
+ sapmi(sefi) = +fi(smi):2
+ sin(phonetic-static) = +in(sin_phonetic):2
+ syr(basic) = +sy(syc):2
+ syr(phonetic) = +sy(syc_phonetic):2
+ tam(INSCRIPT) = +in(tam):2
+ tam(UNI) = +in(tam_unicode):2
+ tam(TAB) = +in(tam_TAB):2
+ tam(TSCII) = +in(tam_TSCII):2
+ tel(basic) = +in(tel):2
+ yu(basic) = +srp(latin):2
+ yu(unicode) = +srp(latinunicode):2
+ yu(yz) = +srp(latinyz):2
+ yu(unicodeyz) = +srp(latinunicodeyz):2
+ * = +%l[2]%(v[2]):2
+
+! layout[3] = symbols
+ ar = +ara%(v[3]):3
+ ben = +in(ben)%(v[3]):3
+ bs = +ba%(v[3]):3
+ cs = +rs%(v[3]):3
+ cz_qwerty = +cz(qwerty)%(v[3]):3
+ dev = +in(deva)%(v[3]):3
+ dvorak = +us(dvorak)%(v[3]):3
+ dzdwi = +bt%(v[3]):3
+ el = +gr%(v[3]):3
+ en_US = +latin%(v[3]):3
+ guj = +in(guj)%(v[3]):3
+ gur = +in(guru)%(v[3]):3
+ iu = +ca(ike)%(v[3]):3
+ lo = +la%(v[3]):3
+ kan = +in(kan)%(v[3]):3
+ mi = +mao%(v[3]):3
+ ml = +in(mal)%(v[3]):3
+ ogham = +ie(ogam)%(v[3]):3
+ ori = +ie(ori)%(v[3]):3
+ sapmi = +no(smi)%(v[3]):3
+ sr = +srp%(v[3]):3
+ syr = +sy(syc)%(v[3]):3
+ tel = +in(tel)%(v[3]):3
+ tml = +in(tam)%(v[3]):3
+ yu = +srp%(v[3]):3
+ fr-latin9 = +fr(latin9)%(v[3]):3
+ us_intl = +us(alt-intl)%(v[3]):3
+ ben(basic) = +in(ben):3
+ ben(probhat) = +in(ben_probhat):3
+ dev(basic) = +in(deva):3
+ dvorak($dvoraklayouts) = +%v(dvorak):3
+ dvorak(basic) = +us(dvorak):3
+ dvorak(pl_basic) = +pl(dvorak):3
+ dvorak(pl) = +pl(dvorak_quotes):3
+ dvorak(pl_altquotes) = +pl(dvorak_altquotes):3
+ dzdwi(basic) = +bt(basic):3
+ fi(basic) = +fi(classic):3
+ ge(azerty_tskapo) = +fr(geo):3
+ guj(basic) = +in(guj):3
+ gur(basic) = +in(guru):3
+ ie(laptop) = +ie(basic):3
+ ie(CloGaelachLaptop) = +ie(CloGaelach):3
+ il(si1452) = +ie(basic):3
+ iu(basic) = +ca(ike):3
+ lo(basic) = +la(basic):3
+ kan(basic) = +in(kan):3
+ mal(basic) = +in(mal):3
+ mal(mlplusnum) = +in(mal):3
+ ogham(basic) = +ie(ogam):3
+ ogham(laptop) = +ie(ogam):3
+ ogham(is434) = +ie(ogam_is434):3
+ ogham(is434laptop) = +ie(ogam_is434):3
+ ori(basic) = +in(ori):3
+ ro(de) = +ro(winkeys):3
+ ro(us) = +ro(std):3
+ ro(academic) = +ro(std):3
+ ro(std_comma) = +ro(std):3
+ ro(comma) = +ro(basic):3
+ ru(os) = +ru(os_legacy):3
+ sapmi(basic) = +no(smi):3
+ sapmi(nodeadkeys) = +no(smi_nodeadkeys):3
+ sapmi(sefi) = +fi(smi):3
+ sin(phonetic-static) = +in(sin_phonetic):3
+ syr(basic) = +sy(syc):3
+ syr(phonetic) = +sy(syc_phonetic):3
+ tam(INSCRIPT) = +in(tam):3
+ tam(UNI) = +in(tam_unicode):3
+ tam(TAB) = +in(tam_TAB):3
+ tam(TSCII) = +in(tam_TSCII):3
+ tel(basic) = +in(tel):3
+ yu(basic) = +srp(latin):3
+ yu(unicode) = +srp(latinunicode):3
+ yu(yz) = +srp(latinyz):3
+ yu(unicodeyz) = +srp(latinunicodeyz):3
+ * = +%l[3]%(v[3]):3
+
+! layout[4] = symbols
+ ar = +ara%(v[4]):4
+ ben = +in(ben)%(v[4]):4
+ bs = +ba%(v[4]):4
+ cs = +rs%(v[4]):4
+ cz_qwerty = +cz(qwerty)%(v[4]):4
+ dev = +in(deva)%(v[4]):4
+ dvorak = +us(dvorak)%(v[4]):4
+ dzdwi = +bt%(v[4]):4
+ el = +gr%(v[4]):4
+ en_US = +latin%(v[4]):4
+ guj = +in(guj)%(v[4]):4
+ gur = +in(guru)%(v[4]):4
+ iu = +ca(ike)%(v[4]):4
+ lo = +la%(v[4]):4
+ kan = +in(kan)%(v[4]):4
+ mi = +mao%(v[4]):4
+ ml = +in(mal)%(v[4]):4
+ ogham = +ie(ogam)%(v[4]):4
+ ori = +ie(ori)%(v[4]):4
+ sapmi = +no(smi)%(v[4]):4
+ sr = +srp%(v[4]):4
+ syr = +sy(syc)%(v[4]):4
+ tel = +in(tel)%(v[4]):4
+ tml = +in(tam)%(v[4]):4
+ yu = +srp%(v[4]):4
+ fr-latin9 = +fr(latin9)%(v[4]):4
+ us_intl = +us(alt-intl)%(v[4]):4
+ ben(basic) = +in(ben):4
+ ben(probhat) = +in(ben_probhat):4
+ dev(basic) = +in(deva):4
+ dvorak($dvoraklayouts) = +%v(dvorak):4
+ dvorak(basic) = +us(dvorak):4
+ dvorak(pl_basic) = +pl(dvorak):4
+ dvorak(pl) = +pl(dvorak_quotes):4
+ dvorak(pl_altquotes) = +pl(dvorak_altquotes):4
+ dzdwi(basic) = +bt(basic):4
+ fi(basic) = +fi(classic):4
+ ge(azerty_tskapo) = +fr(geo):4
+ guj(basic) = +in(guj):4
+ gur(basic) = +in(guru):4
+ ie(laptop) = +ie(basic):4
+ ie(CloGaelachLaptop) = +ie(CloGaelach):4
+ il(si1452) = +ie(basic):4
+ iu(basic) = +ca(ike):4
+ lo(basic) = +la(basic):4
+ kan(basic) = +in(kan):4
+ mal(basic) = +in(mal):4
+ mal(mlplusnum) = +in(mal):4
+ ogham(basic) = +ie(ogam):4
+ ogham(laptop) = +ie(ogam):4
+ ogham(is434) = +ie(ogam_is434):4
+ ogham(is434laptop) = +ie(ogam_is434):4
+ ori(basic) = +in(ori):4
+ ro(de) = +ro(winkeys):4
+ ro(us) = +ro(std):4
+ ro(academic) = +ro(std):4
+ ro(std_comma) = +ro(std):4
+ ro(comma) = +ro(basic):4
+ ru(os) = +ru(os_legacy):4
+ sapmi(basic) = +no(smi):4
+ sapmi(nodeadkeys) = +no(smi_nodeadkeys):4
+ sapmi(sefi) = +fi(smi):4
+ sin(phonetic-static) = +in(sin_phonetic):4
+ syr(basic) = +sy(syc):4
+ syr(phonetic) = +sy(syc_phonetic):4
+ tam(INSCRIPT) = +in(tam):4
+ tam(UNI) = +in(tam_unicode):4
+ tam(TAB) = +in(tam_TAB):4
+ tam(TSCII) = +in(tam_TSCII):4
+ tel(basic) = +in(tel):4
+ yu(basic) = +srp(latin):4
+ yu(unicode) = +srp(latinunicode):4
+ yu(yz) = +srp(latinyz):4
+ yu(unicodeyz) = +srp(latinunicodeyz):4
+ * = +%l[4]%(v[4]):4
+
+! layout[2] variant[2] = symbols
+ ben basic = +in(ben):2
+ ben probhat = +in(ben_probhat):2
+ dev basic = +in(deva):2
+ dvorak $dvoraklayouts = +%v(dvorak):2
+ dvorak basic = +us(dvorak):2
+ dvorak pl_basic = +pl(dvorak):2
+ dvorak pl = +pl(dvorak_quotes):2
+ dvorak pl_altquotes = +pl(dvorak_altquotes):2
+ dzdwi basic = +bt(basic):2
+ fi basic = +fi(classic):2
+ ge azerty_tskapo = +fr(geo):2
+ guj basic = +in(guj):2
+ gur basic = +in(guru):2
+ ie laptop = +ie(basic):2
+ ie CloGaelachLaptop = +ie(CloGaelach):2
+ il si1452 = +ie(basic):2
+ iu basic = +ca(ike):2
+ lo basic = +la(basic):2
+ kan basic = +in(kan):2
+ mal basic = +in(mal):2
+ mal mlplusnum = +in(mal):2
+ ogham basic = +ie(ogam):2
+ ogham laptop = +ie(ogam):2
+ ogham is434 = +ie(ogam_is434):2
+ ogham is434laptop = +ie(ogam_is434):2
+ ori basic = +in(ori):2
+ ro de = +ro(winkeys):2
+ ro us = +ro(std):2
+ ro academic = +ro(std):2
+ ro std_comma = +ro(std):2
+ ro comma = +ro(basic):2
+ ru os = +ru(os_legacy):2
+ sapmi basic = +no(smi):2
+ sapmi nodeadkeys = +no(smi_nodeadkeys):2
+ sapmi sefi = +fi(smi):2
+ sin phonetic-static = +in(sin_phonetic):2
+ syr basic = +sy(syc):2
+ syr phonetic = +sy(syc_phonetic):2
+ tam INSCRIPT = +in(tam):2
+ tam UNI = +in(tam_unicode):2
+ tam TAB = +in(tam_TAB):2
+ tam TSCII = +in(tam_TSCII):2
+ tel basic = +in(tel):2
+ yu basic = +srp(latin):2
+ yu unicode = +srp(latinunicode):2
+ yu yz = +srp(latinyz):2
+ yu unicodeyz = +srp(latinunicodeyz):2
+
+! layout[3] variant[3] = symbols
+ ben basic = +in(ben):3
+ ben probhat = +in(ben_probhat):3
+ dev basic = +in(deva):3
+ dvorak $dvoraklayouts = +%v(dvorak):3
+ dvorak basic = +us(dvorak):3
+ dvorak pl_basic = +pl(dvorak):3
+ dvorak pl = +pl(dvorak_quotes):3
+ dvorak pl_altquotes = +pl(dvorak_altquotes):3
+ dzdwi basic = +bt(basic):3
+ fi basic = +fi(classic):3
+ ge azerty_tskapo = +fr(geo):3
+ guj basic = +in(guj):3
+ gur basic = +in(guru):3
+ ie laptop = +ie(basic):3
+ ie CloGaelachLaptop = +ie(CloGaelach):3
+ il si1452 = +ie(basic):3
+ iu basic = +ca(ike):3
+ lo basic = +la(basic):3
+ kan basic = +in(kan):3
+ mal basic = +in(mal):3
+ mal mlplusnum = +in(mal):3
+ ogham basic = +ie(ogam):3
+ ogham laptop = +ie(ogam):3
+ ogham is434 = +ie(ogam_is434):3
+ ogham is434laptop = +ie(ogam_is434):3
+ ori basic = +in(ori):3
+ ro de = +ro(winkeys):3
+ ro us = +ro(std):3
+ ro academic = +ro(std):3
+ ro std_comma = +ro(std):3
+ ro comma = +ro(basic):3
+ ru os = +ru(os_legacy):3
+ sapmi basic = +no(smi):3
+ sapmi nodeadkeys = +no(smi_nodeadkeys):3
+ sapmi sefi = +fi(smi):3
+ sin phonetic-static = +in(sin_phonetic):3
+ syr basic = +sy(syc):3
+ syr phonetic = +sy(syc_phonetic):3
+ tam INSCRIPT = +in(tam):3
+ tam UNI = +in(tam_unicode):3
+ tam TAB = +in(tam_TAB):3
+ tam TSCII = +in(tam_TSCII):3
+ tel basic = +in(tel):3
+ yu basic = +srp(latin):3
+ yu unicode = +srp(latinunicode):3
+ yu yz = +srp(latinyz):3
+ yu unicodeyz = +srp(latinunicodeyz):3
+
+! layout[4] variant[4] = symbols
+ ben basic = +in(ben):4
+ ben probhat = +in(ben_probhat):4
+ dev basic = +in(deva):4
+ dvorak $dvoraklayouts = +%v(dvorak):4
+ dvorak basic = +us(dvorak):4
+ dvorak pl_basic = +pl(dvorak):4
+ dvorak pl = +pl(dvorak_quotes):4
+ dvorak pl_altquotes = +pl(dvorak_altquotes):4
+ dzdwi basic = +bt(basic):4
+ fi basic = +fi(classic):4
+ ge azerty_tskapo = +fr(geo):4
+ guj basic = +in(guj):4
+ gur basic = +in(guru):4
+ ie laptop = +ie(basic):4
+ ie CloGaelachLaptop = +ie(CloGaelach):4
+ il si1452 = +ie(basic):4
+ iu basic = +ca(ike):4
+ lo basic = +la(basic):4
+ kan basic = +in(kan):4
+ mal basic = +in(mal):4
+ mal mlplusnum = +in(mal):4
+ ogham basic = +ie(ogam):4
+ ogham laptop = +ie(ogam):4
+ ogham is434 = +ie(ogam_is434):4
+ ogham is434laptop = +ie(ogam_is434):4
+ ori basic = +in(ori):4
+ ro de = +ro(winkeys):4
+ ro us = +ro(std):4
+ ro academic = +ro(std):4
+ ro std_comma = +ro(std):4
+ ro comma = +ro(basic):4
+ ru os = +ru(os_legacy):4
+ sapmi basic = +no(smi):4
+ sapmi nodeadkeys = +no(smi_nodeadkeys):4
+ sapmi sefi = +fi(smi):4
+ sin phonetic-static = +in(sin_phonetic):4
+ syr basic = +sy(syc):4
+ syr phonetic = +sy(syc_phonetic):4
+ tam INSCRIPT = +in(tam):4
+ tam UNI = +in(tam_unicode):4
+ tam TAB = +in(tam_TAB):4
+ tam TSCII = +in(tam_TSCII):4
+ tel basic = +in(tel):4
+ yu basic = +srp(latin):4
+ yu unicode = +srp(latinunicode):4
+ yu yz = +srp(latinyz):4
+ yu unicodeyz = +srp(latinunicodeyz):4
+
+! model = symbols
+ * = +inet(evdev)
+
+! model layout = compat
+ pc98 nec_vndr/jp = pc98(basic)
+ * jp = complete+japan
+ olpc * = olpc
+ * * = complete
+
+! model layout[1] = compat
+ * * = complete
+
+! model = types
+ $macs = complete+numpad(mac)
+ * = complete
+
+! layout option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle)
+
+! layout[1] option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1
+
+! layout[2] option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2
+
+! layout[3] option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3
+
+! layout[4] option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4
+
+! option = symbols
+ grp:shift_toggle = +group(shifts_toggle)
+ altwin:menu = +altwin(menu)
+ altwin:meta_alt = +altwin(meta_alt)
+ altwin:ctrl_win = +altwin(ctrl_win)
+ altwin:meta_win = +altwin(meta_win)
+ altwin:left_meta_win = +altwin(left_meta_win)
+ altwin:super_win = +altwin(super_win)
+ altwin:hyper_win = +altwin(hyper_win)
+ altwin:alt_super_win = +altwin(alt_super_win)
+ altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin)
+ grp:switch = +group(switch)
+ grp:lswitch = +group(lswitch)
+ grp:win_switch = +group(win_switch)
+ grp:lwin_switch = +group(lwin_switch)
+ grp:rwin_switch = +group(rwin_switch)
+ grp:toggle = +group(toggle)
+ grp:shifts_toggle = +group(shifts_toggle)
+ grp:ctrls_toggle = +group(ctrls_toggle)
+ grp:alts_toggle = +group(alts_toggle)
+ grp:ctrl_shift_toggle = +group(ctrl_shift_toggle)
+ grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle)
+ grp:caps_toggle = +capslock(grouplock)
+ grp:caps_switch = +capslock(groupshift)
+ grp:shift_caps_toggle = +group(shift_caps_toggle)
+ grp:shift_caps_switch = +group(shift_caps_switch)
+ grp:alt_caps_toggle = +group(alt_caps_toggle)
+ grp:ctrl_alt_toggle = +group(ctrl_alt_toggle)
+ grp:alt_shift_toggle = +group(alt_shift_toggle)
+ grp:menu_toggle = +group(menu_toggle)
+ grp:lwin_toggle = +group(lwin_toggle)
+ grp:rwin_toggle = +group(rwin_toggle)
+ grp:lshift_toggle = +group(lshift_toggle)
+ grp:rshift_toggle = +group(rshift_toggle)
+ grp:rctrl_switch = +group(rctrl_switch)
+ grp:lctrl_toggle = +group(lctrl_toggle)
+ grp:rctrl_toggle = +group(rctrl_toggle)
+ grp:lalt_toggle = +group(lalt_toggle)
+ lv3:switch = +level3(switch)
+ lv3:ralt_switch = +level3(ralt_switch)
+ lv3:ralt_switch_multikey = +level3(ralt_switch_multikey)
+ lv3:ralt_alt = +level3(ralt_alt)
+ lv3:lalt_switch = +level3(lalt_switch)
+ lv3:alt_switch = +level3(alt_switch)
+ lv3:menu_switch = +level3(menu_switch)
+ lv3:win_switch = +level3(win_switch)
+ lv3:lwin_switch = +level3(lwin_switch)
+ lv3:rwin_switch = +level3(rwin_switch)
+ caps:capslock = +capslock(capslock)
+ caps:shiftlock = +capslock(shiftlock)
+ caps:swapescape = +capslock(swapescape)
+ ctrl:nocaps = +ctrl(nocaps)
+ ctrl:swapcaps = +ctrl(swapcaps)
+ ctrl:ctrl_ac = +ctrl(ctrl_ac)
+ ctrl:ctrl_aa = +ctrl(ctrl_aa)
+ ctrl:ctrl_ra = +ctrl(ctrl_ra)
+ compose:ralt = +compose(ralt)
+ compose:lwin = +compose(lwin)
+ compose:rwin = +compose(rwin)
+ compose:menu = +compose(menu)
+ compose:rctrl = +compose(rctrl)
+ compose:caps = +compose(caps)
+ compose:102 = +compose(102)
+ srvrkeys:none = +srvr_ctrl(no_srvr_keys)
+ eurosign:e = +eurosign(e)
+ eurosign:2 = +eurosign(2)
+ eurosign:4 = +eurosign(4)
+ eurosign:5 = +eurosign(5)
+ keypad:oss = +keypad(oss)
+ keypad:legacy = +keypad(legacy)
+ keypad:legacy_wang = +keypad(legacy_wang)
+ keypad:oss_wang = +keypad(oss_wang)
+ keypad:future = +keypad(future)
+ keypad:future_wang = +keypad(future_wang)
+ keypad:phone_hex = +keypad(phone_hex)
+ nbsp:none = +nbsp(none)
+ nbsp:level2 = +nbsp(level2)
+ nbsp:level3 = +nbsp(level3)
+ nbsp:level3s = +nbsp(level3s)
+ nbsp:level3n = +nbsp(level3n)
+ nbsp:level4 = +nbsp(level4)
+ nbsp:level4n = +nbsp(level4n)
+ nbsp:level4nl = +nbsp(level4nl)
+ japan:nicola_f_bs = +jp(nicola_f_bs)
+ kpdl:dot = +kpdl(dot)
+ kpdl:comma = +kpdl(comma)
+ kpdl:dotoss = +kpdl(dotoss)
+ kpdl:dotoss_latin9 = +kpdl(dotoss_latin9)
+ kpdl:commaoss = +kpdl(commaoss)
+ kpdl:momayyezoss = +kpdl(momayyezoss)
+ kpdl:kposs = +kpdl(kposs)
+ shift:breaks_caps = +shift(breaks_caps)
+
+
+! option = compat
+ grp_led:num = +lednum(group_lock)
+ grp_led:caps = +ledcaps(group_lock)
+ grp_led:scroll = +ledscroll(group_lock)
+ grp:caps_toggle = +ledcaps(group_lock)
+ japan:kana_lock = +japan(kana_lock)
+
+
+! option = types
+ caps:internal = +caps(internal)
+ caps:internal_nocancel = +caps(internal_nocancel)
+ caps:shift = +caps(shift)
+ caps:shift_nocancel = +caps(shift_nocancel)
+ numpad:pc = +numpad(pc)
+ numpad:mac = +numpad(mac)
+ numpad:microsoft = +numpad(microsoft)
diff --git a/xorg-server/xkbdata.src/rules/evdev.lst b/xorg-server/xkbdata.src/rules/evdev.lst
new file mode 100644
index 000000000..17742b8e6
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/evdev.lst
@@ -0,0 +1,683 @@
+! model
+ pc101 Generic 101-key PC
+ pc102 Generic 102-key (Intl) PC
+ pc104 Generic 104-key PC
+ pc105 Generic 105-key (Intl) PC
+ dell101 Dell 101-key PC
+ latitude Dell Latitude series laptop
+ dellm65 Dell Precision M65
+ everex Everex STEPnote
+ flexpro Keytronic FlexPro
+ microsoft Microsoft Natural
+ omnikey101 Northgate OmniKey 101
+ winbook Winbook Model XP5
+ jp106 Japanese 106-key
+ pc98 PC-98xx Series
+ a4techKB21 A4Tech KB-21
+ a4techKBS8 A4Tech KBS-8
+ a4_rfkb23 A4Tech Wireless Desktop RFKB-23
+ abnt2 Brazilian ABNT2
+ airkey Acer AirKey V
+ acpi ACPI Standard
+ azonaRF2300 Azona RF2300 wireless Internet Keyboard
+ scorpius Advance Scorpius KI
+ brother Brother Internet Keyboard
+ 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
+ cherryblue Cherry Blue Line CyBo@rd
+ cherryblueb Cherry CyMotion Master XPress
+ cherrybluea Cherry Blue Line CyBo@rd (alternate option)
+ cherrycyboard Cherry CyBo@rd USB-Hub
+ chicony Chicony Internet Keyboard
+ chicony0108 Chicony KU-0108
+ chicony9885 Chicony KB-9885
+ compaqeak8 Compaq Easy Access Keyboard
+ compaqik7 Compaq Internet Keyboard (7 keys)
+ compaqik13 Compaq Internet Keyboard (13 keys)
+ compaqik18 Compaq Internet Keyboard (18 keys)
+ cymotionlinux Cherry CyMotion Master Linux
+ armada Laptop/notebook Compaq (eg. Armada) Laptop Keyboard
+ presario Laptop/notebook Compaq (eg. Presario) Internet Keyboard
+ ipaq Compaq iPaq Keyboard
+ dell Dell
+ dellsk8125 Dell SK-8125
+ dellsk8135 Dell SK-8135
+ dellusbmm Dell USB Multimedia Keyboard
+ inspiron Dell Laptop/notebook Inspiron 6xxx/8xxx
+ precision_m Dell Laptop/notebook Precision M series
+ dexxa Dexxa Wireless Desktop Keyboard
+ diamond Diamond 9801 / 9802 series
+ dtk2000 DTK2000
+ ennyah_dkb1008 Ennyah DKB-1008
+ fscaa1667g Fujitsu-Siemens Computers AMILO A1667G laptop
+ genius Genius Comfy KB-16M / Genius MM Keyboard KWD-910
+ geniuscomfy Genius Comfy KB-12e
+ geniuscomfy2 Genius Comfy KB-21e-Scroll
+ geniuskb19e Genius KB-19e NB
+ gyration Gyration
+ logitech_base Logitech Generic Keyboard
+ logitech_g15 Logitech G15 extra keys via G15daemon
+ hpi6 Hewlett-Packard Internet Keyboard
+ hp2501 Hewlett-Packard SK-2501 Multimedia Keyboard
+ hp2505 Hewlett-Packard SK-2505 Internet Keyboard
+ hpxe3gc Hewlett-Packard Omnibook XE3 GC
+ hpxe3gf Hewlett-Packard Omnibook XE3 GF
+ hpxt1000 Hewlett-Packard Omnibook XT1000
+ hpzt11xx Hewlett-Packard Pavilion ZT11xx
+ hp500fa Hewlett-Packard Omnibook 500 FA
+ hp5xx Hewlett-Packard Omnibook 5xx
+ hp5181 Hewlett-Packard Internet Keyboard 5181
+ hp5185 Hewlett-Packard Internet Keyboard 5185
+ hpnx9020 Hewlett-Packard nx9020
+ hp6000 Hewlett-Packard Omnibook 6000/6100
+ honeywell_euroboard Honeywell Euroboard
+ rapidaccess IBM Rapid Access
+ rapidaccess2 IBM Rapid Access II
+ rapidaccess2a IBM Rapid Access II (alternate option)
+ thinkpad IBM ThinkPad 560Z/600/600E/A22E
+ thinkpadintl IBM ThinkPad 560Z/600/600E/A22E, Intl
+ thinkpad60 IBM ThinkPad R60/T60/R61/T61
+ thinkpadz60 IBM ThinkPad Z60m/Z60t/Z61m/Z61t
+ ibm_spacesaver IBM Space Saver
+ logiaccess Logitech Access Keyboard
+ logiclx300 Logitech Cordless Desktop LX-300
+ logii350 Logitech Internet 350 Keyboard
+ logimel Logitech Media Elite Keyboard
+ 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 (alternate option)
+ logicdpa2 Logitech Cordless Desktop Pro (alternate option2)
+ logicfn Logitech Cordless Freedom/Desktop Navigator
+ logicdn Logitech Cordless Desktop Navigator
+ logiitc Logitech iTouch Cordless Keyboard (model Y-RB6)
+ logiik Logitech Internet Keyboard
+ itouch Logitech iTouch
+ logicink Logitech Internet Navigator Keyboard
+ logiex110 Logitech Cordless Desktop EX110
+ logiinkse Logitech iTouch Internet Navigator Keyboard SE
+ logiinkseusb Logitech iTouch Internet Navigator Keyboard SE (USB)
+ logiultrax Logitech Ultra-X Keyboard
+ logiultraxc Logitech Ultra-X Cordless Media Desktop Keyboard
+ logidinovo Logitech diNovo Keyboard
+ logidinovoedge Logitech diNovo Edge Keyboard
+ mx1998 Memorex MX1998
+ mx2500 Memorex MX2500 EZ-Access Keyboard
+ mx2750 Memorex MX2750
+ microsoft7000 Microsoft Natural Wireless Ergonomic Keyboard 7000
+ microsoftinet Microsoft Internet Keyboard
+ microsoftpro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro
+ microsoftprousb Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro
+ microsoftprooem Microsoft Natural Keyboard Pro OEM
+ vsonku306 ViewSonic KU-306 Internet Keyboard
+ microsoftprose Microsoft Internet Keyboard Pro, Swedish
+ microsoftoffice Microsoft Office Keyboard
+ microsoftmult Microsoft Wireless Multimedia Keyboard 1.0A
+ microsoftelite Microsoft Natural Keyboard Elite
+ oretec Ortek MCK-800 MM/Internet keyboard
+ propeller Propeller Voyager (KTEZ-1000)
+ qtronix QTronix Scorpius 98N+
+ samsung4500 Samsung SDM 4500P
+ samsung4510 Samsung SDM 4510P
+ sk1300 SK-1300
+ sk2500 SK-2500
+ sk6200 SK-6200
+ sk7100 SK-7100
+ sp_inet Super Power Multimedia Keyboard
+ sven SVEN Ergonomic 2500
+ sven303 SVEN Slim 303
+ symplon Symplon PaceBook (tablet PC)
+ toshiba_s3000 Toshiba Satellite S3000
+ trust Trust Wireless Keyboard Classic
+ trustda Trust Direct Access Keyboard
+ yahoo Yahoo! Internet Keyboard
+ macbook78 MacBook/MacBook Pro
+ macbook79 MacBook/MacBook Pro (Intl)
+ macintosh Macintosh
+ macintosh_old Macintosh Old
+ macintosh_hhk Happy Hacking Keyboard 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
+ silvercrest SILVERCREST Multimedia Wireless Keyboard
+ emachines Laptop/notebook eMachines m68xx
+ kr106 Korean 106-key
+ evdev Evdev-managed keyboard
+ benqx BenQ X-Touch
+ benqx730 BenQ X-Touch 730
+ benqx800 BenQ X-Touch 800
+ hhk Happy Hacking Keyboard
+ classmate Classmate PC
+ olpc OLPC
+ sun6 Sun Type 5/6
+
+! layout
+ us USA
+ ad Andorra
+ af Afghanistan
+ ara Arabic
+ al Albania
+ am Armenia
+ az Azerbaijan
+ by Belarus
+ be Belgium
+ bd Bangladesh
+ in India
+ ba Bosnia and Herzegovina
+ br Brazil
+ bg Bulgaria
+ ma Morocco
+ mm Myanmar
+ ca Canada
+ cd Congo, Democratic Republic of the
+ cn China
+ hr Croatia
+ cz Czechia
+ dk Denmark
+ nl Netherlands
+ bt Bhutan
+ ee Estonia
+ ir Iran
+ iq Iraq
+ fo Faroe Islands
+ fi Finland
+ fr France
+ gh Ghana
+ gn Guinea
+ ge Georgia
+ de Germany
+ gr Greece
+ hu Hungary
+ is Iceland
+ il Israel
+ it Italy
+ jp Japan
+ kg Kyrgyzstan
+ kh Cambodia
+ kz Kazakhstan
+ la Laos
+ latam Latin American
+ lt Lithuania
+ lv Latvia
+ mao Maori
+ me Montenegro
+ mk Macedonia
+ mt Malta
+ mn Mongolia
+ no Norway
+ pl Poland
+ pt Portugal
+ ro Romania
+ ru Russia
+ rs Serbia
+ si Slovenia
+ sk Slovakia
+ es Spain
+ se Sweden
+ ch Switzerland
+ sy Syria
+ tj Tajikistan
+ lk Sri Lanka
+ th Thailand
+ tr Turkey
+ ua Ukraine
+ gb United Kingdom
+ uz Uzbekistan
+ vn Vietnam
+ kr Korea, Republic of
+ nec_vndr/jp Japan (PC-98xx Series)
+ ie Ireland
+ pk Pakistan
+ mv Maldives
+ za South Africa
+ epo Esperanto
+ np Nepal
+ ng Nigeria
+ et Ethiopia
+ braille Braille
+
+! variant
+ chr us: Cherokee
+ euro us: With EuroSign on 5
+ intl us: International (with dead keys)
+ alt-intl us: Alternative international (former us_intl)
+ colemak us: Colemak
+ dvorak us: Dvorak
+ dvorak-intl us: Dvorak international
+ dvorak-l us: Left handed Dvorak
+ dvorak-r us: Right handed Dvorak
+ dvorak-classic us: Classic Dvorak
+ dvp us: Programmer Dvorak
+ rus us: Russian phonetic
+ mac us: Macintosh
+ altgr-intl us: International (AltGr dead keys)
+ olpc2 us: Group toggle on multiply/divide key
+ ps af: Pashto
+ uz af: Southern Uzbek
+ olpc-ps af: OLPC Pashto
+ olpc-fa af: OLPC Dari
+ olpc-uz af: OLPC Southern Uzbek
+ azerty ara: azerty
+ azerty_digits ara: azerty/digits
+ digits ara: digits
+ qwerty ara: qwerty
+ qwerty_digits ara: qwerty/digits
+ buckwalter ara: Buckwalter
+ phonetic am: Phonetic
+ phonetic-alt am: Alternative Phonetic
+ eastern am: Eastern
+ western am: Western
+ eastern-alt am: Alternative Eastern
+ cyrillic az: Cyrillic
+ winkeys by: Winkeys
+ latin by: Latin
+ iso-alternate be: ISO Alternate
+ nodeadkeys be: Eliminate dead keys
+ sundeadkeys be: Sun dead keys
+ wang be: Wang model 724 azerty
+ probhat bd: Probhat
+ ben in: Bengali
+ ben_probhat in: Bengali Probhat
+ guj in: Gujarati
+ guru in: Gurmukhi
+ jhelum in: Gurmukhi Jhelum
+ kan in: Kannada
+ mal in: Malayalam
+ mal_lalitha in: Malayalam Lalitha
+ ori in: Oriya
+ tam_unicode in: Tamil Unicode
+ tam_TAB in: Tamil TAB Typewriter
+ tam_TSCII in: Tamil TSCII Typewriter
+ tam in: Tamil
+ tel in: Telugu
+ urd in: Urdu
+ bolnagri in: Hindi Bolnagri
+ alternatequotes ba: Use guillemets for quotes
+ unicode ba: Use Bosnian digraphs
+ unicodeus ba: US keyboard with Bosnian digraphs
+ us ba: US keyboard with Bosnian letters
+ nodeadkeys br: Eliminate dead keys
+ dvorak br: Dvorak
+ nativo br: Nativo
+ nativo-us br: Nativo for USA keyboards
+ nativo-epo br: Nativo for Esperanto
+ phonetic bg: Phonetic
+ french ma: French
+ tifinagh ma: Tifinagh
+ tifinagh-alt ma: Tifinagh Alternative
+ tifinagh-alt-phonetic ma: Tifinagh Alternative Phonetic
+ tifinagh-extended ma: Tifinagh Extended
+ tifinagh-phonetic ma: Tifinagh Phonetic
+ tifinagh-extended-phonetic ma: Tifinagh Extended Phonetic
+ fr-dvorak ca: French Dvorak
+ fr-legacy ca: French (legacy)
+ multix ca: Multilingual
+ multi ca: Multilingual, first part
+ multi-2gr ca: Multilingual, second part
+ ike ca: Inuktitut
+ shs ca: Secwepemctsin
+ kut ca: Ktunaxa
+ tib cn: Tibetan
+ tib_asciinum cn: Tibetan (with ASCII numerals)
+ alternatequotes hr: Use guillemets for quotes
+ unicode hr: Use Croatian digraphs
+ unicodeus hr: US keyboard with Croatian digraphs
+ us hr: US keyboard with Croatian letters
+ bksl cz: With &lt;\|&gt; key
+ qwerty cz: qwerty
+ qwerty_bksl cz: qwerty, extended Backslash
+ ucw cz: UCW layout (accented letters only)
+ nodeadkeys dk: Eliminate dead keys
+ mac dk: Macintosh
+ mac_nodeadkeys dk: Macintosh, eliminate dead keys
+ dvorak dk: Dvorak
+ sundeadkeys nl: Sun dead keys
+ mac nl: Macintosh
+ std nl: Standard
+ nodeadkeys ee: Eliminate dead keys
+ dvorak ee: Dvorak
+ us ee: US keyboard with Estonian letters
+ pro ir: Pro
+ keypad ir: Keypad
+ pro_keypad ir: Pro Keypad
+ ku ir: Kurdish, Latin Q
+ ku_f ir: Kurdish, (F)
+ ku_alt ir: Kurdish, Latin Alt-Q
+ ku_ara ir: Kurdish, Arabic-Latin
+ ku iq: Kurdish, Latin Q
+ ku_f iq: Kurdish, (F)
+ ku_alt iq: Kurdish, Latin Alt-Q
+ ku_ara iq: Kurdish, Arabic-Latin
+ nodeadkeys fo: Eliminate dead keys
+ nodeadkeys fi: Eliminate dead keys
+ smi fi: Northern Saami
+ classic fi: Classic
+ mac fi: Macintosh
+ nodeadkeys fr: Eliminate dead keys
+ sundeadkeys fr: Sun dead keys
+ oss fr: Alternative
+ oss_latin9 fr: Alternative, latin-9 only
+ oss_nodeadkeys fr: Alternative, eliminate dead keys
+ oss_sundeadkeys fr: Alternative, Sun dead keys
+ latin9 fr: (Legacy) Alternative
+ latin9_nodeadkeys fr: (Legacy) Alternative, eliminate dead keys
+ latin9_sundeadkeys fr: (Legacy) Alternative, Sun dead keys
+ bepo fr: Bepo, ergonomic, Dvorak way
+ bepo_latin9 fr: Bepo, ergonomic, Dvorak way, latin-9 only
+ dvorak fr: Dvorak
+ mac fr: Macintosh
+ geo fr: Georgian AZERTY Tskapo
+ generic gh: Multilingual
+ akan gh: Akan
+ ewe gh: Ewe
+ fula gh: Fula
+ ga gh: Ga
+ hausa gh: Hausa
+ ergonomic ge: Ergonomic
+ mess ge: MESS
+ ru ge: Russian
+ os ge: Ossetian
+ deadacute de: Dead acute
+ deadgraveacute de: Dead grave acute
+ nodeadkeys de: Eliminate dead keys
+ ro de: Romanian keyboard with German letters
+ ro_nodeadkeys de: Romanian keyboard with German letters, eliminate dead keys
+ dvorak de: Dvorak
+ sundeadkeys de: Sun dead keys
+ neo de: Neostyle
+ mac de: Macintosh
+ mac_nodeadkeys de: Macintosh, eliminate dead keys
+ simple gr: Simple
+ extended gr: Extended
+ nodeadkeys gr: Eliminate dead keys
+ polytonic gr: Polytonic
+ standard hu: Standard
+ nodeadkeys hu: Eliminate dead keys
+ qwerty hu: qwerty
+ 101_qwertz_comma_dead hu: 101/qwertz/comma/Dead keys
+ 101_qwertz_comma_nodead hu: 101/qwertz/comma/Eliminate dead keys
+ 101_qwertz_dot_dead hu: 101/qwertz/dot/Dead keys
+ 101_qwertz_dot_nodead hu: 101/qwertz/dot/Eliminate dead keys
+ 101_qwerty_comma_dead hu: 101/qwerty/comma/Dead keys
+ 101_qwerty_comma_nodead hu: 101/qwerty/comma/Eliminate dead keys
+ 101_qwerty_dot_dead hu: 101/qwerty/dot/Dead keys
+ 101_qwerty_dot_nodead hu: 101/qwerty/dot/Eliminate dead keys
+ 102_qwertz_comma_dead hu: 102/qwertz/comma/Dead keys
+ 102_qwertz_comma_nodead hu: 102/qwertz/comma/Eliminate dead keys
+ 102_qwertz_dot_dead hu: 102/qwertz/dot/Dead keys
+ 102_qwertz_dot_nodead hu: 102/qwertz/dot/Eliminate dead keys
+ 102_qwerty_comma_dead hu: 102/qwerty/comma/Dead keys
+ 102_qwerty_comma_nodead hu: 102/qwerty/comma/Eliminate dead keys
+ 102_qwerty_dot_dead hu: 102/qwerty/dot/Dead keys
+ 102_qwerty_dot_nodead hu: 102/qwerty/dot/Eliminate dead keys
+ Sundeadkeys is: Sun dead keys
+ nodeadkeys is: Eliminate dead keys
+ mac is: Macintosh
+ dvorak is: Dvorak
+ lyx il: lyx
+ phonetic il: Phonetic
+ biblical il: Biblical Hebrew (Tiro)
+ nodeadkeys it: Eliminate dead keys
+ mac it: Macintosh
+ geo it: Georgian
+ kana jp: Kana
+ OADG109A jp: OADG 109A
+ ruskaz kz: Russian with Kazakh
+ kazrus kz: Kazakh with Russian
+ nodeadkeys latam: Eliminate dead keys
+ sundeadkeys latam: Sun dead keys
+ std lt: Standard
+ us lt: US keyboard with Lithuanian letters
+ ibm lt: IBM (LST 1205-92)
+ lekp lt: LEKP
+ lekpa lt: LEKPa
+ balticplus lt: Baltic+
+ apostrophe lv: Apostrophe (') variant
+ tilde lv: Tilde (~) variant
+ fkey lv: F-letter (F) variant
+ cyrillic me: Cyrillic
+ cyrillicyz me: Cyrillic, Z and ZHE swapped
+ latinunicode me: Latin unicode
+ latinyz me: Latin qwerty
+ latinunicodeyz me: Latin unicode qwerty
+ cyrillicalternatequotes me: Cyrillic with guillemets
+ latinalternatequotes me: Latin with guillemets
+ nodeadkeys mk: Eliminate dead keys
+ us mt: Maltese keyboard with US layout
+ nodeadkeys no: Eliminate dead keys
+ dvorak no: Dvorak
+ smi no: Northern Saami
+ smi_nodeadkeys no: Northern Saami, eliminate dead keys
+ mac no: Macintosh
+ mac_nodeadkeys no: Macintosh, eliminate dead keys
+ qwertz pl: qwertz
+ dvorak pl: Dvorak
+ dvorak_quotes pl: Dvorak, Polish quotes on quotemark key
+ dvorak_altquotes pl: Dvorak, Polish quotes on key "1/!"
+ csb pl: Kashubian
+ ru_phonetic_dvorak pl: Russian phonetic Dvorak
+ nodeadkeys pt: Eliminate dead keys
+ sundeadkeys pt: Sun dead keys
+ mac pt: Macintosh
+ mac_nodeadkeys pt: Macintosh, eliminate dead keys
+ mac_sundeadkeys pt: Macintosh, Sun dead keys
+ nativo pt: Nativo
+ nativo-us pt: Nativo for USA keyboards
+ nativo-epo pt: Nativo for Esperanto
+ cedilla ro: Cedilla
+ std ro: Standard
+ std_cedilla ro: Standard (Cedilla)
+ winkeys ro: Winkeys
+ phonetic ru: Phonetic
+ typewriter ru: Typewriter
+ legacy ru: Legacy
+ tt ru: Tatar
+ os_legacy ru: Ossetian, legacy
+ os_winkeys ru: Ossetian, Winkeys
+ cv ru: Chuvash
+ cv_latin ru: Chuvash Latin
+ udm ru: Udmurt
+ kom ru: Komi
+ sah ru: Yakut
+ yz rs: Z and ZHE swapped
+ latin rs: Latin
+ latinunicode rs: Latin Unicode
+ latinyz rs: Latin qwerty
+ latinunicodeyz rs: Latin Unicode qwerty
+ alternatequotes rs: With guillemets
+ latinalternatequotes rs: Latin with guillemets
+ alternatequotes si: Use guillemets for quotes
+ unicode si: Use Slovenian digraphs
+ unicodeus si: US keyboard with Slovenian digraphs
+ us si: US keyboard with Slovenian letters
+ bksl sk: Extended Backslash
+ qwerty sk: qwerty
+ qwerty_bksl sk: qwerty, extended Backslash
+ nodeadkeys es: Eliminate dead keys
+ sundeadkeys es: Sun dead keys
+ dvorak es: Dvorak
+ ast es: Asturian variant with bottom-dot H and bottom-dot L
+ cat es: Catalan variant with middle-dot L
+ mac es: Macintosh
+ nodeadkeys se: Eliminate dead keys
+ dvorak se: Dvorak
+ rus se: Russian phonetic
+ rus_nodeadkeys se: Russian phonetic, eliminate dead keys
+ smi se: Northern Saami
+ mac se: Macintosh
+ svdvorak se: Svdvorak
+ de_nodeadkeys ch: German, eliminate dead keys
+ de_sundeadkeys ch: German, Sun dead keys
+ fr ch: French
+ fr_nodeadkeys ch: French, eliminate dead keys
+ fr_sundeadkeys ch: French, Sun dead keys
+ fr_mac ch: French (Macintosh)
+ de_mac ch: German (Macintosh)
+ syc sy: Syriac
+ syc_phonetic sy: Syriac phonetic
+ ku sy: Kurdish, Latin Q
+ ku_f sy: Kurdish, (F)
+ ku_alt sy: Kurdish, Latin Alt-Q
+ tam_unicode lk: Tamil Unicode
+ tam_TAB lk: Tamil TAB Typewriter
+ tis th: TIS-820.2538
+ pat th: Pattachote
+ f tr: (F)
+ alt tr: Alt-Q
+ sundeadkeys tr: Sun dead keys
+ ku tr: Kurdish, Latin Q
+ ku_f tr: Kurdish, (F)
+ ku_alt tr: Kurdish, Latin Alt-Q
+ intl tr: International (with dead keys)
+ phonetic ua: Phonetic
+ typewriter ua: Typewriter
+ winkeys ua: Winkeys
+ unicode ua: Unicode
+ rstu ua: Standard RSTU
+ rstu_ru ua: Standard RSTU on Russian layout
+ homophonic ua: Homophonic
+ intl gb: International (with dead keys)
+ dvorak gb: Dvorak
+ dvorakukp gb: Dvorak (UK Punctuation)
+ mac gb: Macintosh
+ colemak gb: Colemak
+ latin uz: Latin
+ kr104 kr: 101/104 key Compatible
+ CloGaelach ie: CloGaelach
+ UnicodeExpert ie: UnicodeExpert
+ ogam ie: Ogham
+ ogam_is434 ie: Ogham IS434
+ ara pk: Arabic
+ legacy epo: displaced semicolon and quote (obsolete)
+ igbo ng: Igbo
+ yoruba ng: Yoruba
+ hausa ng: Hausa
+ left_hand braille: Left hand
+ right_hand braille: Right hand
+
+! option
+ grp Layout switching
+ grp:switch R-Alt switches layout while pressed.
+ grp:lswitch Left Alt key switches layout while pressed.
+ grp:lwin_switch Left Win-key switches layout while pressed.
+ grp:rwin_switch Right Win-key switches layout while pressed.
+ grp:win_switch Both Win-keys switch layout while pressed.
+ grp:caps_switch CapsLock key switches layout while pressed, Alt+CapsLock does the original capslock action.
+ grp:rctrl_switch Right Ctrl key switches layout while pressed.
+ grp:toggle Right Alt key changes layout.
+ grp:lalt_toggle Left Alt key changes layout.
+ grp:caps_toggle CapsLock key changes layout.
+ grp:shift_caps_toggle Shift+CapsLock changes layout.
+ grp:shift_caps_switch CapsLock switch to first layout, Shift+CapsLock switch to last layout.
+ grp:alt_caps_toggle Alt+CapsLock changes layout.
+ grp:shifts_toggle Both Shift keys together change layout.
+ grp:alts_toggle Both Alt keys together change layout.
+ grp:ctrls_toggle Both Ctrl keys together change layout.
+ grp:ctrl_shift_toggle Ctrl+Shift change layout.
+ grp:lctrl_lshift_toggle LCtrl+LShift change layout.
+ grp:ctrl_alt_toggle Alt+Ctrl change layout.
+ grp:alt_shift_toggle Alt+Shift change layout.
+ grp:menu_toggle Menu key changes layout.
+ grp:lwin_toggle Left Win-key changes layout.
+ grp:rwin_toggle Right Win-key changes layout.
+ grp:lshift_toggle Left Shift key changes layout.
+ grp:rshift_toggle Right Shift key changes layout.
+ grp:lctrl_toggle Left Ctrl key changes layout.
+ grp:rctrl_toggle Right Ctrl key changes layout.
+ lv3 Third level choosers
+ lv3:switch Press Right Ctrl to choose 3rd level.
+ lv3:menu_switch Press Menu key to choose 3rd level.
+ lv3:win_switch Press any of Win-keys to choose 3rd level.
+ lv3:lwin_switch Press Left Win-key to choose 3rd level.
+ lv3:rwin_switch Press Right Win-key to choose 3rd level.
+ lv3:alt_switch Press any of Alt keys to choose 3rd level.
+ lv3:lalt_switch Press Left Alt key to choose 3rd level.
+ lv3:ralt_switch Press Right Alt key to choose 3rd level.
+ lv3:ralt_switch_multikey Press Right Alt key to choose 3rd level, Shift+Right Alt key is Multi_Key.
+ lv3:ralt_alt Right Alt key never chooses 3rd level.
+ ctrl Ctrl key position
+ ctrl:nocaps Make CapsLock an additional Ctrl.
+ ctrl:swapcaps Swap Ctrl and CapsLock.
+ ctrl:ctrl_ac Ctrl key at left of 'A'
+ ctrl:ctrl_aa Ctrl key at bottom left
+ ctrl:ctrl_ra Right Ctrl key works as Right Alt.
+ grp_led Use keyboard LED to show alternative layout.
+ grp_led:num NumLock LED shows alternative layout.
+ grp_led:caps CapsLock LED shows alternative layout.
+ grp_led:scroll ScrollLock LED shows alternative layout.
+ keypad Numeric keypad layout selection
+ keypad:legacy Legacy keypad
+ keypad:oss Keypad with unicode additions (arrows and math operators)
+ keypad:future Keypad with unicode additions (arrows and math operators). Math operators on default level.
+ keypad:legacy_wang Legacy Wang 724 keypad
+ 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:phone_hex ATM/phone-style hexadecimal keypad
+ kpdl Numeric keypad delete key behaviour
+ 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 restriction
+ kpdl:commaoss Four-level key with comma
+ kpdl:momayyezoss Four-level key with momayyez
+ kpdl:kposs Four-level key with abstract separators
+ caps CapsLock key behavior
+ caps:internal CapsLock uses internal capitalization. Shift "pauses" CapsLock.
+ caps:internal_nocancel CapsLock uses internal capitalization. Shift doesn't affect CapsLock.
+ caps:shift CapsLock acts as Shift with locking. Shift "pauses" CapsLock.
+ caps:shift_nocancel CapsLock acts as Shift with locking. Shift doesn't affect CapsLock.
+ caps:capslock CapsLock toggles normal capitalization of alphabetic characters.
+ caps:swapescape Swap ESC and CapsLock.
+ caps:shiftlock CapsLock toggles Shift so all keys are affected.
+ altwin Alt/Win key behavior
+ altwin:menu Add the standard behavior to Menu key.
+ altwin:meta_alt Alt and Meta are on the Alt keys.
+ altwin:ctrl_win Control is mapped to the Win-keys (and the usual Ctrl keys).
+ altwin:meta_win Meta is mapped to the Win-keys.
+ altwin:left_meta_win Meta is mapped to the left Win-key.
+ altwin:super_win Super is mapped to the Win-keys.
+ altwin:hyper_win Hyper is mapped to the Win-keys.
+ altwin:alt_super_win Alt is mapped to the right Win-key and Super to Menu.
+ altwin:swap_lalt_lwin Left Alt is swapped with left Win-key.
+ Compose key Compose key position
+ compose:ralt Right Alt is Compose.
+ compose:lwin Left Win-key is Compose.
+ compose:rwin Right Win-key is Compose.
+ compose:menu Menu is Compose.
+ compose:rctrl Right Ctrl is Compose.
+ compose:caps Caps Lock is Compose.
+ compose:102 Less-than/Greater-than is Compose.
+ compat Miscellaneous compatibility options
+ numpad:pc Default numeric keypad keys.
+ numpad:mac Numeric keypad keys work as with Mac.
+ numpad:microsoft Shift with numeric keypad keys works as in MS Windows.
+ srvrkeys:none Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server.
+ apple:badmap Swap keycodes of two keys when Mac keyboards are misdetected by kernel.
+ shift:breaks_caps Shift cancels CapsLock.
+ eurosign Adding the EuroSign to certain keys
+ eurosign:e Add the EuroSign to the E key.
+ eurosign:2 Add the EuroSign to the 2 key.
+ eurosign:4 Add the EuroSign to the 4 key.
+ eurosign:5 Add the EuroSign to the 5 key.
+ nbsp Using space key to input non-breakable space character
+ nbsp:none Space key outputs usual space at any level.
+ nbsp:level2 Space key outputs non-breakable space character at second level.
+ nbsp:level3 Space key outputs non-breakable space character at third level.
+ nbsp:level3s Space key outputs non-breakable space character at third level, nothing at fourth level.
+ nbsp:level3n Space key outputs non-breakable space character at third level, thin non-breakable space character at fourth level
+ nbsp:level4 Space key outputs non-breakable space character at fourth level.
+ nbsp:level4n Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level
+ nbsp:level4nl Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)
+ japan Japanese keyboard options
+ japan:kana_lock Kana Lock key is locking
+ japan:nicola_f_bs NICOLA-F style Backspace
diff --git a/xorg-server/xkbdata.src/rules/evdev.m_k.part b/xorg-server/xkbdata.src/rules/evdev.m_k.part
new file mode 100644
index 000000000..9bae15336
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/evdev.m_k.part
@@ -0,0 +1,4 @@
+ pc98 = evdev(pc98)
+ abnt2 = evdev(abnt2)
+ jp106 = evdev(jp106)
+ * = evdev
diff --git a/xorg-server/xkbdata.src/rules/evdev.m_s.part b/xorg-server/xkbdata.src/rules/evdev.m_s.part
new file mode 100644
index 000000000..fd6590d9d
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/evdev.m_s.part
@@ -0,0 +1 @@
+ * = +inet(evdev)
diff --git a/xorg-server/xkbdata.src/rules/evdev.xml.in b/xorg-server/xkbdata.src/rules/evdev.xml.in
new file mode 100644
index 000000000..8d0aa921c
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/evdev.xml.in
@@ -0,0 +1,4699 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
+<xkbConfigRegistry>
+ <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 (Intl) PC</_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 (Intl) PC</_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 series laptop</_description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dellm65</name>
+ <_description>Dell Precision M65</_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 Inc.</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>jp106</name>
+ <_description>Japanese 106-key</_description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>pc98</name>
+ <_description>PC-98xx Series</_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>abnt2</name>
+ <_description>Brazilian ABNT2</_description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>airkey</name>
+ <_description>Acer AirKey V</_description>
+ <vendor>Acer</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>acpi</name>
+ <_description>ACPI Standard</_description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>azonaRF2300</name>
+ <_description>Azona RF2300 wireless Internet Keyboard</_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 Keyboard</_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>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 (alternate option)</_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>chicony</name>
+ <_description>Chicony Internet Keyboard</_description>
+ <vendor>Chicony</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chicony0108</name>
+ <_description>Chicony KU-0108</_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 Keyboard</_description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqik7</name>
+ <_description>Compaq Internet Keyboard (7 keys)</_description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqik13</name>
+ <_description>Compaq Internet Keyboard (13 keys)</_description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>compaqik18</name>
+ <_description>Compaq Internet Keyboard (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>Laptop/notebook Compaq (eg. Armada) Laptop Keyboard</_description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>presario</name>
+ <_description>Laptop/notebook Compaq (eg. Presario) Internet Keyboard</_description>
+ <vendor>Compaq</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>ipaq</name>
+ <_description>Compaq iPaq Keyboard</_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 Keyboard</_description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>inspiron</name>
+ <_description>Dell Laptop/notebook Inspiron 6xxx/8xxx</_description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>precision_m</name>
+ <_description>Dell Laptop/notebook Precision M series</_description>
+ <vendor>Dell</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>dexxa</name>
+ <_description>Dexxa Wireless Desktop Keyboard</_description>
+ <vendor>Dexxa</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>diamond</name>
+ <_description>Diamond 9801 / 9802 series</_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 Computers AMILO A1667G laptop</_description>
+ <vendor>Fujitsu-Siemens</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>genius</name>
+ <_description>Genius Comfy KB-16M / Genius MM Keyboard 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>gyration</name>
+ <_description>Gyration</_description>
+ <vendor>Gyration</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logitech_base</name>
+ <_description>Logitech Generic Keyboard</_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 Keyboard</_description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp2501</name>
+ <_description>Hewlett-Packard SK-2501 Multimedia Keyboard</_description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp2505</name>
+ <_description>Hewlett-Packard SK-2505 Internet Keyboard</_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>hpzt11xx</name>
+ <_description>Hewlett-Packard Pavilion ZT11xx</_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 5xx</_description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp5181</name>
+ <_description>Hewlett-Packard Internet Keyboard 5181</_description>
+ <vendor>Hewlett-Packard</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>hp5185</name>
+ <_description>Hewlett-Packard Internet Keyboard 5185</_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>rapidaccess</name>
+ <_description>IBM Rapid Access</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>rapidaccess2</name>
+ <_description>IBM Rapid Access II</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>rapidaccess2a</name>
+ <_description>IBM Rapid Access II (alternate option)</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpad</name>
+ <_description>IBM ThinkPad 560Z/600/600E/A22E</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpadintl</name>
+ <_description>IBM ThinkPad 560Z/600/600E/A22E, Intl</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpad60</name>
+ <_description>IBM ThinkPad R60/T60/R61/T61</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>thinkpadz60</name>
+ <_description>IBM ThinkPad Z60m/Z60t/Z61m/Z61t</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>ibm_spacesaver</name>
+ <_description>IBM Space Saver</_description>
+ <vendor>IBM</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiaccess</name>
+ <_description>Logitech Access Keyboard</_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 Keyboard</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logimel</name>
+ <_description>Logitech Media Elite Keyboard</_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 (alternate option)</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logicdpa2</name>
+ <_description>Logitech Cordless Desktop Pro (alternate option2)</_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 Keyboard (model Y-RB6)</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiik</name>
+ <_description>Logitech Internet Keyboard</_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 Keyboard</_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 Keyboard SE</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiinkseusb</name>
+ <_description>Logitech iTouch Internet Navigator Keyboard SE (USB)</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiultrax</name>
+ <_description>Logitech Ultra-X Keyboard</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logiultraxc</name>
+ <_description>Logitech Ultra-X Cordless Media Desktop Keyboard</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logidinovo</name>
+ <_description>Logitech diNovo Keyboard</_description>
+ <vendor>Logitech</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>logidinovoedge</name>
+ <_description>Logitech diNovo Edge Keyboard</_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 Keyboard</_description>
+ <vendor>Memorex</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>mx2750</name>
+ <_description>Memorex MX2750</_description>
+ <vendor>Memorex</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoft7000</name>
+ <_description>Microsoft Natural Wireless Ergonomic Keyboard 7000</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftinet</name>
+ <_description>Microsoft Internet Keyboard</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftpro</name>
+ <_description>Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftprousb</name>
+ <_description>Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftprooem</name>
+ <_description>Microsoft Natural Keyboard Pro OEM</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>vsonku306</name>
+ <_description>ViewSonic KU-306 Internet Keyboard</_description>
+ <vendor>ViewSonic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftprose</name>
+ <_description>Microsoft Internet Keyboard Pro, Swedish</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftoffice</name>
+ <_description>Microsoft Office Keyboard</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftmult</name>
+ <_description>Microsoft Wireless Multimedia Keyboard 1.0A</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>microsoftelite</name>
+ <_description>Microsoft Natural Keyboard Elite</_description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>oretec</name>
+ <_description>Ortek MCK-800 MM/Internet keyboard</_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>sk1300</name>
+ <_description>SK-1300</_description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk2500</name>
+ <_description>SK-2500</_description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk6200</name>
+ <_description>SK-6200</_description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sk7100</name>
+ <_description>SK-7100</_description>
+ <vendor>NEC</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sp_inet</name>
+ <_description>Super Power Multimedia Keyboard</_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 PC)</_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 Keyboard Classic</_description>
+ <vendor>Trust</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>trustda</name>
+ <_description>Trust Direct Access Keyboard</_description>
+ <vendor>Trust</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>yahoo</name>
+ <_description>Yahoo! Internet Keyboard</_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 Keyboard 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>silvercrest</name>
+ <_description>SILVERCREST Multimedia Wireless Keyboard</_description>
+ <vendor>Silvercrest</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>emachines</name>
+ <_description>Laptop/notebook eMachines m68xx</_description>
+ <vendor>eMachines</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>kr106</name>
+ <_description>Korean 106-key</_description>
+ <vendor>Generic</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>evdev</name>
+ <_description>Evdev-managed keyboard</_description>
+ <vendor>Generic</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 Keyboard</_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>sun6</name>
+ <_description>Sun Type 5/6</_description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ </modelList>
+ <layoutList>
+ <layout>
+ <configItem>
+ <name>us</name>
+ <_shortDescription>USA</_shortDescription>
+ <_description>USA</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>chr</name>
+ <_description>Cherokee</_description>
+ <languageList><iso639Id>chr</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>euro</name>
+ <_description>With EuroSign on 5</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>intl</name>
+ <_description>International (with dead keys)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alt-intl</name>
+ <_description>Alternative international (former us_intl)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+ <_description>Colemak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-intl</name>
+ <_description>Dvorak international</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-l</name>
+ <_description>Left handed Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-r</name>
+ <_description>Right handed Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak-classic</name>
+ <_description>Classic Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvp</name>
+ <_description>Programmer Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rus</name>
+ <_description>Russian phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>altgr-intl</name>
+ <_description>International (AltGr dead keys)</_description>
+ <languageList><iso639Id>eng</iso639Id>
+ <iso639Id>fra</iso639Id>
+ <iso639Id>ger</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>olpc2</name>
+ <_description>Group toggle on multiply/divide key</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ad</name>
+ <_shortDescription>And</_shortDescription>
+ <_description>Andorra</_description>
+ <languageList><iso639Id>cat</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>af</name>
+ <_shortDescription>Afg</_shortDescription>
+ <_description>Afghanistan</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ps</name>
+ <_description>Pashto</_description>
+ <languageList><iso639Id>pus</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>uz</name>
+ <_description>Southern Uzbek</_description>
+ <languageList><iso639Id>uzb</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>olpc-ps</name>
+ <_description>OLPC Pashto</_description>
+ <languageList><iso639Id>pus</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>olpc-fa</name>
+ <_description>OLPC Dari</_description>
+ <!-- No ISO code in ISO639-2, only draft ISO693-3 -->
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>olpc-uz</name>
+ <_description>OLPC Southern Uzbek</_description>
+ <languageList><iso639Id>uzb</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ara</name>
+ <_shortDescription>Ara</_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>azerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>azerty_digits</name>
+ <_description>azerty/digits</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>digits</name>
+ <_description>digits</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+ <_description>qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty_digits</name>
+ <_description>qwerty/digits</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>buckwalter</name>
+ <_description>Buckwalter</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>al</name>
+ <_shortDescription>Alb</_shortDescription>
+ <_description>Albania</_description>
+ <languageList><iso639Id>alb</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>am</name>
+ <_shortDescription>Arm</_shortDescription>
+ <_description>Armenia</_description>
+ <languageList><iso639Id>hye</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+ <_description>Phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>phonetic-alt</name>
+ <_description>Alternative Phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>eastern</name>
+ <_description>Eastern</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>western</name>
+ <_description>Western</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>eastern-alt</name>
+ <_description>Alternative Eastern</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>az</name>
+ <_shortDescription>Aze</_shortDescription>
+ <_description>Azerbaijan</_description>
+ <languageList><iso639Id>aze</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>cyrillic</name>
+ <_description>Cyrillic</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>by</name>
+ <_shortDescription>Blr</_shortDescription>
+ <_description>Belarus</_description>
+ <languageList><iso639Id>bel</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>winkeys</name>
+ <_description>Winkeys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin</name>
+ <_description>Latin</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>be</name>
+ <_shortDescription>Bel</_shortDescription>
+ <_description>Belgium</_description>
+ <languageList><iso639Id>ger</iso639Id>
+ <iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>iso-alternate</name>
+ <_description>ISO Alternate</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>wang</name>
+ <_description>Wang model 724 azerty</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>bd</name>
+ <_shortDescription>Ban</_shortDescription>
+ <_description>Bangladesh</_description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>probhat</name>
+ <_description>Probhat</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>in</name>
+ <_shortDescription>Ind</_shortDescription>
+ <_description>India</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ben</name>
+ <_description>Bengali</_description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ben_probhat</name>
+ <_description>Bengali Probhat</_description>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>guj</name>
+ <_description>Gujarati</_description>
+ <languageList><iso639Id>guj</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>guru</name>
+ <_description>Gurmukhi</_description>
+ <languageList><iso639Id>pan</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>jhelum</name>
+ <_description>Gurmukhi Jhelum</_description>
+ <languageList><iso639Id>pan</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>kan</name>
+ <_description>Kannada</_description>
+ <languageList><iso639Id>kan</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mal</name>
+ <_description>Malayalam</_description>
+ <languageList><iso639Id>mal</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mal_lalitha</name>
+ <_description>Malayalam Lalitha</_description>
+ <languageList><iso639Id>mal</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ori</name>
+ <_description>Oriya</_description>
+ <languageList><iso639Id>ori</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tam_unicode</name>
+ <_description>Tamil Unicode</_description>
+ <languageList><iso639Id>tam</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tam_TAB</name>
+ <_description>Tamil TAB Typewriter</_description>
+ <languageList><iso639Id>tam</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tam_TSCII</name>
+ <_description>Tamil TSCII Typewriter</_description>
+ <languageList><iso639Id>tam</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tam</name>
+ <_description>Tamil</_description>
+ <languageList><iso639Id>tam</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tel</name>
+ <_description>Telugu</_description>
+ <languageList><iso639Id>tel</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>urd</name>
+ <_description>Urdu</_description>
+ <languageList><iso639Id>urd</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bolnagri</name>
+ <_description>Hindi Bolnagri</_description>
+ <languageList><iso639Id>hin</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ba</name>
+ <_shortDescription>Bih</_shortDescription>
+ <_description>Bosnia and Herzegovina</_description>
+ <languageList><iso639Id>bos</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+ <_description> Use guillemets for quotes</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicode</name>
+ <_description>Use Bosnian digraphs</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicodeus</name>
+ <_description>US keyboard with Bosnian digraphs</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+ <_description>US keyboard with Bosnian letters</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>br</name>
+ <_shortDescription>Bra</_shortDescription>
+ <_description>Brazil</_description>
+ <languageList><iso639Id>por</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo</name>
+ <_description>Nativo</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-us</name>
+ <_description>Nativo for USA keyboards</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-epo</name>
+ <_description>Nativo for Esperanto</_description>
+ <languageList><iso639Id>epo</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>bg</name>
+ <_shortDescription>Bgr</_shortDescription>
+ <_description>Bulgaria</_description>
+ <languageList><iso639Id>bul</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+ <_description>Phonetic</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ma</name>
+ <_description>Morocco</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>french</name>
+ <_description>French</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tifinagh</name>
+ <_description>Tifinagh</_description>
+ <languageList><iso639Id>ber</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tifinagh-alt</name>
+ <_description>Tifinagh Alternative</_description>
+ <languageList><iso639Id>ber</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tifinagh-alt-phonetic</name>
+ <_description>Tifinagh Alternative Phonetic</_description>
+ <languageList><iso639Id>ber</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tifinagh-extended</name>
+ <_description>Tifinagh Extended</_description>
+ <languageList><iso639Id>ber</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tifinagh-phonetic</name>
+ <_description>Tifinagh Phonetic</_description>
+ <languageList><iso639Id>ber</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tifinagh-extended-phonetic</name>
+ <_description>Tifinagh Extended Phonetic</_description>
+ <languageList><iso639Id>ber</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>mm</name>
+ <_shortDescription>Mmr</_shortDescription>
+ <_description>Myanmar</_description>
+ <languageList><iso639Id>mya</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ca</name>
+ <_shortDescription>Can</_shortDescription>
+ <_description>Canada</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>fr-dvorak</name>
+ <_description>French Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr-legacy</name>
+ <_description>French (legacy)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>multix</name>
+ <_description>Multilingual</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>multi</name>
+ <_description>Multilingual, first part</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>multi-2gr</name>
+ <_description>Multilingual, second part</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ike</name>
+ <_description>Inuktitut</_description>
+ <languageList><iso639Id>iku</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>shs</name>
+ <_description>Secwepemctsin</_description>
+ <!-- No ISO code in ISO639-2, only draft ISO693-3 -->
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>kut</name>
+ <_description>Ktunaxa</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>cd</name>
+ <_shortDescription>DRC</_shortDescription>
+ <_description>Congo, Democratic Republic of the</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>cn</name>
+ <_shortDescription>China</_shortDescription>
+ <_description>China</_description>
+ <languageList><iso639Id>chi</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <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>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>hr</name>
+ <_shortDescription>Hrv</_shortDescription>
+ <_description>Croatia</_description>
+ <languageList><iso639Id>scr</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+ <_description>Use guillemets for quotes</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicode</name>
+ <_description>Use Croatian digraphs</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicodeus</name>
+ <_description>US keyboard with Croatian digraphs</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+ <_description>US keyboard with Croatian letters</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>cz</name>
+ <_shortDescription>Cze</_shortDescription>
+ <_description>Czechia</_description>
+ <languageList><iso639Id>cze</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>bksl</name>
+ <_description>With &lt;\|&gt; key</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+ <_description>qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty_bksl</name>
+ <_description>qwerty, extended Backslash</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ucw</name>
+ <_description>UCW layout (accented letters only)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>dk</name>
+ <_shortDescription>Dan</_shortDescription>
+ <_description>Denmark</_description>
+ <languageList><iso639Id>dan</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+ <_description>Macintosh, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>nl</name>
+ <_shortDescription>Nld</_shortDescription>
+ <_description>Netherlands</_description>
+ <languageList><iso639Id>nld</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>std</name>
+ <_description>Standard</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>bt</name>
+ <_shortDescription>Bhu</_shortDescription>
+ <_description>Bhutan</_description>
+ <languageList><iso639Id>dzo</iso639Id></languageList>
+ </configItem>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ee</name>
+ <_shortDescription>Est</_shortDescription>
+ <_description>Estonia</_description>
+ <languageList><iso639Id>est</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+ <_description>US keyboard with Estonian letters</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ir</name>
+ <_shortDescription>Irn</_shortDescription>
+ <_description>Iran</_description>
+ <languageList><iso639Id>per</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>pro</name>
+ <_description>Pro</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>keypad</name>
+ <_description>Keypad</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>pro_keypad</name>
+ <_description>Pro Keypad</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku</name>
+ <_description>Kurdish, Latin Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+ <_description>Kurdish, (F)</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+ <_description>Kurdish, Latin Alt-Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_ara</name>
+ <_description>Kurdish, Arabic-Latin</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>iq</name>
+ <_shortDescription>Irq</_shortDescription>
+ <_description>Iraq</_description>
+ <languageList><iso639Id>ara</iso639Id>
+ <iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ku</name>
+ <_description>Kurdish, Latin Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+ <_description>Kurdish, (F)</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+ <_description>Kurdish, Latin Alt-Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_ara</name>
+ <_description>Kurdish, Arabic-Latin</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>fo</name>
+ <_shortDescription>Fao</_shortDescription>
+ <_description>Faroe Islands</_description>
+ <languageList><iso639Id>fao</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>fi</name>
+ <_shortDescription>Fin</_shortDescription>
+ <_description>Finland</_description>
+ <languageList><iso639Id>fin</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>smi</name>
+ <_description>Northern Saami</_description>
+ <languageList><iso639Id>smi</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>classic</name>
+ <_description>Classic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>fr</name>
+ <_shortDescription>Fra</_shortDescription>
+ <_description>France</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss</name>
+ <_description>Alternative</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_latin9</name>
+ <_description>Alternative, latin-9 only</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_nodeadkeys</name>
+ <_description>Alternative, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>oss_sundeadkeys</name>
+ <_description>Alternative, Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin9</name>
+ <_description>(Legacy) Alternative</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin9_nodeadkeys</name>
+ <_description>(Legacy) Alternative, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin9_sundeadkeys</name>
+ <_description>(Legacy) Alternative, Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bepo</name>
+ <_description>Bepo, ergonomic, Dvorak way</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>bepo_latin9</name>
+ <_description>Bepo, ergonomic, Dvorak way, latin-9 only</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>geo</name>
+ <_description>Georgian AZERTY Tskapo</_description>
+ <languageList><iso639Id>geo</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>gh</name>
+ <_shortDescription>Gha</_shortDescription>
+ <_description>Ghana</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>generic</name>
+ <_description>Multilingual</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>akan</name>
+ <_description>Akan</_description>
+ <languageList><iso639Id>aka</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ewe</name>
+ <_description>Ewe</_description>
+ <languageList><iso639Id>ewe</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fula</name>
+ <_description>Fula</_description>
+ <languageList><iso639Id>ful</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ga</name>
+ <_description>Ga</_description>
+ <languageList><iso639Id>gaa</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>hausa</name>
+ <_description>Hausa</_description>
+ <languageList><iso639Id>hau</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>gn</name>
+ <_shortDescription>Gui</_shortDescription>
+ <_description>Guinea</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ge</name>
+ <_shortDescription>Geo</_shortDescription>
+ <_description>Georgia</_description>
+ <languageList><iso639Id>geo</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ergonomic</name>
+ <_description>Ergonomic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mess</name>
+ <_description>MESS</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ru</name>
+ <_description>Russian</_description>
+ <languageList><iso639Id>rus</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>os</name>
+ <_description>Ossetian</_description>
+ <languageList><iso639Id>oss</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>de</name>
+ <_shortDescription>Deu</_shortDescription>
+ <_description>Germany</_description>
+ <languageList><iso639Id>ger</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>deadacute</name>
+ <_description>Dead acute</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>deadgraveacute</name>
+ <_description>Dead grave acute</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ro</name>
+ <_description>Romanian keyboard with German letters</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ro_nodeadkeys</name>
+ <_description>Romanian keyboard with German letters, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>neo</name>
+ <_description>Neostyle</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+ <_description>Macintosh, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>gr</name>
+ <_shortDescription>Gre</_shortDescription>
+ <_description>Greece</_description>
+ <languageList><iso639Id>gre</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>simple</name>
+ <_description>Simple</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>extended</name>
+ <_description>Extended</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>polytonic</name>
+ <_description>Polytonic</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>hu</name>
+ <_shortDescription>Hun</_shortDescription>
+ <_description>Hungary</_description>
+ <languageList><iso639Id>hun</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>standard</name>
+ <_description>Standard</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+ <_description>qwerty</_description>
+ </configItem>
+ </variant>
+
+ <!-- 101 keys -->
+ <variant>
+ <configItem>
+ <name>101_qwertz_comma_dead</name>
+ <_description>101/qwertz/comma/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_comma_nodead</name>
+ <_description>101/qwertz/comma/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_dot_dead</name>
+ <_description>101/qwertz/dot/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwertz_dot_nodead</name>
+ <_description>101/qwertz/dot/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_comma_dead</name>
+ <_description>101/qwerty/comma/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_comma_nodead</name>
+ <_description>101/qwerty/comma/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_dot_dead</name>
+ <_description>101/qwerty/dot/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>101_qwerty_dot_nodead</name>
+ <_description>101/qwerty/dot/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+
+
+ <!-- 102 keys -->
+ <variant>
+ <configItem>
+ <name>102_qwertz_comma_dead</name>
+ <_description>102/qwertz/comma/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_comma_nodead</name>
+ <_description>102/qwertz/comma/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_dot_dead</name>
+ <_description>102/qwertz/dot/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwertz_dot_nodead</name>
+ <_description>102/qwertz/dot/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_comma_dead</name>
+ <_description>102/qwerty/comma/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_comma_nodead</name>
+ <_description>102/qwerty/comma/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_dot_dead</name>
+ <_description>102/qwerty/dot/Dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>102_qwerty_dot_nodead</name>
+ <_description>102/qwerty/dot/Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>is</name>
+ <_shortDescription>Isl</_shortDescription>
+ <_description>Iceland</_description>
+ <languageList><iso639Id>ice</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>Sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>il</name>
+ <_shortDescription>Isr</_shortDescription>
+ <_description>Israel</_description>
+ <languageList><iso639Id>heb</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>lyx</name>
+ <_description>lyx</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+ <_description>Phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>biblical</name>
+ <_description>Biblical Hebrew (Tiro)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>it</name>
+ <_shortDescription>Ita</_shortDescription>
+ <_description>Italy</_description>
+ <languageList><iso639Id>ita</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>geo</name>
+ <_description>Georgian</_description>
+ <languageList><iso639Id>geo</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>jp</name>
+ <_shortDescription>Jpn</_shortDescription>
+ <_description>Japan</_description>
+ <languageList><iso639Id>jpn</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>kana</name>
+ <_description>Kana</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>OADG109A</name>
+ <_description>OADG 109A</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>kg</name>
+ <_shortDescription>Kir</_shortDescription>
+ <_description>Kyrgyzstan</_description>
+ <languageList><iso639Id>kir</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>kh</name>
+ <_shortDescription>Khm</_shortDescription>
+ <_description>Cambodia</_description>
+ <languageList><iso639Id>khm</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>kz</name>
+ <_shortDescription>Kaz</_shortDescription>
+ <_description>Kazakhstan</_description>
+ <languageList><iso639Id>kaz</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ruskaz</name>
+ <_description>Russian 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>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>la</name>
+ <_shortDescription>Lao</_shortDescription>
+ <_description>Laos</_description>
+ <languageList><iso639Id>lao</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>latam</name>
+ <_shortDescription>LAm</_shortDescription>
+ <_description>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>UY</iso3166Id>
+ <iso3166Id>VE</iso3166Id>
+ </countryList>
+ <languageList><iso639Id>spa</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>lt</name>
+ <_shortDescription>Ltu</_shortDescription>
+ <_description>Lithuania</_description>
+ <languageList><iso639Id>lit</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>std</name>
+ <_description>Standard</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+ <_description>US keyboard with Lithuanian letters</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ibm</name>
+ <_description>IBM (LST 1205-92)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>lekp</name>
+ <_description>LEKP</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>lekpa</name>
+ <_description>LEKPa</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>balticplus</name>
+ <_description>Baltic+</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>lv</name>
+ <_shortDescription>Lav</_shortDescription>
+ <_description>Latvia</_description>
+ <languageList><iso639Id>lav</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>apostrophe</name>
+ <_description>Apostrophe (') variant</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tilde</name>
+ <_description>Tilde (~) variant</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fkey</name>
+ <_description>F-letter (F) variant</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>mao</name>
+ <_shortDescription>Mao</_shortDescription>
+ <_description>Maori</_description>
+ <languageList><iso639Id>mao</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>me</name>
+ <_shortDescription>MNE</_shortDescription>
+ <_description>Montenegro</_description>
+ <languageList><iso639Id>srp</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>cyrillic</name>
+ <_description>Cyrillic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>cyrillicyz</name>
+ <_description>Cyrillic, Z and ZHE swapped</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicode</name>
+ <_description>Latin unicode</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinyz</name>
+ <_description>Latin qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicodeyz</name>
+ <_description>Latin unicode qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>cyrillicalternatequotes</name>
+ <_description>Cyrillic with guillemets</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinalternatequotes</name>
+ <_description>Latin with guillemets</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>mk</name>
+ <_shortDescription>Mkd</_shortDescription>
+ <_description>Macedonia</_description>
+ <languageList><iso639Id>mkd</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>mt</name>
+ <_shortDescription>Mlt</_shortDescription>
+ <_description>Malta</_description>
+ <languageList><iso639Id>mlt</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>us</name>
+ <_description>Maltese keyboard with US layout</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>mn</name>
+ <_shortDescription>Mng</_shortDescription>
+ <_description>Mongolia</_description>
+ <languageList><iso639Id>mng</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>no</name>
+ <_shortDescription>Nor</_shortDescription>
+ <_description>Norway</_description>
+ <languageList><iso639Id>nor</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>smi</name>
+ <_description>Northern Saami</_description>
+ <languageList><iso639Id>sme</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>smi_nodeadkeys</name>
+ <_description>Northern Saami, eliminate dead keys</_description>
+ <languageList><iso639Id>sme</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+ <_description>Macintosh, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>pl</name>
+ <_shortDescription>Pol</_shortDescription>
+ <_description>Poland</_description>
+ <languageList><iso639Id>pol</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>qwertz</name>
+ <_description>qwertz</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak_quotes</name>
+ <_description>Dvorak, Polish quotes on quotemark key</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak_altquotes</name>
+ <_description>Dvorak, 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>ru_phonetic_dvorak</name>
+ <_description>Russian phonetic Dvorak</_description>
+ <languageList><iso639Id>rus</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>pt</name>
+ <_shortDescription>Prt</_shortDescription>
+ <_description>Portugal</_description>
+ <languageList><iso639Id>por</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_nodeadkeys</name>
+ <_description>Macintosh, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac_sundeadkeys</name>
+ <_description>Macintosh, Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo</name>
+ <_description>Nativo</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-us</name>
+ <_description>Nativo for USA keyboards</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>nativo-epo</name>
+ <_description>Nativo for Esperanto</_description>
+ <languageList><iso639Id>epo</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ro</name>
+ <_shortDescription>Rou</_shortDescription>
+ <_description>Romania</_description>
+ <languageList><iso639Id>rum</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>cedilla</name>
+ <_description>Cedilla</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>std</name>
+ <_description>Standard</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>std_cedilla</name>
+ <_description>Standard (Cedilla)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>winkeys</name>
+ <_description>Winkeys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ru</name>
+ <_shortDescription>Rus</_shortDescription>
+ <_description>Russia</_description>
+ <languageList><iso639Id>rus</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+ <_description>Phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>typewriter</name>
+ <_description>Typewriter</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>legacy</name>
+ <_description>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, Winkeys</_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>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>rs</name>
+ <_shortDescription>SRB</_shortDescription>
+ <_description>Serbia</_description>
+ <languageList><iso639Id>srp</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>yz</name>
+ <_description>Z and ZHE swapped</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latin</name>
+ <_description>Latin</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicode</name>
+ <_description>Latin Unicode</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinyz</name>
+ <_description>Latin qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinunicodeyz</name>
+ <_description>Latin Unicode qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+ <_description>With guillemets</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>latinalternatequotes</name>
+ <_description>Latin with guillemets</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>si</name>
+ <_shortDescription>Svn</_shortDescription>
+ <_description>Slovenia</_description>
+ <languageList><iso639Id>slv</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>alternatequotes</name>
+ <_description>Use guillemets for quotes</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicode</name>
+ <_description>Use Slovenian digraphs</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicodeus</name>
+ <_description>US keyboard with Slovenian digraphs</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>us</name>
+ <_description>US keyboard with Slovenian letters</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>sk</name>
+ <_shortDescription>Svk</_shortDescription>
+ <_description>Slovakia</_description>
+ <languageList><iso639Id>slo</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>bksl</name>
+ <_description>Extended Backslash</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty</name>
+ <_description>qwerty</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>qwerty_bksl</name>
+ <_description>qwerty, extended Backslash</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>es</name>
+ <_shortDescription>Esp</_shortDescription>
+ <_description>Spain</_description>
+ <languageList><iso639Id>spa</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ast</name>
+ <_description>Asturian variant with bottom-dot H and bottom-dot L</_description>
+ <languageList><iso639Id>ast</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>cat</name>
+ <_description>Catalan variant with middle-dot L</_description>
+ <languageList><iso639Id>cat</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>se</name>
+ <_shortDescription>Swe</_shortDescription>
+ <_description>Sweden</_description>
+ <languageList><iso639Id>swe</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>nodeadkeys</name>
+ <_description>Eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rus</name>
+ <_description>Russian phonetic</_description>
+ <languageList><iso639Id>rus</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rus_nodeadkeys</name>
+ <_description>Russian phonetic, eliminate dead keys</_description>
+ <languageList><iso639Id>rus</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>smi</name>
+ <_description>Northern Saami</_description>
+ <languageList><iso639Id>sme</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>svdvorak</name>
+ <_description>Svdvorak</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ch</name>
+ <_shortDescription>Che</_shortDescription>
+ <_description>Switzerland</_description>
+ <languageList><iso639Id>ger</iso639Id>
+ <iso639Id>gsw</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>de_nodeadkeys</name>
+ <_description>German, eliminate dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>de_sundeadkeys</name>
+ <_description>German, Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr</name>
+ <_description>French</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr_nodeadkeys</name>
+ <_description>French, eliminate dead keys</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr_sundeadkeys</name>
+ <_description>French, Sun dead keys</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>fr_mac</name>
+ <_description>French (Macintosh)</_description>
+ <languageList><iso639Id>fra</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>de_mac</name>
+ <_description>German (Macintosh)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>sy</name>
+ <_shortDescription>Syr</_shortDescription>
+ <_description>Syria</_description>
+ <languageList><iso639Id>syr</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>syc</name>
+ <_description>Syriac</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>syc_phonetic</name>
+ <_description>Syriac phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku</name>
+ <_description>Kurdish, Latin Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+ <_description>Kurdish, (F)</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+ <_description>Kurdish, Latin Alt-Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>tj</name>
+ <_shortDescription>Tjk</_shortDescription>
+ <_description>Tajikistan</_description>
+ <languageList><iso639Id>tgk</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>lk</name>
+ <_shortDescription>SrL</_shortDescription>
+ <_description>Sri Lanka</_description>
+ <languageList><iso639Id>sin</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>tam_unicode</name>
+ <_description>Tamil Unicode</_description>
+ <languageList><iso639Id>tam</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>tam_TAB</name>
+ <_description>Tamil TAB Typewriter</_description>
+ <languageList><iso639Id>tam</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>th</name>
+ <_shortDescription>Tha</_shortDescription>
+ <_description>Thailand</_description>
+ <languageList><iso639Id>tha</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>tis</name>
+ <_description>TIS-820.2538</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>pat</name>
+ <_description>Pattachote</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>tr</name>
+ <_shortDescription>Tur</_shortDescription>
+ <_description>Turkey</_description>
+ <languageList><iso639Id>tur</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>f</name>
+ <_description>(F)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alt</name>
+ <_description>Alt-Q</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sundeadkeys</name>
+ <_description>Sun dead keys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku</name>
+ <_description>Kurdish, Latin Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_f</name>
+ <_description>Kurdish, (F)</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ku_alt</name>
+ <_description>Kurdish, Latin Alt-Q</_description>
+ <languageList><iso639Id>kur</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>intl</name>
+ <_description>International (with dead keys)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ua</name>
+ <_shortDescription>Ukr</_shortDescription>
+ <_description>Ukraine</_description>
+ <languageList><iso639Id>ukr</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>phonetic</name>
+ <_description>Phonetic</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>typewriter</name>
+ <_description>Typewriter</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>winkeys</name>
+ <_description>Winkeys</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>unicode</name>
+ <_description>Unicode</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rstu</name>
+<!-- RSTU 2019-91 -->
+ <_description>Standard RSTU</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>rstu_ru</name>
+<!-- RSTU 2019-91 -->
+ <_description>Standard RSTU on Russian layout</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>homophonic</name>
+ <_description>Homophonic</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>gb</name>
+ <_shortDescription>GBr</_shortDescription>
+ <_description>United Kingdom</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>intl</name>
+ <_description>International (with dead keys)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Dvorak</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorakukp</name>
+ <_description>Dvorak (UK Punctuation)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>mac</name>
+ <_description>Macintosh</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+ <_description>Colemak</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>uz</name>
+ <_shortDescription>Uzb</_shortDescription>
+ <_description>Uzbekistan</_description>
+ <languageList><iso639Id>uzb</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>latin</name>
+ <_description>Latin</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>vn</name>
+ <_shortDescription>Vnm</_shortDescription>
+ <_description>Vietnam</_description>
+ <languageList><iso639Id>vie</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>kr</name>
+ <_shortDescription>Kor</_shortDescription>
+ <_description>Korea, Republic of</_description>
+ <languageList><iso639Id>kor</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>kr104</name>
+ <_description>101/104 key Compatible</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>nec_vndr/jp</name>
+ <_shortDescription>Jpn</_shortDescription>
+ <_description>Japan (PC-98xx Series)</_description>
+ <countryList><iso3166Id>JP</iso3166Id></countryList>
+ <languageList><iso639Id>jpn</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ie</name>
+ <_shortDescription>Irl</_shortDescription>
+ <_description>Ireland</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>CloGaelach</name>
+ <_description>CloGaelach</_description>
+ <languageList><iso639Id>gla</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>UnicodeExpert</name>
+ <_description>UnicodeExpert</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ogam</name>
+ <_description>Ogham</_description>
+ <!-- No ISO code in ISO639 -->
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ogam_is434</name>
+ <_description>Ogham IS434</_description>
+ <!-- No ISO code in ISO639 -->
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>pk</name>
+ <_shortDescription>Pak</_shortDescription>
+ <_description>Pakistan</_description>
+ <languageList><iso639Id>urd</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ara</name>
+ <_description>Arabic</_description>
+ <languageList><iso639Id>ara</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>mv</name>
+ <_shortDescription>Mal</_shortDescription>
+ <_description>Maldives</_description>
+ <languageList><iso639Id>div</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>za</name>
+ <_shortDescription>Zar</_shortDescription>
+ <_description>South Africa</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ </layout>
+ <layout>
+ <configItem>
+ <name>epo</name>
+ <_shortDescription>Epo</_shortDescription>
+ <_description>Esperanto</_description>
+ <languageList><iso639Id>epo</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>legacy</name>
+ <_description>displaced semicolon and quote (obsolete)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>np</name>
+ <_shortDescription>Nep</_shortDescription>
+ <_description>Nepal</_description>
+ <languageList><iso639Id>nep</iso639Id></languageList>
+ </configItem>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ng</name>
+ <_shortDescription>Nig</_shortDescription>
+ <_description>Nigeria</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>igbo</name>
+ <_description>Igbo</_description>
+ <languageList><iso639Id>ibo</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>yoruba</name>
+ <_description>Yoruba</_description>
+ <languageList><iso639Id>yor</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>hausa</name>
+ <_description>Hausa</_description>
+ <languageList><iso639Id>hau</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>et</name>
+ <_shortDescription>Eth</_shortDescription>
+ <_description>Ethiopia</_description>
+ <languageList><iso639Id>amh</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>braille</name>
+ <_shortDescription>Brl</_shortDescription>
+ <_description>Braille</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>left_hand</name>
+ <_description>Left hand</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>right_hand</name>
+ <_description>Right hand</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ </layoutList>
+ <optionList>
+ <group allowMultipleSelection="true">
+ <!-- The key combination used to switch between groups -->
+ <configItem>
+ <name>grp</name>
+ <_description>Layout switching</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>grp:switch</name>
+ <_description>R-Alt switches layout while pressed.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lswitch</name>
+ <_description>Left Alt key switches layout while pressed.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lwin_switch</name>
+ <_description>Left Win-key switches layout while pressed.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rwin_switch</name>
+ <_description>Right Win-key switches layout while pressed.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:win_switch</name>
+ <_description>Both Win-keys switch layout while pressed.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:caps_switch</name>
+ <_description>CapsLock key switches layout while pressed, Alt+CapsLock does the original capslock action.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rctrl_switch</name>
+ <_description>Right Ctrl key switches layout while pressed.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:toggle</name>
+ <_description>Right Alt key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lalt_toggle</name>
+ <_description>Left Alt key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:caps_toggle</name>
+ <_description>CapsLock key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:shift_caps_toggle</name>
+ <_description>Shift+CapsLock changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:shift_caps_switch</name>
+ <_description>CapsLock switch to first layout, Shift+CapsLock switch to last layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alt_caps_toggle</name>
+ <_description>Alt+CapsLock changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:shifts_toggle</name>
+ <_description>Both Shift keys together change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alts_toggle</name>
+ <_description>Both Alt keys together change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:ctrls_toggle</name>
+ <_description>Both Ctrl keys together change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:ctrl_shift_toggle</name>
+ <_description>Ctrl+Shift change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lctrl_lshift_toggle</name>
+ <_description>LCtrl+LShift change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:ctrl_alt_toggle</name>
+ <_description>Alt+Ctrl change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:alt_shift_toggle</name>
+ <_description>Alt+Shift change layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:menu_toggle</name>
+ <_description>Menu key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lwin_toggle</name>
+ <_description>Left Win-key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rwin_toggle</name>
+ <_description>Right Win-key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lshift_toggle</name>
+ <_description>Left Shift key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rshift_toggle</name>
+ <_description>Right Shift key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:lctrl_toggle</name>
+ <_description>Left Ctrl key changes layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp:rctrl_toggle</name>
+ <_description>Right Ctrl key changes layout.</_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>Third level choosers</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>lv3:switch</name>
+ <_description>Press Right Ctrl to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:menu_switch</name>
+ <_description>Press Menu key to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:win_switch</name>
+ <_description>Press any of Win-keys to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:lwin_switch</name>
+ <_description>Press Left Win-key to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:rwin_switch</name>
+ <_description>Press Right Win-key to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:alt_switch</name>
+ <_description>Press any of Alt keys to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:lalt_switch</name>
+ <_description>Press Left Alt key to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:ralt_switch</name>
+ <_description>Press Right Alt key to choose 3rd level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:ralt_switch_multikey</name>
+ <_description>Press Right Alt key to choose 3rd level, Shift+Right Alt key is Multi_Key.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>lv3:ralt_alt</name>
+ <_description>Right Alt key never chooses 3rd level.</_description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+ <!-- Tweaking the position of the "Ctrl" key -->
+ <configItem>
+ <name>ctrl</name>
+ <_description>Ctrl key position</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>ctrl:nocaps</name>
+ <_description>Make CapsLock an additional Ctrl.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:swapcaps</name>
+ <_description>Swap Ctrl and CapsLock.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:ctrl_ac</name>
+ <_description>Ctrl key at left of 'A'</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:ctrl_aa</name>
+ <_description>Ctrl key at bottom left</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>ctrl:ctrl_ra</name>
+ <_description>Right Ctrl key works as Right 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>NumLock LED shows alternative layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp_led:caps</name>
+ <_description>CapsLock LED shows alternative layout.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>grp_led:scroll</name>
+ <_description>ScrollLock LED shows alternative layout.</_description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+ <!-- Select a keypad type -->
+ <configItem>
+ <name>keypad</name>
+ <_description>Numeric keypad layout selection</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>keypad:legacy</name>
+ <_description>Legacy keypad</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:oss</name>
+ <_description>Keypad with unicode additions (arrows and math operators)</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>keypad:future</name>
+ <_description>Keypad with 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 keypad</_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:phone_hex</name>
+ <_description>ATM/phone-style hexadecimal keypad</_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 key behaviour</_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 restriction</_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>
+ </group>
+ <group allowMultipleSelection="false">
+ <!-- CapsLock tweaks.
+ "Internal" capitalization means capitalization using some internal tables.
+ Otherwise "as Shift" - means using next group. -->
+ <configItem>
+ <name>caps</name>
+ <_description>CapsLock key behavior</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>caps:internal</name>
+ <_description>CapsLock uses internal capitalization. Shift "pauses" CapsLock.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:internal_nocancel</name>
+ <_description>CapsLock uses internal capitalization. Shift doesn't affect CapsLock.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:shift</name>
+ <_description>CapsLock acts as Shift with locking. Shift "pauses" CapsLock.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:shift_nocancel</name>
+ <_description>CapsLock acts as Shift with locking. Shift doesn't affect CapsLock.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:capslock</name>
+ <_description>CapsLock toggles normal capitalization of alphabetic characters.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:swapescape</name>
+ <_description>Swap ESC and CapsLock.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>caps:shiftlock</name>
+ <_description>CapsLock toggles Shift so all keys are affected.</_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:meta_alt</name>
+ <_description>Alt and Meta are on the Alt keys.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:ctrl_win</name>
+ <_description>Control is mapped to the Win-keys (and the usual Ctrl keys).</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:meta_win</name>
+ <_description>Meta is mapped to the Win-keys.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:left_meta_win</name>
+ <_description>Meta is mapped to the left Win-key.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:super_win</name>
+ <_description>Super is mapped to the Win-keys.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:hyper_win</name>
+ <_description>Hyper is mapped to the Win-keys.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:alt_super_win</name>
+ <_description>Alt is mapped to the right Win-key and Super to Menu.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>altwin:swap_lalt_lwin</name>
+ <_description>Left Alt is swapped with left Win-key.</_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>Compose key position</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>compose:ralt</name>
+ <_description>Right Alt is Compose.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:lwin</name>
+ <_description>Left Win-key is Compose.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:rwin</name>
+ <_description>Right Win-key is Compose.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:menu</name>
+ <_description>Menu is Compose.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:rctrl</name>
+ <_description>Right Ctrl is Compose.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:caps</name>
+ <_description>Caps Lock is Compose.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>compose:102</name>
+ <_description>Less-than/Greater-than is Compose.</_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 keys work as with Mac.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>numpad:microsoft</name>
+ <_description>Shift with numeric keypad keys works as in MS Windows.</_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:badmap</name>
+ <_description>Swap keycodes of two keys when Mac keyboards are misdetected by kernel.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>shift:breaks_caps</name>
+ <_description>Shift cancels CapsLock.</_description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+ <!-- Special shortcuts for the Euro character -->
+ <configItem>
+ <name>eurosign</name>
+ <_description>Adding the EuroSign to certain keys</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>eurosign:e</name>
+ <_description>Add the EuroSign to the E key.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>eurosign:2</name>
+ <_description>Add the EuroSign to the 2 key.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>eurosign:4</name>
+ <_description>Add the EuroSign to the 4 key.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>eurosign:5</name>
+ <_description>Add the EuroSign to the 5 key.</_description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="false">
+ <!-- Let space output nobreakspace for the desired level -->
+ <configItem>
+ <name>nbsp</name>
+ <_description>Using space key to input non-breakable space character</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>nbsp:none</name>
+ <_description>Space key outputs usual space at any level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level2</name>
+ <_description>Space key outputs non-breakable space character at second level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level3</name>
+ <_description>Space key outputs non-breakable space character at third level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level3s</name>
+ <_description>Space key outputs non-breakable space character at third level, nothing at fourth level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level3n</name>
+ <_description>Space key outputs non-breakable space character at third level, thin non-breakable space character at fourth level</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level4</name>
+ <_description>Space key outputs non-breakable space character at fourth level.</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level4n</name>
+ <_description>Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
+ <name>nbsp:level4nl</name>
+ <_description>Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)</_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>
+ </group>
+ </optionList>
+</xkbConfigRegistry>
diff --git a/xorg-server/xkbdata.src/rules/merge.sh b/xorg-server/xkbdata.src/rules/merge.sh
new file mode 100644
index 000000000..8dfde5546
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/merge.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+DEST=$1
+shift
+
+if [ -z "$HDR" ]; then
+ HDR="HDR"
+fi
+
+basename=`basename $0`
+echo "// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY $basename FROM rules/*.part" >$DEST
+
+for i in $*; do
+ if [ "$i" == "$HDR" ] || [ "$i" == "HDR" ]; then
+ echo >> $DEST;
+ read hdr
+ echo "$hdr" >> $DEST
+ else
+ cat $i >> $DEST;
+ fi
+done < $HDR
+
diff --git a/xorg-server/xkbdata.src/rules/xfree98 b/xorg-server/xkbdata.src/rules/xfree98
new file mode 100644
index 000000000..ca7a18bf7
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/xfree98
@@ -0,0 +1,29 @@
+//
+// Rules for resolving XKB components for use with XFree86
+// Copyright 1996 by Joseph Moss
+//
+// $XFree86: xc/programs/xkbcomp/rules/xfree86,v 3.5 1996/12/17 21:03:59 dawes Exp $
+//
+
+! model = keycodes geometry
+ pc98 = xfree98(pc98) nec(pc98)
+ jp106 = xfree98(jp106) pc(jp106)
+
+! model layout = symbols
+ pc98 nec_vndr/jp = nec_vndr/jp(pc98)
+ jp106 jp = jp
+
+! model layout = compat types
+ * * = complete complete
+
+! option = symbols
+ grp:switch = +group(switch)
+ grp:toggle = +group(toggle)
+ grp:shift_toggle = +group(shifts_toggle)
+ grp:ctrl_shift_toggle = +group(ctrl_shift_toggle)
+ grp:ctrl_alt_toggle = +group(ctrl_alt_toggle)
+ ctrl:nocaps = +ctrl(nocaps)
+ ctrl:swapcaps = +ctrl(swapcaps)
+ ctrl:ctrl_ac = +ctrl(ctrl_ac)
+ ctrl:ctrl_aa = +ctrl(ctrl_aa)
+
diff --git a/xorg-server/xkbdata.src/rules/xkb.dtd b/xorg-server/xkbdata.src/rules/xkb.dtd
new file mode 100644
index 000000000..4452712fd
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/xkb.dtd
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+
+ Description: XKB configuration file DTD
+ Author: Sergey V. Udaltsov
+
+-->
+
+<!ELEMENT xkbConfigRegistry (modelList,layoutList,optionList)>
+
+<!ATTLIST xkbConfigRegistry
+ version CDATA "1.0">
+
+<!ELEMENT modelList (model*)>
+
+<!ELEMENT model (configItem)>
+
+<!ELEMENT layoutList (layout*)>
+
+<!ELEMENT layout (configItem,variantList?)>
+
+<!ELEMENT optionList (group*)>
+
+<!ELEMENT variantList (variant*)>
+
+<!ELEMENT variant (configItem)>
+
+<!ELEMENT group (configItem,option*)>
+<!ATTLIST group
+ allowMultipleSelection (true|false) "false">
+
+<!ELEMENT option (configItem)>
+
+<!ELEMENT configItem (name,shortDescription*,description*,vendor?,countryList?,languageList?)>
+
+<!ATTLIST configItem
+ popularity (standard|exotic) "standard">
+
+<!ELEMENT name (#PCDATA)>
+
+<!ELEMENT shortDescription (#PCDATA)>
+<!ATTLIST shortDescription
+ xml:lang CDATA #IMPLIED>
+
+<!ELEMENT description (#PCDATA)>
+<!ATTLIST description
+ xml:lang CDATA #IMPLIED>
+
+<!ELEMENT vendor (#PCDATA)>
+
+<!ELEMENT countryList (iso3166Id+)>
+
+<!ELEMENT iso3166Id (#PCDATA)>
+
+<!ELEMENT languageList (iso639Id+)>
+
+<!ELEMENT iso639Id (#PCDATA)>
+
diff --git a/xorg-server/xkbdata.src/rules/xml2lst.pl b/xorg-server/xkbdata.src/rules/xml2lst.pl
new file mode 100644
index 000000000..478fce89c
--- /dev/null
+++ b/xorg-server/xkbdata.src/rules/xml2lst.pl
@@ -0,0 +1,288 @@
+#!/usr/bin/perl
+
+# converts the <rules>.xml file to the old format <rules>.lst file
+#
+# Usage:
+#
+# perl xml2lst.pl [lang] < filename.xml > filename.lst
+#
+# author Ivan Pascal
+
+if (@ARGV) {
+ $lang = shift @ARGV;
+} else {
+ $lang = '';
+}
+
+$doc = new_document( 0, '');
+parse('', $doc);
+
+($reg) = node_by_name($doc, '/xkbConfigRegistry');
+@models = node_by_name($reg, 'modelList/model/configItem');
+@layouts = node_by_name($reg, 'layoutList/layout/configItem');
+@options = node_by_name($reg, 'optionList/group/configItem');
+
+print "! model\n";
+for $i (@models) {
+ ($name) = node_by_name($i, 'name');
+ @desc = node_by_name($i, 'description');
+ $descr = with_attribute(\@desc, 'xml:lang='.$lang);
+ if (! defined $descr) {
+ $descr = with_attribute(\@desc, 'xml:lang=');
+ }
+ printf(" %-15s %s\n", text_child($name), text_child($descr));
+}
+
+print "\n! layout\n";
+for $i (@layouts) {
+ ($name) = node_by_name($i, 'name');
+ @desc = node_by_name($i, 'description');
+ $descr = with_attribute(\@desc, 'xml:lang='.$lang);
+ if (! defined $descr ) {
+ $descr = with_attribute(\@desc, 'xml:lang=');
+ }
+ printf(" %-15s %s\n", text_child($name), text_child($descr));
+}
+
+print "\n! variant\n";
+for $l (@layouts) {
+ ($lname) = node_by_name($l, 'name');
+ @variants = node_by_name($l, '../variantList/variant/configItem');
+ for $v (@variants) {
+ ($name) = node_by_name($v, 'name');
+ @desc = node_by_name($v, 'description');
+ $descr = with_attribute(\@desc, 'xml:lang='.$lang);
+ if (! defined $descr) {
+ $descr = with_attribute(\@desc, 'xml:lang=');
+ }
+ printf(" %-15s %s: %s\n",
+ text_child($name), text_child($lname), text_child($descr));
+ }
+}
+
+print "\n! option\n";
+for $g (@options) {
+ ($name) = node_by_name($g, 'name');
+ @desc = node_by_name($g, 'description');
+ $descr = with_attribute(\@desc, 'xml:lang='.$lang);
+ if (! defined $descr) {
+ $descr = with_attribute(\@desc, 'xml:lang=');
+ }
+ printf(" %-20s %s\n", text_child($name), text_child($descr));
+
+ @opts = node_by_name($g, '../option/configItem');
+ for $o (@opts) {
+ ($name) = node_by_name($o, 'name');
+ @desc = node_by_name($o, 'description');
+ $descr = with_attribute(\@desc, 'xml:lang='.$lang);
+ if (! defined $descr) {
+ $descr = with_attribute(\@desc, 'xml:lang=');
+ }
+ printf(" %-20s %s\n",
+ text_child($name), text_child($descr));
+ }
+}
+
+sub with_attribute {
+ local ($nodelist, $attrexpr) = @_;
+ local ($attr, $value) = split (/=/, $attrexpr);
+ local ($node, $attrvalue);
+ if (defined $value && $value ne '') {
+ $value =~ s/"//g;
+ foreach $node (@{$nodelist}) {
+ $attrvalue = node_attribute($node, $attr);
+ if (defined $attrvalue && $attrvalue eq $value) {
+ return $node;
+ }
+ }
+ } else {
+ foreach $node (@{$nodelist}) {
+ if (! defined node_attribute($node, $attr)) {
+ return $node;
+ }
+ }
+ }
+ undef;
+}
+
+# Subroutines
+
+sub parse {
+ local $intag = 0;
+ my (@node_stack, $parent);
+ $parent = @_[1];
+ local ($tag, $text);
+
+ while (<>) {
+ chomp;
+ @str = split /([<>])/;
+ shift @str if ($str[0] eq '' || $str[0] =~ /^[ \t]*$/);
+
+ while (scalar @str) {
+ $token = shift @str;
+ if ($token eq '<') {
+ $intag = 1;
+ if (defined $text) {
+ add_text_node($parent, $text);
+ undef $text;
+ }
+ } elsif ($token eq '>') {
+ $intag = 0;
+ if ($tag =~ /^\/(.*)/) { # close tag
+ $parent = pop @node_stack;
+ } elsif ($tag =~ /^([^\/]*)\/$/) {
+ empty_tag($parent, $1);
+ } else {
+ if (defined ($node = open_tag($parent, $tag))) {
+ push @node_stack, $parent;
+ $parent = $node;
+ }
+ }
+ undef $tag;
+ } else {
+ if ($intag == 1) {
+ if (defined $tag) {
+ $tag .= ' '. $token;
+ } else {
+ $tag = $token;
+ }
+ } else {
+ if (defined $text) {
+ $text .= "\n" . $token;
+ } else {
+ $text = $token;
+ }
+ }
+ }
+ }
+ }
+}
+
+sub new_document {
+ $doc = new_node( 0, '', 'DOCUMENT');
+ $doc->{CHILDREN} = [];
+ return $doc;
+}
+
+sub new_node {
+ local ($parent_node, $tag, $type) = @_;
+
+ my %node;
+ $node{PARENT} = $parent_node;
+ $node{TYPE} = $type;
+
+ if ($type eq 'COMMENT' || $type eq 'TEXT') {
+ $node{TEXT} = $tag;
+ $node{NAME} = $type;
+ return \%node;
+ }
+
+ local ($tname, $attr) = split(' ', $tag, 2);
+ $node{NAME} = $tname;
+
+ if (defined $attr && $attr ne '') {
+ my %attr_table;
+ local @attr_list = split ( /"/, $attr);
+ local ($name, $value);
+ while (scalar @attr_list) {
+ $name = shift @attr_list;
+ $name =~ s/[ =]//g;
+ next if ($name eq '');
+ $value = shift @attr_list;
+ $attr_table{$name} =$value;
+ }
+ $node{ATTRIBUTES} = \%attr_table;
+ }
+ return \%node;
+}
+
+sub add_node {
+ local ($parent_node, $node) = @_;
+ push @{$parent_node->{CHILDREN}}, $node;
+
+ local $tname = $node->{NAME};
+ if (defined $parent_node->{$tname}) {
+ push @{$parent_node->{$tname}}, $node
+ } else {
+ $parent_node->{$tname} = [ $node ];
+ }
+}
+
+sub empty_tag {
+ local ($parent_node, $tag) = @_;
+ local $node = new_node($parent_node, $tag, 'EMPTY');
+ add_node($parent_node, $node);
+}
+
+sub open_tag {
+ local ($parent_node, $tag) = @_;
+ local $node;
+
+ if ($tag =~ /^\?.*/ || $tag =~ /^\!.*/) {
+ $node = new_node($parent_node, $tag, 'COMMENT');
+ add_node($parent_node, $node);
+ undef; return;
+ } else {
+ $node = new_node($parent_node, $tag, 'NODE');
+ $node->{CHILDREN} = [];
+ add_node($parent_node, $node);
+ return $node;
+ }
+}
+
+sub add_text_node {
+ local ($parent_node, $text) = @_;
+ local $node = new_node($parent_node, $text, 'TEXT');
+ add_node($parent_node, $node);
+}
+
+sub node_by_name {
+ local ($node, $name) = @_;
+ local ($tagname, $path) = split(/\//, $name, 2);
+
+ my @nodelist;
+
+ if ($tagname eq '') {
+ while ($node->{PARENT} != 0) {
+ $node = $node->{PARENT};
+ }
+ sublist_by_name($node, $path, \@nodelist);
+ } else {
+ sublist_by_name($node, $name, \@nodelist);
+ }
+ return @nodelist;
+}
+
+sub sublist_by_name {
+ local ($node, $name, $res) = @_;
+ local ($tagname, $path) = split(/\//, $name, 2);
+
+ if (! defined $path) {
+ push @{$res}, (@{$node->{$tagname}});
+ return;
+ }
+
+ if ($tagname eq '..' && $node->{PARENT} != 0) {
+ $node = $node->{PARENT};
+ sublist_by_name($node, $path, $res);
+ } else {
+ local $n;
+ for $n (@{$node->{$tagname}}) {
+ sublist_by_name($n, $path, $res);
+ }
+ }
+}
+
+sub node_attribute {
+ local $node = @_[0];
+ if (defined $node->{ATTRIBUTES}) {
+ return $node->{ATTRIBUTES}{@_[1]};
+ }
+ undef;
+}
+
+sub text_child {
+ local ($node) = @_;
+ local ($child) = node_by_name($node, 'TEXT');
+ return $child->{TEXT};
+}