Module Name:    src
Committed By:   mrg
Date:           Mon Oct 17 07:40:23 UTC 2022

Modified Files:
        src/distrib/sets/lists/xbase: mi
        src/external/mit/xorg/lib/xkeyboard-config: xkeyboard-config.man
        src/external/mit/xorg/lib/xkeyboard-config/rules: Makefile base
            base.lst evdev evdev.lst
        src/external/mit/xorg/lib/xkeyboard-config/symbols: Makefile

Log Message:
updates for xkeyboard-config 2.37.


To generate a diff of this commit:
cvs rdiff -u -r1.171 -r1.172 src/distrib/sets/lists/xbase/mi
cvs rdiff -u -r1.10 -r1.11 \
    src/external/mit/xorg/lib/xkeyboard-config/xkeyboard-config.man
cvs rdiff -u -r1.5 -r1.6 \
    src/external/mit/xorg/lib/xkeyboard-config/rules/Makefile
cvs rdiff -u -r1.17 -r1.18 \
    src/external/mit/xorg/lib/xkeyboard-config/rules/base \
    src/external/mit/xorg/lib/xkeyboard-config/rules/base.lst \
    src/external/mit/xorg/lib/xkeyboard-config/rules/evdev.lst
cvs rdiff -u -r1.16 -r1.17 \
    src/external/mit/xorg/lib/xkeyboard-config/rules/evdev
cvs rdiff -u -r1.16 -r1.17 \
    src/external/mit/xorg/lib/xkeyboard-config/symbols/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/xbase/mi
diff -u src/distrib/sets/lists/xbase/mi:1.171 src/distrib/sets/lists/xbase/mi:1.172
--- src/distrib/sets/lists/xbase/mi:1.171	Sun Sep 11 05:54:00 2022
+++ src/distrib/sets/lists/xbase/mi	Mon Oct 17 07:40:22 2022
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.171 2022/09/11 05:54:00 mrg Exp $
+# $NetBSD: mi,v 1.172 2022/10/17 07:40:22 mrg Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -866,6 +866,7 @@
 ./usr/X11R7/lib/X11/xkb/symbols/ben			xbase-obsolete			obsolete
 ./usr/X11R7/lib/X11/xkb/symbols/bg			xbase-xkeyboard-config-lib	xorg
 ./usr/X11R7/lib/X11/xkb/symbols/bn			xbase-obsolete			obsolete
+./usr/X11R7/lib/X11/xkb/symbols/bqn			xbase-xkeyboard-config-lib	xorg
 ./usr/X11R7/lib/X11/xkb/symbols/br			xbase-xkeyboard-config-lib	xorg
 ./usr/X11R7/lib/X11/xkb/symbols/brai			xbase-xkeyboard-config-lib	xorg
 ./usr/X11R7/lib/X11/xkb/symbols/braille			xbase-obsolete			obsolete
@@ -962,7 +963,7 @@
 ./usr/X11R7/lib/X11/xkb/symbols/jolla_vndr		base-x11-root			xorg
 ./usr/X11R7/lib/X11/xkb/symbols/jolla_vndr/sbj		xbase-xkeyboard-config-lib	xorg
 ./usr/X11R7/lib/X11/xkb/symbols/jp			xbase-xkeyboard-config-lib	xorg
-./usr/X11R7/lib/X11/xkb/symbols/jv			xbase-xkeyboard-config-lib	xorg
+./usr/X11R7/lib/X11/xkb/symbols/jv			xbase-obsolete			obsolete
 ./usr/X11R7/lib/X11/xkb/symbols/kan			xbase-obsolete			obsolete
 ./usr/X11R7/lib/X11/xkb/symbols/ke			xbase-xkeyboard-config-lib	xorg
 ./usr/X11R7/lib/X11/xkb/symbols/keypad			xbase-xkeyboard-config-lib	xorg

Index: src/external/mit/xorg/lib/xkeyboard-config/xkeyboard-config.man
diff -u src/external/mit/xorg/lib/xkeyboard-config/xkeyboard-config.man:1.10 src/external/mit/xorg/lib/xkeyboard-config/xkeyboard-config.man:1.11
--- src/external/mit/xorg/lib/xkeyboard-config/xkeyboard-config.man:1.10	Sun Jan  9 13:54:16 2022
+++ src/external/mit/xorg/lib/xkeyboard-config/xkeyboard-config.man	Mon Oct 17 07:40:23 2022
@@ -1,11 +1,35 @@
 .\" WARNING: this man page is autogenerated. Do not edit or you will lose all your changes.
-.TH XKEYBOARD-CONFIG @miscmansuffix@ @vendorversion@
+.TH XKEYBOARD-CONFIG 7 "xkeyboard-config 2.37" "X Version 11"
 .SH NAME
 xkeyboard-config \- XKB data description files
 .SH DESCRIPTION
 xkeyboard-config provides the description files for the X Keyboard
-Extension (XKB). The configuration options below are usually applied with
-setxkbmap(@appmansuffix@).
+Extension (XKB) and for libxkbcommon. Typically it is
+the task of the desktop environment to apply the
+requested configuration. Users running an X server can also use the
+setxkbmap(1) tool to apply keyboard configuration at runtime or configure XKB
+settings in the xorg.conf(5).
+
+.SH XKB DATA FILES LOAD PATHS
+
+xkeyboard-config provides the XKB data files installed in
+/usr/X11R7/share/X11/xkb. User-specific data files may be elsewhere but it depends on
+the tool whether those files are loaded. For example, the libxkbcommon
+library will by default load XKB data files from the user's home directory.
+See the libxkbcommon documentation for details.
+
+.SH THE "CUSTOM" LAYOUT
+
+The "custom" layout is a layout that is listed as available to tools
+reading the data files but is not actually provided by xkeyboard-config.
+A user may save a layout specification in the /usr/X11R7/share/X11/xkb/symbols/custom file
+and that layout will be available to most tools interacting with the
+xkeyboard-config data files. This is primarily aimed at systems running X
+where additional lookup paths cannot easily be added.
+.PP
+Because the "custom" layout is merely listed as available but not
+provided by xkeyboard-config, the layout will not be overwritten on updates.
+
 .SH MODELS
 .TS
 left,box;
@@ -203,6 +227,7 @@ teck227	Truly Ergonomic 227
 teck229	Truly Ergonomic 229
 apex300	SteelSeries Apex 300 (Apex RAW)
 chromebook	Chromebook
+ppkb	PinePhone Keyboard
 
 .TE
 .SH LAYOUTS
@@ -240,11 +265,11 @@ us(workman)	English (Workman)
 us(workman-intl)	English (Workman, intl., with dead keys)
 
 _
-af	Afghani
+af	Dari
 af(ps)	Pashto
 af(uz)	Uzbek (Afghanistan)
-af(olpc-ps)	Pashto (Afghanistan, OLPC)
-af(fa-olpc)	Persian (Afghanistan, Dari OLPC)
+af(ps-olpc)	Pashto (Afghanistan, OLPC)
+af(fa-olpc)	Dari (Afghanistan, OLPC)
 af(uz-olpc)	Uzbek (Afghanistan, OLPC)
 
 _
@@ -289,6 +314,7 @@ by(legacy)	Belarusian (legacy)
 by(latin)	Belarusian (Latin)
 by(ru)	Russian (Belarus)
 by(intl)	Belarusian (intl.)
+by(phonetic)	Belarusian (phonetic)
 
 _
 be	Belgian
@@ -323,11 +349,12 @@ in(ori)	Oriya
 in(ori-bolnagri)	Oriya (Bolnagri)
 in(ori-wx)	Oriya (Wx)
 in(olck)	Ol Chiki
-in(tam_tamilnet)	Tamil (TamilNet '99)
-in(tam_tamilnet_with_tam_nums)	Tamil (TamilNet '99 with Tamil numerals)
-in(tam_tamilnet_TAB)	Tamil (TamilNet '99, TAB encoding)
-in(tam_tamilnet_TSCII)	Tamil (TamilNet '99, TSCII encoding)
-in(tam)	Tamil (InScript)
+in(tamilnet)	Tamil (TamilNet '99)
+in(tamilnet_tamilnumbers)	Tamil (TamilNet '99 with Tamil numerals)
+in(tamilnet_TAB)	Tamil (TamilNet '99, TAB encoding)
+in(tamilnet_TSCII)	Tamil (TamilNet '99, TSCII encoding)
+in(tam)	Tamil (InScript, with Arabic numerals)
+in(tam_tamilnumbers)	Tamil (InScript, with Tamil numerals)
 in(tel)	Telugu
 in(tel-kagapa)	Telugu (KaGaPa, phonetic)
 in(tel-sarala)	Telugu (Sarala)
@@ -382,6 +409,7 @@ ma(tifinagh-alt-phonetic)	Berber (Morocc
 ma(tifinagh-extended)	Berber (Morocco, Tifinagh extended)
 ma(tifinagh-phonetic)	Berber (Morocco, Tifinagh phonetic)
 ma(tifinagh-extended-phonetic)	Berber (Morocco, Tifinagh extended phonetic)
+ma(rif)	Tarifit
 
 _
 cm	English (Cameroon)
@@ -394,14 +422,16 @@ cm(mmuock)	Mmuock
 _
 mm	Burmese
 mm(zawgyi)	Burmese Zawgyi
+mm(shn)	Shan
+mm(zgt)	Shan (Zawgyi Tai)
+mm(mnw)	Mon
+mm(mnw-a1)	Mon (A1)
 
 _
 ca	French (Canada)
 ca(fr-dvorak)	French (Canada, Dvorak)
 ca(fr-legacy)	French (Canada, legacy)
-ca(multix)	Canadian (intl.)
-ca(multi)	Canadian (intl., 1st part)
-ca(multi-2gr)	Canadian (intl., 2nd part)
+ca(multix)	Canadian (CSA)
 ca(ike)	Inuktitut
 ca(eng)	English (Canada)
 
@@ -420,7 +450,7 @@ cn(mon_manchu_galik)	Mongolian (Manchu G
 cn(tib)	Tibetan
 cn(tib_asciinum)	Tibetan (with ASCII numerals)
 cn(ug)	Uyghur
-cn(altgr-pinyin)	Hanyu Pinyin (with AltGr dead keys)
+cn(altgr-pinyin)	Hanyu Pinyin Letters (with AltGr dead keys)
 
 _
 hr	Croatian
@@ -465,6 +495,7 @@ ee(us)	Estonian (US)
 _
 ir	Persian
 ir(pes_keypad)	Persian (with Persian keypad)
+ir(azb)	Azerbaijani (Iran)
 ir(ku)	Kurdish (Iran, Latin Q)
 ir(ku_f)	Kurdish (Iran, F)
 ir(ku_alt)	Kurdish (Iran, Latin Alt-Q)
@@ -504,7 +535,7 @@ fr(dvorak)	French (Dvorak)
 fr(mac)	French (Macintosh)
 fr(azerty)	French (AZERTY)
 fr(afnor)	French (AZERTY, AFNOR)
-fr(bre)	French (Breton)
+fr(bre)	Breton (France)
 fr(oci)	Occitan
 fr(geo)	Georgian (France, AZERTY Tskapo)
 fr(us)	French (US)
@@ -637,7 +668,6 @@ latam(nodeadkeys)	Spanish (Latin America
 latam(deadtilde)	Spanish (Latin American, dead tilde)
 latam(dvorak)	Spanish (Latin American, Dvorak)
 latam(colemak)	Spanish (Latin American, Colemak)
-latam(colemak-gaming)	Spanish (Latin American, Colemak for gaming)
 
 _
 lt	Lithuanian
@@ -727,6 +757,8 @@ ru(phonetic)	Russian (phonetic)
 ru(phonetic_winkeys)	Russian (phonetic, Windows)
 ru(phonetic_YAZHERTY)	Russian (phonetic, YAZHERTY)
 ru(typewriter)	Russian (typewriter)
+ru(ruchey_ru)	Russian (engineering, RU)
+ru(ruchey_en)	Russian (engineering, EN)
 ru(legacy)	Russian (legacy)
 ru(typewriter-legacy)	Russian (typewriter, legacy)
 ru(tt)	Tatar
@@ -746,6 +778,7 @@ ru(chm)	Mari
 ru(phonetic_azerty)	Russian (phonetic, AZERTY)
 ru(phonetic_dvorak)	Russian (phonetic, Dvorak)
 ru(phonetic_fr)	Russian (phonetic, French)
+ru(ab)	Abkhazian (Russia)
 
 _
 rs	Serbian
@@ -827,15 +860,13 @@ th(pat)	Thai (Pattachote)
 _
 tr	Turkish
 tr(f)	Turkish (F)
+tr(e)	Turkish (E)
 tr(alt)	Turkish (Alt-Q)
 tr(ku)	Kurdish (Turkey, Latin Q)
 tr(ku_f)	Kurdish (Turkey, F)
 tr(ku_alt)	Kurdish (Turkey, Latin Alt-Q)
 tr(intl)	Turkish (intl., with dead keys)
-tr(crh)	Crimean Tatar (Turkish Q)
-tr(crh_f)	Crimean Tatar (Turkish F)
-tr(crh_alt)	Crimean Tatar (Turkish Alt-Q)
-tr(ot)	Ottoman
+tr(ot)	Ottoman (Q)
 tr(otf)	Ottoman (F)
 tr(otk)	Old Turkic
 tr(otkf)	Old Turkic (F)
@@ -850,10 +881,14 @@ ua	Ukrainian
 ua(phonetic)	Ukrainian (phonetic)
 ua(typewriter)	Ukrainian (typewriter)
 ua(winkeys)	Ukrainian (Windows)
+ua(macOS)	Ukrainian (macOS)
 ua(legacy)	Ukrainian (legacy)
 ua(rstu)	Ukrainian (standard RSTU)
 ua(rstu_ru)	Russian (Ukraine, standard RSTU)
 ua(homophonic)	Ukrainian (homophonic)
+ua(crh)	Crimean Tatar (Turkish Q)
+ua(crh_f)	Crimean Tatar (Turkish F)
+ua(crh_alt)	Crimean Tatar (Turkish Alt-Q)
 
 _
 gb	English (UK)
@@ -866,6 +901,7 @@ gb(mac_intl)	English (UK, Macintosh, int
 gb(colemak)	English (UK, Colemak)
 gb(colemak_dh)	English (UK, Colemak-DH)
 gb(pl)	Polish (British keyboard)
+gb(gla)	Scottish Gaelic
 
 _
 uz	Uzbek
@@ -874,16 +910,13 @@ uz(latin)	Uzbek (Latin)
 _
 vn	Vietnamese
 vn(us)	Vietnamese (US)
-vn(fr)	Vietnamese (French)
+vn(fr)	Vietnamese (France)
 
 _
 kr	Korean
 kr(kr104)	Korean (101/104-key compatible)
 
 _
-nec_vndr/jp	Japanese (PC-98)
-
-_
 ie	Irish
 ie(CloGaelach)	CloGaelach
 ie(UnicodeExpert)	Irish (UnicodeExpert)
@@ -970,10 +1003,10 @@ md(gag)	Moldavian (Gagauz)
 
 _
 id	Indonesian (Latin)
-id(phoneticx)	Indonesian (Arab Pegon, extended phonetic)
-
-_
-jv	Indonesian (Javanese)
+id(javanese)	Javanese
+id(melayu-phonetic)	Indonesian (Arab Melayu, phonetic)
+id(melayu-phoneticx)	Indonesian (Arab Melayu, extended phonetic)
+id(pegon-phonetic)	Indonesian (Arab Pegon, phonetic)
 
 _
 my	Malay (Jawi, Arabic Keyboard)
@@ -1008,30 +1041,33 @@ grp:toggle	Right Alt
 grp:lalt_toggle	Left Alt
 grp:caps_toggle	Caps Lock
 grp:shift_caps_toggle	Shift+Caps Lock
-grp:shift_caps_switch	Caps Lock to first layout; Shift+Caps Lock to last layout
-grp:win_menu_switch	Left Win to first layout; Right Win/Menu to last layout
-grp:lctrl_rctrl_switch	Left Ctrl to first layout; Right Ctrl to last layout
+grp:caps_select	Caps Lock to first layout; Shift+Caps Lock to second layout
+grp:win_menu_select	Left Win to first layout; Right Win/Menu to second layout
+grp:ctrl_select	Left Ctrl to first layout; Right Ctrl to second layout
 grp:alt_caps_toggle	Alt+Caps Lock
-grp:shifts_toggle	Both Shift together
-grp:alts_toggle	Both Alt together
-grp:ctrls_toggle	Both Ctrl together
+grp:shifts_toggle	Both Shifts together
+grp:alts_toggle	Both Alts together
+grp:alt_altgr_toggle	Both Alts together; AltGr alone chooses third level
+grp:ctrls_toggle	Both Ctrls together
 grp:ctrl_shift_toggle	Ctrl+Shift
 grp:lctrl_lshift_toggle	Left Ctrl+Left Shift
 grp:rctrl_rshift_toggle	Right Ctrl+Right Shift
 grp:ctrl_alt_toggle	Alt+Ctrl
 grp:alt_shift_toggle	Alt+Shift
 grp:lalt_lshift_toggle	Left Alt+Left Shift
-grp:alt_space_toggle	Alt+Space
+grp:ralt_rshift_toggle	Right Alt+Right Shift
 grp:menu_toggle	Menu
 grp:lwin_toggle	Left Win
+grp:alt_space_toggle	Alt+Space
 grp:win_space_toggle	Win+Space
+grp:ctrl_space_toggle	Ctrl+Space
 grp:rwin_toggle	Right Win
 grp:lshift_toggle	Left Shift
 grp:rshift_toggle	Right Shift
 grp:lctrl_toggle	Left Ctrl
 grp:rctrl_toggle	Right Ctrl
 grp:sclk_toggle	Scroll Lock
-grp:lctrl_lwin_rctrl_menu	Left Ctrl+Left Win to first layout; Right Ctrl+Menu to second layout
+grp:lctrl_lwin_rctrl_menu	Ctrl+Left Win to first layout; Ctrl+Menu to second layout
 grp:lctrl_lwin_toggle	Left Ctrl+Left Win
 
 .TE
@@ -1093,7 +1129,7 @@ Option	Description
 ctrl:nocaps	Caps Lock as Ctrl
 ctrl:lctrl_meta	Left Ctrl as Meta
 ctrl:swapcaps	Swap Ctrl and Caps Lock
-ctrl:swapcaps_hyper	Caps Lock as Ctrl, Ctrl as Hyper
+ctrl:hyper_capscontrol	Caps Lock as Ctrl, Ctrl as Hyper
 ctrl:ac_ctrl	To the left of "A"
 ctrl:aa_ctrl	At the bottom left
 ctrl:rctrl_ralt	Right Ctrl as Right Alt
@@ -1259,6 +1295,7 @@ compose:caps-altgr	3rd level of Caps Loc
 compose:102	The "< >" key
 compose:102-altgr	3rd level of the "< >" key
 compose:paus	Pause
+compose:ins	Insert
 compose:prsc	PrtSc
 compose:sclk	Scroll Lock
 
@@ -1283,9 +1320,9 @@ apple:alupckeys	Apple Aluminium emulates
 shift:breaks_caps	Shift cancels Caps Lock
 misc:typo	Enable extra typographic characters
 misc:apl	Enable APL overlay characters
-shift:both_capslock	Both Shift together enable Caps Lock
-shift:both_capslock_cancel	Both Shift together enable Caps Lock; one Shift key disables it
-shift:both_shiftlock	Both Shift together enable Shift Lock
+shift:both_capslock	Both Shifts together enable Caps Lock
+shift:both_capslock_cancel	Both Shifts together enable Caps Lock; one Shift key disables it
+shift:both_shiftlock	Both Shifts together enable Shift Lock
 keypad:pointerkeys	Shift + Num Lock enables PointerKeys
 grab:break_actions	Allow breaking grabs with keyboard actions (warning: security risk)
 grab:debug	Allow grab and window tree logging
@@ -1320,9 +1357,11 @@ lB lB
 ___
 lB l.
 Option	Description
+lv5:caps_switch	Caps Lock chooses 5th level
 lv5:lsgt_switch	The "< >" key chooses 5th level
 lv5:ralt_switch	Right Alt chooses 5th level
 lv5:menu_switch	Menu chooses 5th level
+lv5:rctrl_switch	Right Ctrl chooses 5th level
 lv5:lsgt_switch_lock	The "< >" key chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
 lv5:ralt_switch_lock	Right Alt chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
 lv5:lwin_switch_lock	Left Win chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
@@ -1343,7 +1382,6 @@ Option	Description
 nbsp:none	Usual space at any level
 nbsp:level2	Non-breaking space at the 2nd level
 nbsp:level3	Non-breaking space at the 3rd level
-nbsp:level3s	Non-breaking space at the 3rd level, nothing at the 4th level
 nbsp:level3n	Non-breaking space at the 3rd level, thin non-breaking space at the 4th level
 nbsp:level4	Non-breaking space at the 4th level
 nbsp:level4n	Non-breaking space at the 4th level, thin non-breaking space at the 6th level
@@ -1352,7 +1390,6 @@ nbsp:zwnj2	Zero-width non-joiner at the 
 nbsp:zwnj2zwj3	Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level
 nbsp:zwnj2zwj3nb4	Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level, non-breaking space at the 4th level
 nbsp:zwnj2nb3	Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level
-nbsp:zwnj2nb3s	Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, nothing at the 4th level
 nbsp:zwnj2nb3zwj4	Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, zero-width joiner at the 4th level
 nbsp:zwnj2nb3nnb4	Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, thin non-breaking space at the 4th level
 nbsp:zwnj3zwj4	Zero-width non-joiner at the 3rd level, zero-width joiner at the 4th level
@@ -1438,23 +1475,23 @@ terminate:ctrl_alt_bksp	Ctrl+Alt+Backspa
 
 
 .SH FILES
-@xkb_base@/compat
+/usr/X11R7/share/X11/xkb/compat
 
-@xkb_base@/compiled
+/usr/X11R7/share/X11/xkb/compiled
 
-@xkb_base@/geometry
+/usr/X11R7/share/X11/xkb/geometry
 
-@xkb_base@/keycodes
+/usr/X11R7/share/X11/xkb/keycodes
 
-@xkb_base@/keymap
+/usr/X11R7/share/X11/xkb/keymap
 
-@xkb_base@/rules
+/usr/X11R7/share/X11/xkb/rules
 
-@xkb_base@/semantics
+/usr/X11R7/share/X11/xkb/semantics
 
-@xkb_base@/symbols
+/usr/X11R7/share/X11/xkb/symbols
 
-@xkb_base@/types
+/usr/X11R7/share/X11/xkb/types
 
 .SH SEE ALSO
-setxkbmap(@appmansuffix@)
+setxkbmap(1)

Index: src/external/mit/xorg/lib/xkeyboard-config/rules/Makefile
diff -u src/external/mit/xorg/lib/xkeyboard-config/rules/Makefile:1.5 src/external/mit/xorg/lib/xkeyboard-config/rules/Makefile:1.6
--- src/external/mit/xorg/lib/xkeyboard-config/rules/Makefile:1.5	Tue Apr 27 03:58:55 2021
+++ src/external/mit/xorg/lib/xkeyboard-config/rules/Makefile	Mon Oct 17 07:40:23 2022
@@ -1,15 +1,13 @@
-#	$NetBSD: Makefile,v 1.5 2021/04/27 03:58:55 mrg Exp $
+#	$NetBSD: Makefile,v 1.6 2022/10/17 07:40:23 mrg Exp $
 #
 #	When upgrading, re-assemble the files base, base.lst, evdev and
 #	evdev.lst by running ./configure && make in the dist directory,
 #	and copy the resulting files back here.
 #
-#	% env PKG_CONFIG_PATH=/usr/X11R7/lib/pkgconfig ./configure --prefix=/usr/X11R7
-#	% cd man
-#	% gmake xkeyboard-config.7
-#	% cd ../rules
-#	% ln -s /usr/pkg/bin/python3.8 ./python3
-#	% env PATH=${PATH}:. PYTHON=python3.8 gmake base base.lst evdev evdev.lst
+#	% env PKG_CONFIG_PATH=/usr/X11R7/lib/pkgconfig meson --prefix=/usr/X11R7 build
+#	% env PKG_CONFIG_PATH=/usr/X11R7/lib/pkgconfig meson compile -C build
+#	% cp build/xkeyboard-config.7 src/external/mit/xorg/lib/xkeyboard-config/xkeyboard-config.man
+#	% cp build/rules/{base,evdev}{,.lst} src/external/mit/xorg/lib/xkeyboard-config/rules
 
 .include <bsd.own.mk>
 

Index: src/external/mit/xorg/lib/xkeyboard-config/rules/base
diff -u src/external/mit/xorg/lib/xkeyboard-config/rules/base:1.17 src/external/mit/xorg/lib/xkeyboard-config/rules/base:1.18
--- src/external/mit/xorg/lib/xkeyboard-config/rules/base:1.17	Sun Jan  9 13:54:16 2022
+++ src/external/mit/xorg/lib/xkeyboard-config/rules/base	Mon Oct 17 07:40:23 2022
@@ -42,30 +42,6 @@
 ! $azerty = be fr
 ! $qwertz = al ch cz de hr hu ro si sk
 
-
-// All layouts with 3rd and 4th levels:
-! $threelevellayouts = af al az \
-              bd be bg br bt \
-              ca ch cm cn cz \
-              de dk dz \
-              ee es eu \
-              fi fo fr \
-              gb ge gh gr \
-              hr hu \
-              ie il in ir is it \
-              kh kz \
-              latam \
-              lk lt lv \
-              ml mm mn mt \
-              ng nl no \
-              ph pk pl pt \
-              ro rs \
-              se si sk sn sy \
-              tg tm tr tw \
-              ua us \
-              vn \
-              za
-
 ! $thinkpads = thinkpad thinkpad60 thinkpadz60
 
 ! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \
@@ -87,7 +63,7 @@
 
 
 ! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \
-              airkey \
+              airkey apex300 \
               apple armada azonaRF2300 \
               benqx brother \
               btc5113rf btc9000 btc9000a btc9001ah btc5090 btc9019u \
@@ -98,64 +74,60 @@
               compaqeak8 compaqik7 compaqik13 compaqik18 \
               creativedw7000 \
               cymotionlinux \
-              dell dellm65 inspiron dellusbmm \
+              dell dellm65 dellusbmm \
               emachines ennyah_dkb1008 evdev \
               genius geniuscomfy2 \
               gyration honeywell_euroboard \
               hp250x hp5xx hp500fa hpdv5 \
               hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx \
-              ibm_spacesaver ipaq inspiron intel \
-              logiaccess logicda logicink \
-              logiex110 logiclx300 \
-              logiinkse logiinkseusb logiitc logiik \
-              logitech_base itouch logiultrax \
-              logitech_g15 \
-              logidinovo logidinovoedge \
-              microsoft4000 microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \
-              microsoftoffice microsoftmult \
+              ibm_spacesaver inspiron intel ipaq itouch \
+              logiaccess logicda logicink logiclx300 \
+              logidinovo logidinovoedge logiex110 \
+              logiik logiinkse logiinkseusb logiitc \
+              logitech_base logitech_g15 logiultrax \
+              microsoft4000 microsoft7000 microsoftinet microsoftmult \
+              microsoftoffice microsoftprooem microsoftprose microsoftprousb \
               mx1998 mx2500 mx2750 \
               oretec \
-              pc105 \
-              presario propeller \
+              pc105 ppkb presario propeller \
               qtronix \
-              rapidaccess rapidaccess2 thinkpad60 \
+              rapidaccess rapidaccess2 \
               samsung4500 samsung4510 \
               silvercrest \
               sk1300 sk2500 sk6200 sk7100 \
               sven sven303 symplon \
-              teck227 teck229 \
+              teck227 teck229 thinkpad60 \
               toshiba_s3000 trust trustda \
-              unitekkb1925 yahoo \
-              apex300
-
-! $inetmediakbds = acer_ferrari4k acer_laptop btc5090 btc9019u cherryblueb \
-		cherrybluea herrycyboard chicony042 compaqik13 compaqik18 \
-		armada presario dellm65 inspiron dellusbmm diamond \
-		ennyah_dkb1008 genius geniuscomfy2 hpi6 hpxe3gc hpxe3gf \
-		hpxt1000 hpzt11xx hpdv5 hpxe4xxx hp5xx thinkpad60 ogitech_base \
-		logidinovo logidinovoedge logitech_g15 mx1998 mx2500 mx2750 \
-		microsoft4000 microsoft7000 microsoftprooem microsoftmult \
-		propeller samsung4500 samsung4510 sk1300 sk2500 sk7100 \
-		toshiba_s3000 trust trustda cymotionlinux silvercrest \
-		emachines benqx unitekkb1925 creativedw7000 compalfl90 \
-		pc105 a4techKB21 a4techKBS8 a4_rfkb23 asus_laptop btc6301urf \
-		dexxa dtk2000 fscaa1667g geniuskb19e geniuscomfy latitude \
-		microsoftpro precision_m scorpius sp_inet targa_v811 thinkpad \
-		tm2030USB-102 tm2030USB-106 trust_slimline
+              unitekkb1925 yahoo
 
-! $dvoraklayouts = br ca de ee es fr gb no pl se us
+! $inetmediakbds = \
+		a4_rfkb23 a4techKB21 a4techKBS8 acer_ferrari4k acer_laptop \
+		armada asus_laptop benqx btc5090 btc6301urf btc9019u \
+		cherrybluea cherryblueb cherrycyboard chicony042 \
+		compalfl90 compaqik13 compaqik18 creativedw7000 \
+		cymotionlinux dellm65 dellusbmm dexxa diamond dtk2000 \
+		emachines ennyah_dkb1008 fscaa1667g genius geniuscomfy \
+		geniuscomfy2 geniuskb19e hp5xx hpdv5 hpi6 hpxe3gc hpxe3gf \
+		hpxe4xxx hpxt1000 hpzt11xx inspiron latitude \
+		logidinovo logidinovoedge logitech_base logitech_g15 \
+		microsoft4000 microsoft7000 microsoftmult microsoftpro \
+		microsoftprooem mx1998 mx2500 mx2750 pc105 precision_m \
+		presario propeller samsung4500 samsung4510 scorpius \
+		silvercrest sk1300 sk2500 sk7100 sp_inet targa_v811 \
+		thinkpad thinkpad60 tm2030USB-102 tm2030USB-106 \
+		toshiba_s3000 trust trustda trust_slimline unitekkb1925
 
 ! model		=	keycodes
   amiga		=	amiga(de)
   ataritt	=	ataritt(de)
-  empty         =       empty
+  empty		=	empty
  $sun_jp	=	sun(type6_jp_usb)
  $sun		=	sun(type6_usb)
   pc98		=	xfree98(pc98)
  $applealu	=	macintosh(alukbd)
   macintosh_hhk	=	macintosh(hhk)
   macintosh_old	=	macintosh(old)
- $macs   	=	macintosh
+ $macs		=	macintosh
   thinkpadz60	=	xfree86(thinkpadz60)
   *		=	xfree86
 
@@ -172,7 +144,7 @@
 ! option	=	keycodes
 
 ! model		layout	=	geometry
-  thinkpad     us              =       thinkpad(us)
+  thinkpad	us	=	thinkpad(us)
 
 ! model		=	geometry
   microsoftelite	=	microsoft(elite)
@@ -216,11 +188,6 @@
   *		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)
@@ -253,27 +220,17 @@
   *		syr		basic		=	pc+sy(syc)
   *		syr		phonetic		=	pc+sy(syc_phonetic)
   *		tam		INSCRIPT		=	pc+in(tam)
-  *		tam		UNI		=	pc+in(tam_unicode)
-  *		tam		NUMERAL-KEYBOARD		=	pc+in(tam_keyboard_with_numerals)
-  *		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)
   nokiarx51	cz		qwerty		=	nokia_vndr/rx-51(cz_qwerty)
-  *			$sun_custom	$sun_var	=	pc+sun_vndr/%l%(v)
+  *		$sun_custom	$sun_var	=	pc+sun_vndr/%l%(v)
 
 ! 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
@@ -286,23 +243,15 @@
   *		kan			=	pc+in(kan)
   *		mi			=	pc+mao
   *		ogham			=	pc+ie(ogam)
-  *		ori			=	pc+ie(ori)
+  *		ori			=	pc+in(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)
@@ -335,23 +284,17 @@
   *		syr(basic)			=	pc+sy(syc)
   *		syr(phonetic)			=	pc+sy(syc_phonetic)
   *		tam(INSCRIPT)			=	pc+in(tam)
-  *		tam(UNI)			=	pc+in(tam_unicode)
-  *		tam(NUMERAL-KEYBOARD)			=	pc+in(tam_keyboard_with_numerals)
-  *		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)
+
+! model		layout			=	symbols
   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)
-  empty         *                       =       empty(basic)
-  *             empty                   =       empty(basic)
-  jollasbj 	$nonlatin		=	jolla_vndr/sbj(common)+us+%l%(v):2
+  empty		*			=	empty(basic)
+  *		empty			=	empty(basic)
+  jollasbj	$nonlatin		=	jolla_vndr/sbj(common)+us+%l%(v):2
   jollasbj	*			=	jolla_vndr/sbj(common)+%l%(v)
  $sun		$sun_custom		=	pc+sun_vndr/%l%(v)
   pc98		nec_vndr/jp		=	nec_vndr/jp(pc98)
@@ -374,21 +317,19 @@
   olpc		*			=	olpc+%l%(v)
   olpcm		$olpclayouts		=	olpc+%l%(m)
   olpcm		*			=	olpc+%l%(v)
- $thinkpads   	br			=	pc+br(thinkpad)
+ $thinkpads	br			=	pc+br(thinkpad)
   sl-c3x00	*			=	pc+sharp_vndr/sl-c3x00(basic)
   ws003sh	*			=	pc+sharp_vndr/ws003sh(basic)
   ws007sh	*			=	pc+sharp_vndr/ws007sh(basic)
   ws011sh	*			=	pc+sharp_vndr/ws011sh(basic)
   ws020sh	*			=	pc+sharp_vndr/ws020sh(basic)
-  *	   	$nonlatin		=	pc+us+%l%(v):2
+  *		$nonlatin		=	pc+us+%l%(v):2
   *		*			=	pc+%l%(v)
 
 ! model		layout[1]	=	symbols
   *		ar		=	pc+ara%(v[1])
   *		ben		=	pc+in(ben)
   *		bs		=	pc+ba%(v[1])
-  *		cs		=	pc+rs%(v[1])
-  *		cz_qwerty		=	pc+cz(qwerty)
   *		dev		=	pc+in(deva)
   *		dvorak		=	pc+us(dvorak)
   *		dzdwi		=	pc+bt%(v[1])
@@ -401,23 +342,15 @@
   *		kan		=	pc+in(kan)
   *		mi		=	pc+mao%(v[1])
   *		ogham		=	pc+ie(ogam)
-  *		ori		=	pc+ie(ori)
+  *		ori		=	pc+in(ori)
   *		sapmi		=	pc+no(smi)
-  *		sr		=	pc+srp%(v[1])
   *		syr		=	pc+sy(syc)
   *		tel		=	pc+in(tel)
   *		tml		=	pc+in(tam)
-  *		yu		=	pc+srp%(v[1])
-  *		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)
@@ -450,19 +383,13 @@
   *		syr(basic)		=	pc+sy(syc)
   *		syr(phonetic)		=	pc+sy(syc_phonetic)
   *		tam(INSCRIPT)		=	pc+in(tam)
-  *		tam(UNI)		=	pc+in(tam_unicode)
-  *		tam(NUMERAL-KEYBOARD)		=	pc+in(tam_keyboard_with_numerals)
-  *		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)
+
+! model		layout[1]		=	symbols
   ataritt	*			=	xfree68_vndr/ataritt(us)+%l[1]%(v[1])
   amiga		*			=	xfree68_vndr/amiga(usa1)+%l[1]%(v[1])
   jollasbj	*			=	jolla_vndr/sbj(common)+%l[1]%(v[1])
- $sun		$sun_custom	=	pc+sun_vndr/%l[1]%(v[1])
+ $sun		$sun_custom		=	pc+sun_vndr/%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])
@@ -479,11 +406,6 @@
   *		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)
@@ -516,22 +438,12 @@
   *		syr		basic	=	pc+sy(syc)
   *		syr		phonetic	=	pc+sy(syc_phonetic)
   *		tam		INSCRIPT	=	pc+in(tam)
-  *		tam		UNI	=	pc+in(tam_unicode)
-  *		tam		NUMERAL-KEYBOARD	=	pc+in(tam_keyboard_with_numerals)
-  *		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)
 
 ! model		layout[2]	=	symbols
   *		ar		=	+ara%(v[2]):2
   *		ben		=	+in(ben):2
   *		bs		=	+ba%(v[2]):2
-  *		cs		=	+rs%(v[2]):2
-  *		cz_qwerty		=	+cz(qwerty):2
   *		dev		=	+in(deva):2
   *		dvorak		=	+us(dvorak):2
   *		dzdwi		=	+bt%(v[2]):2
@@ -544,23 +456,15 @@
   *		kan		=	+in(kan):2
   *		mi		=	+mao%(v[2]):2
   *		ogham		=	+ie(ogam):2
-  *		ori		=	+ie(ori):2
+  *		ori		=	+in(ori):2
   *		sapmi		=	+no(smi):2
-  *		sr		=	+srp%(v[2]):2
   *		syr		=	+sy(syc):2
   *		tel		=	+in(tel):2
   *		tml		=	+in(tam):2
-  *		yu		=	+srp%(v[2]):2
-  *		fr-latin9		=	+fr(latin9):2
   *		us_intl		=	+us(alt-intl):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
@@ -593,26 +497,16 @@
   *		syr(basic)		=	+sy(syc):2
   *		syr(phonetic)		=	+sy(syc_phonetic):2
   *		tam(INSCRIPT)		=	+in(tam):2
-  *		tam(UNI)		=	+in(tam_unicode):2
-  *		tam(NUMERAL-KEYBOARD)		=	+in(tam_keyboard_with_numerals):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
   nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):2
   nokiarx51	*		=	+nokia_vndr/rx-51(%l[2]%_v[2]):2
- $sun	$sun_custom	=	+sun_vndr/%l[2]%(v[2]):2
+ $sun		$sun_custom	=	+sun_vndr/%l[2]%(v[2]):2
   *		*		=	+%l[2]%(v[2]):2
 
 ! model		layout[3]	=	symbols
   *		ar		=	+ara%(v[3]):3
   *		ben		=	+in(ben):3
   *		bs		=	+ba%(v[3]):3
-  *		cs		=	+rs%(v[3]):3
-  *		cz_qwerty		=	+cz(qwerty):3
   *		dev		=	+in(deva):3
   *		dvorak		=	+us(dvorak):3
   *		dzdwi		=	+bt%(v[3]):3
@@ -625,23 +519,15 @@
   *		kan		=	+in(kan):3
   *		mi		=	+mao%(v[3]):3
   *		ogham		=	+ie(ogam):3
-  *		ori		=	+ie(ori):3
+  *		ori		=	+in(ori):3
   *		sapmi		=	+no(smi):3
-  *		sr		=	+srp%(v[3]):3
   *		syr		=	+sy(syc):3
   *		tel		=	+in(tel):3
   *		tml		=	+in(tam):3
-  *		yu		=	+srp%(v[3]):3
-  *		fr-latin9		=	+fr(latin9):3
   *		us_intl		=	+us(alt-intl):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
@@ -674,26 +560,16 @@
   *		syr(basic)		=	+sy(syc):3
   *		syr(phonetic)		=	+sy(syc_phonetic):3
   *		tam(INSCRIPT)		=	+in(tam):3
-  *		tam(UNI)		=	+in(tam_unicode):3
-  *		tam(NUMERAL-KEYBOARD)		=	+in(tam_keyboard_with_numerals):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
   nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):3
   nokiarx51	*		=	+nokia_vndr/rx-51(%l[3]%_v[3]):3
- $sun	$sun_custom	=	+sun_vndr/%l[3]%(v[3]):3
+ $sun		$sun_custom	=	+sun_vndr/%l[3]%(v[3]):3
   *		*		=	+%l[3]%(v[3]):3
 
 ! model		layout[4]	=	symbols
   *		ar		=	+ara%(v[4]):4
   *		ben		=	+in(ben):4
   *		bs		=	+ba%(v[4]):4
-  *		cs		=	+rs%(v[4]):4
-  *		cz_qwerty		=	+cz(qwerty):4
   *		dev		=	+in(deva):4
   *		dvorak		=	+us(dvorak):4
   *		dzdwi		=	+bt%(v[4]):4
@@ -706,23 +582,15 @@
   *		kan		=	+in(kan):4
   *		mi		=	+mao%(v[4]):4
   *		ogham		=	+ie(ogam):4
-  *		ori		=	+ie(ori):4
+  *		ori		=	+in(ori):4
   *		sapmi		=	+no(smi):4
-  *		sr		=	+srp%(v[4]):4
   *		syr		=	+sy(syc):4
   *		tel		=	+in(tel):4
   *		tml		=	+in(tam):4
-  *		yu		=	+srp%(v[4]):4
-  *		fr-latin9		=	+fr(latin9):4
   *		us_intl		=	+us(alt-intl):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
@@ -755,29 +623,16 @@
   *		syr(basic)		=	+sy(syc):4
   *		syr(phonetic)		=	+sy(syc_phonetic):4
   *		tam(INSCRIPT)		=	+in(tam):4
-  *		tam(UNI)		=	+in(tam_unicode):4
-  *		tam(NUMERAL-KEYBOARD)		=	+in(tam_keyboard_with_numerals):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
   nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):4
   nokiarx51	*		=	+nokia_vndr/rx-51(%l[4]%_v[4]):4
- $sun	$sun_custom	=	+sun_vndr/%l[4]%(v[4]):4
+ $sun		$sun_custom	=	+sun_vndr/%l[4]%(v[4]):4
   *		*		=	+%l[4]%(v[4]):4
 
 ! model		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
@@ -810,25 +665,12 @@
   *		syr		basic	=	+sy(syc):2
   *		syr		phonetic	=	+sy(syc_phonetic):2
   *		tam		INSCRIPT	=	+in(tam):2
-  *		tam		UNI	=	+in(tam_unicode):2
-  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):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
 
 ! model		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
@@ -861,25 +703,12 @@
   *		syr		basic	=	+sy(syc):3
   *		syr		phonetic	=	+sy(syc_phonetic):3
   *		tam		INSCRIPT	=	+in(tam):3
-  *		tam		UNI	=	+in(tam_unicode):3
-  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):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
 
 ! model		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
@@ -912,15 +741,7 @@
   *		syr		basic	=	+sy(syc):4
   *		syr		phonetic	=	+sy(syc_phonetic):4
   *		tam		INSCRIPT	=	+in(tam):4
-  *		tam		UNI	=	+in(tam_unicode):4
-  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):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
   a4techKB21    =       +inet(media_nav_common)
@@ -979,97 +800,57 @@
   $sun			=		+sun_vndr/solaris(defaults)
 
 ! model		layout		=	symbols
- $inetmediakbds	jp	=	+jp(henkan)
+ $inetmediakbds	jp		=	+jp(henkan)
 
-! layout	variant		=	compat
-  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		adnw			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		koy			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone_eszett_home			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwertz			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwerty			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  jp        $sun_compat =   complete+japan(kana_lock)
-  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		adnw			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		koy			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone_eszett_home			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwertz			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwerty			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  jp        $sun_compat =   complete+japan(kana_lock)
-
-! layout[1]	variant[1]	=	compat
-  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		adnw			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		koy			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone_eszett_home			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwertz			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwerty			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  jp       $sun_compat =   complete+japan(kana_lock)
-  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		adnw			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		koy			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone_eszett_home			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwertz			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwerty			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  jp       $sun_compat =   complete+japan(kana_lock)
-
-! layout[2]	variant[2]	=	compat
-  de		neo			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		adnw			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		koy			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		bone			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		bone_eszett_home			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		neo_qwertz			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		neo_qwerty			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  jp       $sun_compat  =   +complete+japan(kana_lock):2
-  de		neo			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		adnw			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		koy			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		bone			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		bone_eszett_home			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		neo_qwertz			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		neo_qwerty			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  jp       $sun_compat  =   +complete+japan(kana_lock):2
-
-! layout[3]	variant[3]	=	compat
-  de		neo			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		adnw			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		koy			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		bone			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		bone_eszett_home			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		neo_qwertz			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		neo_qwerty			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  jp       $sun_compat  =   +complete+japan(kana_lock):3
-  de		neo			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		adnw			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		koy			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		bone			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		bone_eszett_home			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		neo_qwertz			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		neo_qwerty			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  jp       $sun_compat  =   +complete+japan(kana_lock):3
-
-! layout[4]	variant[4]	=	compat
-  de		neo			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		adnw			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		koy			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		bone			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		bone_eszett_home			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		neo_qwertz			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		neo_qwerty			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  jp       $sun_compat  =   +complete+japan(kana_lock):4
-  de		neo			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		adnw			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		koy			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		bone			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		bone_eszett_home			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		neo_qwertz			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		neo_qwerty			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  jp       $sun_compat  =   +complete+japan(kana_lock):4
+! layout	 variant		= compat
+  de		 neo			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 adnw			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 koy			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 bone			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 bone_eszett_home	= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 neo_qwertz		= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 neo_qwerty		= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  jp		$sun_compat		= complete+japan(kana_lock)
+
+! layout[1]	 variant[1]		= compat
+  de		 neo			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 adnw			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 koy			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 bone			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 bone_eszett_home	= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 neo_qwertz		= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 neo_qwerty		= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  jp		$sun_compat		= complete+japan(kana_lock)
+
+! layout[2]	 variant[2]		= compat
+  de		 neo			= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  de		 adnw			= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  de		 koy			= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  de		 bone			= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  de		 bone_eszett_home	= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  de		 neo_qwertz		= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  de		 neo_qwerty		= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  jp		$sun_compat		= +complete+japan(kana_lock):2
+
+! layout[3]	 variant[3]		= compat
+  de		 neo			= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  de		 adnw			= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  de		 koy			= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  de		 bone			= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  de		 bone_eszett_home	= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  de		 neo_qwertz		= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  de		 neo_qwerty		= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  jp		$sun_compat		= +complete+japan(kana_lock):3
+
+! layout[4]	 variant[4]		= compat
+  de		 neo			= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  de		 adnw			= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  de		 koy			= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  de		 bone			= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  de		 bone_eszett_home	= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  de		 neo_qwertz		= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  de		 neo_qwerty		= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  jp		$sun_compat		= +complete+japan(kana_lock):4
 
 ! model		layout		=	compat
   pc98		nec_vndr/jp	=	pc98(basic)
@@ -1087,34 +868,76 @@
   $nokiamodels	=	complete+nokia
   *		=	complete
 
-! layout	option	=	symbols
-  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle)
-  *			misc:typo 	= +typo(base)
-  *			misc:apl	= +apl(level3)
-
-! layout[1]	option	=	symbols
-  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1
-  *			misc:typo 	= +typo(base):1
-  *			misc:apl	= +apl(level3):1
-
-! layout[2]	option	=	symbols
-  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2
-  *			misc:typo 	= +typo(base):2
-  *			misc:apl	= +apl(level3):2
-
-! layout[3]	option	=	symbols
-  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3
-  *			misc:typo 	= +typo(base):3
-  *			misc:apl	= +apl(level3):3
-
-! layout[4]	option	=	symbols
-  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4
-  *			misc:typo 	= +typo(base):4
-  *			misc:apl	= +apl(level3):4
-
-! option	=	symbols
-  grp:shift_toggle	=	+group(shifts_toggle)
-  grp:shift_toggle	=	+group(shifts_toggle)
+! layout		option			= symbols
+  *			grp:toggle		= +group(toggle)
+  *			grp:alts_toggle		= +group(alts_toggle)
+  *			grp:alt_altgr_toggle	= +group(alt_altgr_toggle)
+  *			grp:alt_space_toggle	= +group(alt_space_toggle)
+  *			grp:win_space_toggle	= +group(win_space_toggle)
+  *			grp:ctrl_space_toggle	= +group(ctrl_space_toggle)
+  *			grp:rctrl_rshift_toggle	= +group(rctrl_rshift_toggle)
+  *			lv3:ralt_alt		= +level3(ralt_alt)
+  *			misc:typo		= +typo(base)
+  *			misc:apl		= +apl(level3)
+
+! layout[1]		option			= symbols
+  *			grp:toggle		= +group(toggle):1
+  *			grp:alts_toggle		= +group(alts_toggle):1
+  *			grp:alt_altgr_toggle	= +group(alt_altgr_toggle):1
+  *			grp:alt_space_toggle	= +group(alt_space_toggle):1
+  *			grp:win_space_toggle	= +group(win_space_toggle):1
+  *			grp:ctrl_space_toggle	= +group(ctrl_space_toggle):1
+  *			grp:rctrl_rshift_toggle	= +group(rctrl_rshift_toggle):1
+  *			lv3:ralt_alt		= +level3(ralt_alt):1
+  *			misc:typo		= +typo(base):1
+  *			misc:apl		= +apl(level3):1
+
+! layout[2]		option			= symbols
+  *			grp:toggle		= +group(toggle):2
+  *			grp:alts_toggle		= +group(alts_toggle):2
+  *			grp:alt_altgr_toggle	= +group(alt_altgr_toggle):2
+  *			grp:alt_space_toggle	= +group(alt_space_toggle):2
+  *			grp:win_space_toggle	= +group(win_space_toggle):2
+  *			grp:ctrl_space_toggle	= +group(ctrl_space_toggle):2
+  *			grp:rctrl_rshift_toggle	= +group(rctrl_rshift_toggle):2
+  *			lv3:ralt_alt		= +level3(ralt_alt):2
+  *			misc:typo		= +typo(base):2
+  *			misc:apl		= +apl(level3):2
+
+! layout[3]		option			= symbols
+  *			grp:toggle		= +group(toggle):3
+  *			grp:alts_toggle		= +group(alts_toggle):3
+  *			grp:alt_altgr_toggle	= +group(alt_altgr_toggle):3
+  *			grp:alt_space_toggle	= +group(alt_space_toggle):3
+  *			grp:win_space_toggle	= +group(win_space_toggle):3
+  *			grp:ctrl_space_toggle	= +group(ctrl_space_toggle):3
+  *			grp:rctrl_rshift_toggle	= +group(rctrl_rshift_toggle):3
+  *			lv3:ralt_alt		= +level3(ralt_alt):3
+  *			misc:typo		= +typo(base):3
+  *			misc:apl		= +apl(level3):3
+
+! layout[4]		option			= symbols
+  *			grp:toggle		= +group(toggle):4
+  *			grp:alts_toggle		= +group(alts_toggle):4
+  *			grp:alt_altgr_toggle	= +group(alt_altgr_toggle):4
+  *			grp:alt_space_toggle	= +group(alt_space_toggle):4
+  *			grp:win_space_toggle	= +group(win_space_toggle):4
+  *			grp:ctrl_space_toggle	= +group(ctrl_space_toggle):4
+  *			grp:rctrl_rshift_toggle	= +group(rctrl_rshift_toggle):4
+  *			lv3:ralt_alt		= +level3(ralt_alt):4
+  *			misc:typo		= +typo(base):4
+  *			misc:apl		= +apl(level3):4
+
+! option			= symbols
+  grp:shift_caps_switch		= +group(caps_select)
+  grp:win_menu_switch		= +group(win_menu_select)
+  grp:lctrl_rctrl_switch	= +group(ctrl_select)
+//  Delete the above three aliases in July 2027.
+  ctrl:swapcaps_hyper		   = +ctrl(hyper_capscontrol)
+  ctrl:swapcaps_and_switch_layout  = +ctrl(swapcaps)+group(lctrl_toggle)
+//  Delete the above two aliases in September 2027.
+
+! option		=	symbols
   altwin:menu		=	+altwin(menu)
   altwin:menu_win	=	+altwin(menu_win)
   altwin:meta_alt	=	+altwin(meta_alt)
@@ -1136,18 +959,15 @@
   grp:lwin_switch	=	+group(lwin_switch)
   grp:rwin_switch	=	+group(rwin_switch)
   grp:menu_switch	=	+group(menu_switch)
-  grp:toggle		=	+group(toggle)
+  grp:caps_switch	=	+group(caps_switch)
   grp:shifts_toggle	=	+group(shifts_toggle)
   grp:ctrls_toggle	=	+group(ctrls_toggle)
-  grp:alts_toggle	=	+group(alts_toggle)
-  grp:caps_toggle	=	+capslock(grouplock)
-  grp:caps_switch       =       +capslock(groupshift)
+  grp:caps_toggle	=	+group(caps_toggle)
   grp:shift_caps_toggle	=	+group(shift_caps_toggle)
-  grp:shift_caps_switch	=	+group(shift_caps_switch)
-  grp:win_space_toggle	=	+group(win_space_toggle)
-  grp:win_menu_switch	=	+group(win_menu_switch)
-  grp:alt_caps_toggle   =       +group(alt_caps_toggle)
-  grp:alt_space_toggle	=	+group(alt_space_toggle)
+  grp:caps_select	=	+group(caps_select)
+  grp:win_menu_select	=	+group(win_menu_select)
+  grp:ctrl_select	=	+group(ctrl_select)
+  grp:alt_caps_toggle	=	+group(alt_caps_toggle)
   grp:menu_toggle	=	+group(menu_toggle)
   grp:lwin_toggle	=	+group(lwin_toggle)
   grp:rwin_toggle	=	+group(rwin_toggle)
@@ -1158,25 +978,22 @@
   grp:rctrl_toggle	=	+group(rctrl_toggle)
   grp:lalt_toggle	=	+group(lalt_toggle)
   grp:sclk_toggle	=	+group(sclk_toggle)
-  grp:lctrl_rctrl_switch	=	+group(lctrl_rctrl_switch)
   grp:lctrl_lwin_rctrl_menu	=	+group(lctrl_lwin_rctrl_menu)
-  grp:lctrl_lalt_toggle	=	+group(lctrl_lalt_toggle)
-  grp:rctrl_ralt_toggle	=	+group(rctrl_ralt_toggle)
-  grp:ctrl_alt_toggle	=	+group(ctrl_alt_toggle)
+  grp:lctrl_lalt_toggle		=	+group(lctrl_lalt_toggle)
+  grp:rctrl_ralt_toggle		=	+group(rctrl_ralt_toggle)
+  grp:ctrl_alt_toggle		=	+group(ctrl_alt_toggle)
   grp:ctrl_alt_toggle_bidir	=	+group(ctrl_alt_toggle_bidir)
   grp:lctrl_lshift_toggle	=	+group(lctrl_lshift_toggle)
-  grp:rctrl_rshift_toggle	=	+group(rctrl_rshift_toggle)
-  grp:ctrl_shift_toggle	=	+group(ctrl_shift_toggle)
+  grp:ctrl_shift_toggle		=	+group(ctrl_shift_toggle)
   grp:ctrl_shift_toggle_bidir	=	+group(ctrl_shift_toggle_bidir)
   grp:lalt_lshift_toggle	=	+group(lalt_lshift_toggle)
   grp:ralt_rshift_toggle	=	+group(ralt_rshift_toggle)
-  grp:alt_shift_toggle	=	+group(alt_shift_toggle)
+  grp:alt_shift_toggle		=	+group(alt_shift_toggle)
   grp:alt_shift_toggle_bidir	=	+group(alt_shift_toggle_bidir)
-  grp:lctrl_lwin_toggle	=	+group(lctrl_lwin_toggle)
+  grp:lctrl_lwin_toggle		=	+group(lctrl_lwin_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)
@@ -1192,6 +1009,7 @@
   caps:swapescape	=	+capslock(swapescape)
   caps:escape		=	+capslock(escape)
   caps:escape_shifted_capslock	=	+capslock(escape_shifted_capslock)
+  caps:escape_shifted_compose	=	+capslock(escape_shifted_compose)
   caps:backspace	=	+capslock(backspace)
   caps:super		=	+capslock(super)
   caps:hyper		=	+capslock(hyper)
@@ -1201,8 +1019,8 @@
   ctrl:nocaps		=	+ctrl(nocaps)
   ctrl:lctrl_meta	=	+ctrl(lctrl_meta)
   ctrl:swapcaps		=	+ctrl(swapcaps)
-  ctrl:swapcaps_hyper	=	+ctrl(swapcaps_hyper)
-  ctrl:swapcaps_and_switch_layout	=	+ctrl(swapcaps_and_switch_layout)
+  ctrl:hyper_capscontrol	=	+ctrl(hyper_capscontrol)
+  ctrl:grouptoggle_capscontrol	=	+ctrl(swapcaps)+group(lctrl_toggle)
   ctrl:ac_ctrl		=	+ctrl(ac_ctrl)
   ctrl:aa_ctrl		=	+ctrl(aa_ctrl)
   ctrl:rctrl_ralt	=	+ctrl(rctrl_ralt)
@@ -1227,6 +1045,7 @@
   compose:caps-altgr	=	+compose(caps-altgr)
   compose:102		=	+compose(102)
   compose:102-altgr	=	+compose(102-altgr)
+  compose:ins		=	+compose(ins)
   compose:paus		=	+compose(paus)
   compose:prsc		=	+compose(prsc)
   compose:sclk		=	+compose(sclk)
@@ -1235,19 +1054,18 @@
   eurosign:2		=	+eurosign(2)
   eurosign:4		=	+eurosign(4)
   eurosign:5		=	+eurosign(5)
-  rupeesign:4           =       +rupeesign(4)
-  keypad:oss            =       +keypad(oss)
+  rupeesign:4		=	+rupeesign(4)
+  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:hex            =	+keypad(ops)+keypad(hex)
-  keypad:atm            =	+keypad(ops)+keypad(hex)+keypad(atm)  
+  keypad:atm            =	+keypad(ops)+keypad(hex)+keypad(atm)
   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)
@@ -1256,7 +1074,6 @@
   nbsp:zwnj2zwj3        =	+nbsp(zwnj2zwj3)
   nbsp:zwnj2zwj3nb4     =	+nbsp(zwnj2zwj3nb4)
   nbsp:zwnj2nb3         =	+nbsp(zwnj2nb3)
-  nbsp:zwnj2nb3s        =	+nbsp(zwnj2nb3s)
   nbsp:zwnj2nb3zwj4     =	+nbsp(zwnj2nb3zwj4)
   nbsp:zwnj2nb3nnb4     =	+nbsp(zwnj2nb3nnb4)
   nbsp:zwnj3zwj4        =	+nbsp(zwnj3zwj4)
@@ -1298,8 +1115,11 @@
   lv3:caps_switch_latch              =       +level3(caps_switch_latch)
   lv3:bksl_switch_latch              =       +level3(bksl_switch_latch)
   lv3:lsgt_switch_latch              =       +level3(lsgt_switch_latch)
+  lv5:caps_switch                 =       +level5(caps_switch)
   lv5:lsgt_switch                 =       +level5(lsgt_switch)
   lv5:ralt_switch                 =       +level5(ralt_switch)
+  lv5:menu_switch                 =       +level5(menu_switch)
+  lv5:rctrl_switch                =       +level5(rctrl_switch)
   lv5:lsgt_switch_lock            =       +level5(lsgt_switch_lock)
   lv5:ralt_switch_lock            =       +level5(ralt_switch_lock)
   lv5:lwin_switch_lock            =       +level5(lwin_switch_lock)
@@ -1311,17 +1131,17 @@
   parens:swap_brackets   =   +parens(swap_brackets)
 
 
-! option	=	compat
+! option		=	compat
   grp_led:num		=	+lednum(group_lock)
   grp_led:caps		=	+ledcaps(group_lock)
   grp_led:scroll	=	+ledscroll(group_lock)
   mod_led:compose	=	+ledcompose(compose)
   japan:kana_lock	=	+japan(kana_lock)
   caps:shiftlock	=	+ledcaps(shift_lock)
-  grab:break_actions    =       +xfree86(grab_break)
+  grab:break_actions	=	+xfree86(grab_break)
 
 
-! option	=	types
+! option			=	types
   caps:internal			=	+caps(internal)
   caps:internal_nocancel	=	+caps(internal_nocancel)
   caps:shift			=	+caps(shift)
@@ -1329,4 +1149,4 @@
   numpad:pc			=	+numpad(pc)
   numpad:mac			=	+numpad(mac)
   numpad:microsoft		=	+numpad(microsoft)
-  numpad:shift3       		=	+numpad(shift3)
+  numpad:shift3			=	+numpad(shift3)
Index: src/external/mit/xorg/lib/xkeyboard-config/rules/base.lst
diff -u src/external/mit/xorg/lib/xkeyboard-config/rules/base.lst:1.17 src/external/mit/xorg/lib/xkeyboard-config/rules/base.lst:1.18
--- src/external/mit/xorg/lib/xkeyboard-config/rules/base.lst:1.17	Sun Jan  9 13:54:16 2022
+++ src/external/mit/xorg/lib/xkeyboard-config/rules/base.lst	Mon Oct 17 07:40:23 2022
@@ -189,10 +189,11 @@
   teck229         Truly Ergonomic 229
   apex300         SteelSeries Apex 300 (Apex RAW)
   chromebook      Chromebook
+  ppkb            PinePhone Keyboard
 
 ! layout
   us              English (US)
-  af              Afghani
+  af              Dari
   ara             Arabic
   al              Albanian
   am              Armenian
@@ -268,7 +269,6 @@
   uz              Uzbek
   vn              Vietnamese
   kr              Korean
-  nec_vndr/jp     Japanese (PC-98)
   ie              Irish
   pk              Urdu (Pakistan)
   mv              Dhivehi
@@ -288,7 +288,6 @@
   ph              Filipino
   md              Moldavian
   id              Indonesian (Latin)
-  jv              Indonesian (Javanese)
   my              Malay (Jawi, Arabic Keyboard)
   custom          A user-defined custom Layout
 
@@ -320,8 +319,8 @@
   workman-intl    us: English (Workman, intl., with dead keys)
   ps              af: Pashto
   uz              af: Uzbek (Afghanistan)
-  olpc-ps         af: Pashto (Afghanistan, OLPC)
-  fa-olpc         af: Persian (Afghanistan, Dari OLPC)
+  ps-olpc         af: Pashto (Afghanistan, OLPC)
+  fa-olpc         af: Dari (Afghanistan, OLPC)
   uz-olpc         af: Uzbek (Afghanistan, OLPC)
   azerty          ara: Arabic (AZERTY)
   azerty_digits   ara: Arabic (AZERTY, Eastern Arabic numerals)
@@ -345,6 +344,7 @@
   latin           by: Belarusian (Latin)
   ru              by: Russian (Belarus)
   intl            by: Belarusian (intl.)
+  phonetic        by: Belarusian (phonetic)
   oss             be: Belgian (alt.)
   oss_latin9      be: Belgian (Latin-9 only, alt.)
   iso-alternate   be: Belgian (ISO, alt.)
@@ -370,11 +370,12 @@
   ori-bolnagri    in: Oriya (Bolnagri)
   ori-wx          in: Oriya (Wx)
   olck            in: Ol Chiki
-  tam_tamilnet    in: Tamil (TamilNet '99)
-  tam_tamilnet_with_tam_nums in: Tamil (TamilNet '99 with Tamil numerals)
-  tam_tamilnet_TAB in: Tamil (TamilNet '99, TAB encoding)
-  tam_tamilnet_TSCII in: Tamil (TamilNet '99, TSCII encoding)
-  tam             in: Tamil (InScript)
+  tamilnet        in: Tamil (TamilNet '99)
+  tamilnet_tamilnumbers in: Tamil (TamilNet '99 with Tamil numerals)
+  tamilnet_TAB    in: Tamil (TamilNet '99, TAB encoding)
+  tamilnet_TSCII  in: Tamil (TamilNet '99, TSCII encoding)
+  tam             in: Tamil (InScript, with Arabic numerals)
+  tam_tamilnumbers in: Tamil (InScript, with Tamil numerals)
   tel             in: Telugu
   tel-kagapa      in: Telugu (KaGaPa, phonetic)
   tel-sarala      in: Telugu (Sarala)
@@ -414,17 +415,20 @@
   tifinagh-extended ma: Berber (Morocco, Tifinagh extended)
   tifinagh-phonetic ma: Berber (Morocco, Tifinagh phonetic)
   tifinagh-extended-phonetic ma: Berber (Morocco, Tifinagh extended phonetic)
+  rif             ma: Tarifit
   french          cm: French (Cameroon)
   qwerty          cm: Cameroon Multilingual (QWERTY, intl.)
   azerty          cm: Cameroon (AZERTY, intl.)
   dvorak          cm: Cameroon (Dvorak, intl.)
   mmuock          cm: Mmuock
   zawgyi          mm: Burmese Zawgyi
+  shn             mm: Shan
+  zgt             mm: Shan (Zawgyi Tai)
+  mnw             mm: Mon
+  mnw-a1          mm: Mon (A1)
   fr-dvorak       ca: French (Canada, Dvorak)
   fr-legacy       ca: French (Canada, legacy)
-  multix          ca: Canadian (intl.)
-  multi           ca: Canadian (intl., 1st part)
-  multi-2gr       ca: Canadian (intl., 2nd part)
+  multix          ca: Canadian (CSA)
   ike             ca: Inuktitut
   eng             ca: English (Canada)
   mon_trad        cn: Mongolian (Bichig)
@@ -437,7 +441,7 @@
   tib             cn: Tibetan
   tib_asciinum    cn: Tibetan (with ASCII numerals)
   ug              cn: Uyghur
-  altgr-pinyin    cn: Hanyu Pinyin (with AltGr dead keys)
+  altgr-pinyin    cn: Hanyu Pinyin Letters (with AltGr dead keys)
   alternatequotes hr: Croatian (with guillemets)
   unicode         hr: Croatian (with Croatian digraphs)
   unicodeus       hr: Croatian (US, with Croatian digraphs)
@@ -461,6 +465,7 @@
   dvorak          ee: Estonian (Dvorak)
   us              ee: Estonian (US)
   pes_keypad      ir: Persian (with Persian keypad)
+  azb             ir: Azerbaijani (Iran)
   ku              ir: Kurdish (Iran, Latin Q)
   ku_f            ir: Kurdish (Iran, F)
   ku_alt          ir: Kurdish (Iran, Latin Alt-Q)
@@ -488,7 +493,7 @@
   mac             fr: French (Macintosh)
   azerty          fr: French (AZERTY)
   afnor           fr: French (AZERTY, AFNOR)
-  bre             fr: French (Breton)
+  bre             fr: Breton (France)
   oci             fr: Occitan
   geo             fr: Georgian (France, AZERTY Tskapo)
   us              fr: French (US)
@@ -576,7 +581,6 @@
   deadtilde       latam: Spanish (Latin American, dead tilde)
   dvorak          latam: Spanish (Latin American, Dvorak)
   colemak         latam: Spanish (Latin American, Colemak)
-  colemak-gaming  latam: Spanish (Latin American, Colemak for gaming)
   std             lt: Lithuanian (standard)
   us              lt: Lithuanian (US)
   ibm             lt: Lithuanian (IBM LST 1205-92)
@@ -630,6 +634,8 @@
   phonetic_winkeys ru: Russian (phonetic, Windows)
   phonetic_YAZHERTY ru: Russian (phonetic, YAZHERTY)
   typewriter      ru: Russian (typewriter)
+  ruchey_ru       ru: Russian (engineering, RU)
+  ruchey_en       ru: Russian (engineering, EN)
   legacy          ru: Russian (legacy)
   typewriter-legacy ru: Russian (typewriter, legacy)
   tt              ru: Tatar
@@ -649,6 +655,7 @@
   phonetic_azerty ru: Russian (phonetic, AZERTY)
   phonetic_dvorak ru: Russian (phonetic, Dvorak)
   phonetic_fr     ru: Russian (phonetic, French)
+  ab              ru: Abkhazian (Russia)
   yz              rs: Serbian (Cyrillic, ZE and ZHE swapped)
   latin           rs: Serbian (Latin)
   latinunicode    rs: Serbian (Latin, Unicode)
@@ -697,15 +704,13 @@
   tis             th: Thai (TIS-820.2538)
   pat             th: Thai (Pattachote)
   f               tr: Turkish (F)
+  e               tr: Turkish (E)
   alt             tr: Turkish (Alt-Q)
   ku              tr: Kurdish (Turkey, Latin Q)
   ku_f            tr: Kurdish (Turkey, F)
   ku_alt          tr: Kurdish (Turkey, Latin Alt-Q)
   intl            tr: Turkish (intl., with dead keys)
-  crh             tr: Crimean Tatar (Turkish Q)
-  crh_f           tr: Crimean Tatar (Turkish F)
-  crh_alt         tr: Crimean Tatar (Turkish Alt-Q)
-  ot              tr: Ottoman
+  ot              tr: Ottoman (Q)
   otf             tr: Ottoman (F)
   otk             tr: Old Turkic
   otkf            tr: Old Turkic (F)
@@ -714,10 +719,14 @@
   phonetic        ua: Ukrainian (phonetic)
   typewriter      ua: Ukrainian (typewriter)
   winkeys         ua: Ukrainian (Windows)
+  macOS           ua: Ukrainian (macOS)
   legacy          ua: Ukrainian (legacy)
   rstu            ua: Ukrainian (standard RSTU)
   rstu_ru         ua: Russian (Ukraine, standard RSTU)
   homophonic      ua: Ukrainian (homophonic)
+  crh             ua: Crimean Tatar (Turkish Q)
+  crh_f           ua: Crimean Tatar (Turkish F)
+  crh_alt         ua: Crimean Tatar (Turkish Alt-Q)
   extd            gb: English (UK, extended, Windows)
   intl            gb: English (UK, intl., with dead keys)
   dvorak          gb: English (UK, Dvorak)
@@ -727,9 +736,10 @@
   colemak         gb: English (UK, Colemak)
   colemak_dh      gb: English (UK, Colemak-DH)
   pl              gb: Polish (British keyboard)
+  gla             gb: Scottish Gaelic
   latin           uz: Uzbek (Latin)
   us              vn: Vietnamese (US)
-  fr              vn: Vietnamese (French)
+  fr              vn: Vietnamese (France)
   kr104           kr: Korean (101/104-key compatible)
   CloGaelach      ie: CloGaelach
   UnicodeExpert   ie: Irish (UnicodeExpert)
@@ -762,7 +772,10 @@
   dvorak          ph: Filipino (Dvorak, Latin)
   dvorak-bay      ph: Filipino (Dvorak, Baybayin)
   gag             md: Moldavian (Gagauz)
-  phoneticx       id: Indonesian (Arab Pegon, extended phonetic)
+  javanese        id: Javanese
+  melayu-phonetic id: Indonesian (Arab Melayu, phonetic)
+  melayu-phoneticx id: Indonesian (Arab Melayu, extended phonetic)
+  pegon-phonetic  id: Indonesian (Arab Pegon, phonetic)
   phonetic        my: Malay (Jawi, phonetic)
 
 ! option
@@ -779,30 +792,33 @@
   grp:lalt_toggle      Left Alt
   grp:caps_toggle      Caps Lock
   grp:shift_caps_toggle Shift+Caps Lock
-  grp:shift_caps_switch Caps Lock to first layout; Shift+Caps Lock to last layout
-  grp:win_menu_switch  Left Win to first layout; Right Win/Menu to last layout
-  grp:lctrl_rctrl_switch Left Ctrl to first layout; Right Ctrl to last layout
+  grp:caps_select      Caps Lock to first layout; Shift+Caps Lock to second layout
+  grp:win_menu_select  Left Win to first layout; Right Win/Menu to second layout
+  grp:ctrl_select      Left Ctrl to first layout; Right Ctrl to second layout
   grp:alt_caps_toggle  Alt+Caps Lock
-  grp:shifts_toggle    Both Shift together
-  grp:alts_toggle      Both Alt together
-  grp:ctrls_toggle     Both Ctrl together
+  grp:shifts_toggle    Both Shifts together
+  grp:alts_toggle      Both Alts together
+  grp:alt_altgr_toggle Both Alts together; AltGr alone chooses third level
+  grp:ctrls_toggle     Both Ctrls together
   grp:ctrl_shift_toggle Ctrl+Shift
   grp:lctrl_lshift_toggle Left Ctrl+Left Shift
   grp:rctrl_rshift_toggle Right Ctrl+Right Shift
   grp:ctrl_alt_toggle  Alt+Ctrl
   grp:alt_shift_toggle Alt+Shift
   grp:lalt_lshift_toggle Left Alt+Left Shift
-  grp:alt_space_toggle Alt+Space
+  grp:ralt_rshift_toggle Right Alt+Right Shift
   grp:menu_toggle      Menu
   grp:lwin_toggle      Left Win
+  grp:alt_space_toggle Alt+Space
   grp:win_space_toggle Win+Space
+  grp:ctrl_space_toggle Ctrl+Space
   grp:rwin_toggle      Right Win
   grp:lshift_toggle    Left Shift
   grp:rshift_toggle    Right Shift
   grp:lctrl_toggle     Left Ctrl
   grp:rctrl_toggle     Right Ctrl
   grp:sclk_toggle      Scroll Lock
-  grp:lctrl_lwin_rctrl_menu Left Ctrl+Left Win to first layout; Right Ctrl+Menu to second layout
+  grp:lctrl_lwin_rctrl_menu Ctrl+Left Win to first layout; Ctrl+Menu to second layout
   grp:lctrl_lwin_toggle Left Ctrl+Left Win
   lv2                  Key to choose the 2nd level
   lv2:lsgt_switch      The "&lt; &gt;" key
@@ -828,7 +844,7 @@
   ctrl:nocaps          Caps Lock as Ctrl
   ctrl:lctrl_meta      Left Ctrl as Meta
   ctrl:swapcaps        Swap Ctrl and Caps Lock
-  ctrl:swapcaps_hyper  Caps Lock as Ctrl, Ctrl as Hyper
+  ctrl:hyper_capscontrol Caps Lock as Ctrl, Ctrl as Hyper
   ctrl:ac_ctrl         To the left of "A"
   ctrl:aa_ctrl         At the bottom left
   ctrl:rctrl_ralt      Right Ctrl as Right Alt
@@ -910,6 +926,7 @@
   compose:102          The "&lt; &gt;" key
   compose:102-altgr    3rd level of the "&lt; &gt;" key
   compose:paus         Pause
+  compose:ins          Insert
   compose:prsc         PrtSc
   compose:sclk         Scroll Lock
   compat               Compatibility options
@@ -922,9 +939,9 @@
   shift:breaks_caps    Shift cancels Caps Lock
   misc:typo            Enable extra typographic characters
   misc:apl             Enable APL overlay characters
-  shift:both_capslock  Both Shift together enable Caps Lock
-  shift:both_capslock_cancel Both Shift together enable Caps Lock; one Shift key disables it
-  shift:both_shiftlock Both Shift together enable Shift Lock
+  shift:both_capslock  Both Shifts together enable Caps Lock
+  shift:both_capslock_cancel Both Shifts together enable Caps Lock; one Shift key disables it
+  shift:both_shiftlock Both Shifts together enable Shift Lock
   keypad:pointerkeys   Shift + Num Lock enables PointerKeys
   grab:break_actions   Allow breaking grabs with keyboard actions (warning: security risk)
   grab:debug           Allow grab and window tree logging
@@ -935,17 +952,21 @@
   eurosign:5           Euro on 5
   rupeesign:4          Rupee on 4
   lv5                  Key to choose 5th level
+  lv5:caps_switch      Caps Lock chooses 5th level
   lv5:lsgt_switch      The "&lt; &gt;" key chooses 5th level
   lv5:ralt_switch      Right Alt chooses 5th level
   lv5:menu_switch      Menu chooses 5th level
+  lv5:rctrl_switch     Right Ctrl chooses 5th level
   lv5:lsgt_switch_lock The "&lt; &gt;" key chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
   lv5:ralt_switch_lock Right Alt chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
   lv5:lwin_switch_lock Left Win chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
   lv5:rwin_switch_lock Right Win chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
   lv5:lsgt_switch_lock_cancel The "&lt; &gt;" key chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
+  lv5:caps_switch      Caps Lock chooses 5th level
   lv5:lsgt_switch      The "&lt; &gt;" key chooses 5th level
   lv5:ralt_switch      Right Alt chooses 5th level
   lv5:menu_switch      Menu chooses 5th level
+  lv5:rctrl_switch     Right Ctrl chooses 5th level
   lv5:lsgt_switch_lock The "&lt; &gt;" key chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
   lv5:ralt_switch_lock Right Alt chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
   lv5:lwin_switch_lock Left Win chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
@@ -954,7 +975,6 @@
   nbsp:none            Usual space at any level
   nbsp:level2          Non-breaking space at the 2nd level
   nbsp:level3          Non-breaking space at the 3rd level
-  nbsp:level3s         Non-breaking space at the 3rd level, nothing at the 4th level
   nbsp:level3n         Non-breaking space at the 3rd level, thin non-breaking space at the 4th level
   nbsp:level4          Non-breaking space at the 4th level
   nbsp:level4n         Non-breaking space at the 4th level, thin non-breaking space at the 6th level
@@ -963,7 +983,6 @@
   nbsp:zwnj2zwj3       Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level
   nbsp:zwnj2zwj3nb4    Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level, non-breaking space at the 4th level
   nbsp:zwnj2nb3        Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level
-  nbsp:zwnj2nb3s       Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, nothing at the 4th level
   nbsp:zwnj2nb3zwj4    Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, zero-width joiner at the 4th level
   nbsp:zwnj2nb3nnb4    Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, thin non-breaking space at the 4th level
   nbsp:zwnj3zwj4       Zero-width non-joiner at the 3rd level, zero-width joiner at the 4th level
Index: src/external/mit/xorg/lib/xkeyboard-config/rules/evdev.lst
diff -u src/external/mit/xorg/lib/xkeyboard-config/rules/evdev.lst:1.17 src/external/mit/xorg/lib/xkeyboard-config/rules/evdev.lst:1.18
--- src/external/mit/xorg/lib/xkeyboard-config/rules/evdev.lst:1.17	Sun Jan  9 13:54:16 2022
+++ src/external/mit/xorg/lib/xkeyboard-config/rules/evdev.lst	Mon Oct 17 07:40:23 2022
@@ -189,10 +189,11 @@
   teck229         Truly Ergonomic 229
   apex300         SteelSeries Apex 300 (Apex RAW)
   chromebook      Chromebook
+  ppkb            PinePhone Keyboard
 
 ! layout
   us              English (US)
-  af              Afghani
+  af              Dari
   ara             Arabic
   al              Albanian
   am              Armenian
@@ -268,7 +269,6 @@
   uz              Uzbek
   vn              Vietnamese
   kr              Korean
-  nec_vndr/jp     Japanese (PC-98)
   ie              Irish
   pk              Urdu (Pakistan)
   mv              Dhivehi
@@ -288,7 +288,6 @@
   ph              Filipino
   md              Moldavian
   id              Indonesian (Latin)
-  jv              Indonesian (Javanese)
   my              Malay (Jawi, Arabic Keyboard)
   custom          A user-defined custom Layout
 
@@ -320,8 +319,8 @@
   workman-intl    us: English (Workman, intl., with dead keys)
   ps              af: Pashto
   uz              af: Uzbek (Afghanistan)
-  olpc-ps         af: Pashto (Afghanistan, OLPC)
-  fa-olpc         af: Persian (Afghanistan, Dari OLPC)
+  ps-olpc         af: Pashto (Afghanistan, OLPC)
+  fa-olpc         af: Dari (Afghanistan, OLPC)
   uz-olpc         af: Uzbek (Afghanistan, OLPC)
   azerty          ara: Arabic (AZERTY)
   azerty_digits   ara: Arabic (AZERTY, Eastern Arabic numerals)
@@ -345,6 +344,7 @@
   latin           by: Belarusian (Latin)
   ru              by: Russian (Belarus)
   intl            by: Belarusian (intl.)
+  phonetic        by: Belarusian (phonetic)
   oss             be: Belgian (alt.)
   oss_latin9      be: Belgian (Latin-9 only, alt.)
   iso-alternate   be: Belgian (ISO, alt.)
@@ -370,11 +370,12 @@
   ori-bolnagri    in: Oriya (Bolnagri)
   ori-wx          in: Oriya (Wx)
   olck            in: Ol Chiki
-  tam_tamilnet    in: Tamil (TamilNet '99)
-  tam_tamilnet_with_tam_nums in: Tamil (TamilNet '99 with Tamil numerals)
-  tam_tamilnet_TAB in: Tamil (TamilNet '99, TAB encoding)
-  tam_tamilnet_TSCII in: Tamil (TamilNet '99, TSCII encoding)
-  tam             in: Tamil (InScript)
+  tamilnet        in: Tamil (TamilNet '99)
+  tamilnet_tamilnumbers in: Tamil (TamilNet '99 with Tamil numerals)
+  tamilnet_TAB    in: Tamil (TamilNet '99, TAB encoding)
+  tamilnet_TSCII  in: Tamil (TamilNet '99, TSCII encoding)
+  tam             in: Tamil (InScript, with Arabic numerals)
+  tam_tamilnumbers in: Tamil (InScript, with Tamil numerals)
   tel             in: Telugu
   tel-kagapa      in: Telugu (KaGaPa, phonetic)
   tel-sarala      in: Telugu (Sarala)
@@ -414,17 +415,20 @@
   tifinagh-extended ma: Berber (Morocco, Tifinagh extended)
   tifinagh-phonetic ma: Berber (Morocco, Tifinagh phonetic)
   tifinagh-extended-phonetic ma: Berber (Morocco, Tifinagh extended phonetic)
+  rif             ma: Tarifit
   french          cm: French (Cameroon)
   qwerty          cm: Cameroon Multilingual (QWERTY, intl.)
   azerty          cm: Cameroon (AZERTY, intl.)
   dvorak          cm: Cameroon (Dvorak, intl.)
   mmuock          cm: Mmuock
   zawgyi          mm: Burmese Zawgyi
+  shn             mm: Shan
+  zgt             mm: Shan (Zawgyi Tai)
+  mnw             mm: Mon
+  mnw-a1          mm: Mon (A1)
   fr-dvorak       ca: French (Canada, Dvorak)
   fr-legacy       ca: French (Canada, legacy)
-  multix          ca: Canadian (intl.)
-  multi           ca: Canadian (intl., 1st part)
-  multi-2gr       ca: Canadian (intl., 2nd part)
+  multix          ca: Canadian (CSA)
   ike             ca: Inuktitut
   eng             ca: English (Canada)
   mon_trad        cn: Mongolian (Bichig)
@@ -437,7 +441,7 @@
   tib             cn: Tibetan
   tib_asciinum    cn: Tibetan (with ASCII numerals)
   ug              cn: Uyghur
-  altgr-pinyin    cn: Hanyu Pinyin (with AltGr dead keys)
+  altgr-pinyin    cn: Hanyu Pinyin Letters (with AltGr dead keys)
   alternatequotes hr: Croatian (with guillemets)
   unicode         hr: Croatian (with Croatian digraphs)
   unicodeus       hr: Croatian (US, with Croatian digraphs)
@@ -461,6 +465,7 @@
   dvorak          ee: Estonian (Dvorak)
   us              ee: Estonian (US)
   pes_keypad      ir: Persian (with Persian keypad)
+  azb             ir: Azerbaijani (Iran)
   ku              ir: Kurdish (Iran, Latin Q)
   ku_f            ir: Kurdish (Iran, F)
   ku_alt          ir: Kurdish (Iran, Latin Alt-Q)
@@ -488,7 +493,7 @@
   mac             fr: French (Macintosh)
   azerty          fr: French (AZERTY)
   afnor           fr: French (AZERTY, AFNOR)
-  bre             fr: French (Breton)
+  bre             fr: Breton (France)
   oci             fr: Occitan
   geo             fr: Georgian (France, AZERTY Tskapo)
   us              fr: French (US)
@@ -576,7 +581,6 @@
   deadtilde       latam: Spanish (Latin American, dead tilde)
   dvorak          latam: Spanish (Latin American, Dvorak)
   colemak         latam: Spanish (Latin American, Colemak)
-  colemak-gaming  latam: Spanish (Latin American, Colemak for gaming)
   std             lt: Lithuanian (standard)
   us              lt: Lithuanian (US)
   ibm             lt: Lithuanian (IBM LST 1205-92)
@@ -630,6 +634,8 @@
   phonetic_winkeys ru: Russian (phonetic, Windows)
   phonetic_YAZHERTY ru: Russian (phonetic, YAZHERTY)
   typewriter      ru: Russian (typewriter)
+  ruchey_ru       ru: Russian (engineering, RU)
+  ruchey_en       ru: Russian (engineering, EN)
   legacy          ru: Russian (legacy)
   typewriter-legacy ru: Russian (typewriter, legacy)
   tt              ru: Tatar
@@ -649,6 +655,7 @@
   phonetic_azerty ru: Russian (phonetic, AZERTY)
   phonetic_dvorak ru: Russian (phonetic, Dvorak)
   phonetic_fr     ru: Russian (phonetic, French)
+  ab              ru: Abkhazian (Russia)
   yz              rs: Serbian (Cyrillic, ZE and ZHE swapped)
   latin           rs: Serbian (Latin)
   latinunicode    rs: Serbian (Latin, Unicode)
@@ -697,15 +704,13 @@
   tis             th: Thai (TIS-820.2538)
   pat             th: Thai (Pattachote)
   f               tr: Turkish (F)
+  e               tr: Turkish (E)
   alt             tr: Turkish (Alt-Q)
   ku              tr: Kurdish (Turkey, Latin Q)
   ku_f            tr: Kurdish (Turkey, F)
   ku_alt          tr: Kurdish (Turkey, Latin Alt-Q)
   intl            tr: Turkish (intl., with dead keys)
-  crh             tr: Crimean Tatar (Turkish Q)
-  crh_f           tr: Crimean Tatar (Turkish F)
-  crh_alt         tr: Crimean Tatar (Turkish Alt-Q)
-  ot              tr: Ottoman
+  ot              tr: Ottoman (Q)
   otf             tr: Ottoman (F)
   otk             tr: Old Turkic
   otkf            tr: Old Turkic (F)
@@ -714,10 +719,14 @@
   phonetic        ua: Ukrainian (phonetic)
   typewriter      ua: Ukrainian (typewriter)
   winkeys         ua: Ukrainian (Windows)
+  macOS           ua: Ukrainian (macOS)
   legacy          ua: Ukrainian (legacy)
   rstu            ua: Ukrainian (standard RSTU)
   rstu_ru         ua: Russian (Ukraine, standard RSTU)
   homophonic      ua: Ukrainian (homophonic)
+  crh             ua: Crimean Tatar (Turkish Q)
+  crh_f           ua: Crimean Tatar (Turkish F)
+  crh_alt         ua: Crimean Tatar (Turkish Alt-Q)
   extd            gb: English (UK, extended, Windows)
   intl            gb: English (UK, intl., with dead keys)
   dvorak          gb: English (UK, Dvorak)
@@ -727,9 +736,10 @@
   colemak         gb: English (UK, Colemak)
   colemak_dh      gb: English (UK, Colemak-DH)
   pl              gb: Polish (British keyboard)
+  gla             gb: Scottish Gaelic
   latin           uz: Uzbek (Latin)
   us              vn: Vietnamese (US)
-  fr              vn: Vietnamese (French)
+  fr              vn: Vietnamese (France)
   kr104           kr: Korean (101/104-key compatible)
   CloGaelach      ie: CloGaelach
   UnicodeExpert   ie: Irish (UnicodeExpert)
@@ -762,7 +772,10 @@
   dvorak          ph: Filipino (Dvorak, Latin)
   dvorak-bay      ph: Filipino (Dvorak, Baybayin)
   gag             md: Moldavian (Gagauz)
-  phoneticx       id: Indonesian (Arab Pegon, extended phonetic)
+  javanese        id: Javanese
+  melayu-phonetic id: Indonesian (Arab Melayu, phonetic)
+  melayu-phoneticx id: Indonesian (Arab Melayu, extended phonetic)
+  pegon-phonetic  id: Indonesian (Arab Pegon, phonetic)
   phonetic        my: Malay (Jawi, phonetic)
 
 ! option
@@ -779,30 +792,33 @@
   grp:lalt_toggle      Left Alt
   grp:caps_toggle      Caps Lock
   grp:shift_caps_toggle Shift+Caps Lock
-  grp:shift_caps_switch Caps Lock to first layout; Shift+Caps Lock to last layout
-  grp:win_menu_switch  Left Win to first layout; Right Win/Menu to last layout
-  grp:lctrl_rctrl_switch Left Ctrl to first layout; Right Ctrl to last layout
+  grp:caps_select      Caps Lock to first layout; Shift+Caps Lock to second layout
+  grp:win_menu_select  Left Win to first layout; Right Win/Menu to second layout
+  grp:ctrl_select      Left Ctrl to first layout; Right Ctrl to second layout
   grp:alt_caps_toggle  Alt+Caps Lock
-  grp:shifts_toggle    Both Shift together
-  grp:alts_toggle      Both Alt together
-  grp:ctrls_toggle     Both Ctrl together
+  grp:shifts_toggle    Both Shifts together
+  grp:alts_toggle      Both Alts together
+  grp:alt_altgr_toggle Both Alts together; AltGr alone chooses third level
+  grp:ctrls_toggle     Both Ctrls together
   grp:ctrl_shift_toggle Ctrl+Shift
   grp:lctrl_lshift_toggle Left Ctrl+Left Shift
   grp:rctrl_rshift_toggle Right Ctrl+Right Shift
   grp:ctrl_alt_toggle  Alt+Ctrl
   grp:alt_shift_toggle Alt+Shift
   grp:lalt_lshift_toggle Left Alt+Left Shift
-  grp:alt_space_toggle Alt+Space
+  grp:ralt_rshift_toggle Right Alt+Right Shift
   grp:menu_toggle      Menu
   grp:lwin_toggle      Left Win
+  grp:alt_space_toggle Alt+Space
   grp:win_space_toggle Win+Space
+  grp:ctrl_space_toggle Ctrl+Space
   grp:rwin_toggle      Right Win
   grp:lshift_toggle    Left Shift
   grp:rshift_toggle    Right Shift
   grp:lctrl_toggle     Left Ctrl
   grp:rctrl_toggle     Right Ctrl
   grp:sclk_toggle      Scroll Lock
-  grp:lctrl_lwin_rctrl_menu Left Ctrl+Left Win to first layout; Right Ctrl+Menu to second layout
+  grp:lctrl_lwin_rctrl_menu Ctrl+Left Win to first layout; Ctrl+Menu to second layout
   grp:lctrl_lwin_toggle Left Ctrl+Left Win
   lv2                  Key to choose the 2nd level
   lv2:lsgt_switch      The "&lt; &gt;" key
@@ -828,7 +844,7 @@
   ctrl:nocaps          Caps Lock as Ctrl
   ctrl:lctrl_meta      Left Ctrl as Meta
   ctrl:swapcaps        Swap Ctrl and Caps Lock
-  ctrl:swapcaps_hyper  Caps Lock as Ctrl, Ctrl as Hyper
+  ctrl:hyper_capscontrol Caps Lock as Ctrl, Ctrl as Hyper
   ctrl:ac_ctrl         To the left of "A"
   ctrl:aa_ctrl         At the bottom left
   ctrl:rctrl_ralt      Right Ctrl as Right Alt
@@ -910,6 +926,7 @@
   compose:102          The "&lt; &gt;" key
   compose:102-altgr    3rd level of the "&lt; &gt;" key
   compose:paus         Pause
+  compose:ins          Insert
   compose:prsc         PrtSc
   compose:sclk         Scroll Lock
   compat               Compatibility options
@@ -922,9 +939,9 @@
   shift:breaks_caps    Shift cancels Caps Lock
   misc:typo            Enable extra typographic characters
   misc:apl             Enable APL overlay characters
-  shift:both_capslock  Both Shift together enable Caps Lock
-  shift:both_capslock_cancel Both Shift together enable Caps Lock; one Shift key disables it
-  shift:both_shiftlock Both Shift together enable Shift Lock
+  shift:both_capslock  Both Shifts together enable Caps Lock
+  shift:both_capslock_cancel Both Shifts together enable Caps Lock; one Shift key disables it
+  shift:both_shiftlock Both Shifts together enable Shift Lock
   keypad:pointerkeys   Shift + Num Lock enables PointerKeys
   grab:break_actions   Allow breaking grabs with keyboard actions (warning: security risk)
   grab:debug           Allow grab and window tree logging
@@ -935,17 +952,21 @@
   eurosign:5           Euro on 5
   rupeesign:4          Rupee on 4
   lv5                  Key to choose 5th level
+  lv5:caps_switch      Caps Lock chooses 5th level
   lv5:lsgt_switch      The "&lt; &gt;" key chooses 5th level
   lv5:ralt_switch      Right Alt chooses 5th level
   lv5:menu_switch      Menu chooses 5th level
+  lv5:rctrl_switch     Right Ctrl chooses 5th level
   lv5:lsgt_switch_lock The "&lt; &gt;" key chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
   lv5:ralt_switch_lock Right Alt chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
   lv5:lwin_switch_lock Left Win chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
   lv5:rwin_switch_lock Right Win chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
   lv5:lsgt_switch_lock_cancel The "&lt; &gt;" key chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
+  lv5:caps_switch      Caps Lock chooses 5th level
   lv5:lsgt_switch      The "&lt; &gt;" key chooses 5th level
   lv5:ralt_switch      Right Alt chooses 5th level
   lv5:menu_switch      Menu chooses 5th level
+  lv5:rctrl_switch     Right Ctrl chooses 5th level
   lv5:lsgt_switch_lock The "&lt; &gt;" key chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
   lv5:ralt_switch_lock Right Alt chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
   lv5:lwin_switch_lock Left Win chooses 5th level and acts as a one-time lock if pressed with another 5th level chooser
@@ -954,7 +975,6 @@
   nbsp:none            Usual space at any level
   nbsp:level2          Non-breaking space at the 2nd level
   nbsp:level3          Non-breaking space at the 3rd level
-  nbsp:level3s         Non-breaking space at the 3rd level, nothing at the 4th level
   nbsp:level3n         Non-breaking space at the 3rd level, thin non-breaking space at the 4th level
   nbsp:level4          Non-breaking space at the 4th level
   nbsp:level4n         Non-breaking space at the 4th level, thin non-breaking space at the 6th level
@@ -963,7 +983,6 @@
   nbsp:zwnj2zwj3       Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level
   nbsp:zwnj2zwj3nb4    Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level, non-breaking space at the 4th level
   nbsp:zwnj2nb3        Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level
-  nbsp:zwnj2nb3s       Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, nothing at the 4th level
   nbsp:zwnj2nb3zwj4    Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, zero-width joiner at the 4th level
   nbsp:zwnj2nb3nnb4    Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, thin non-breaking space at the 4th level
   nbsp:zwnj3zwj4       Zero-width non-joiner at the 3rd level, zero-width joiner at the 4th level

Index: src/external/mit/xorg/lib/xkeyboard-config/rules/evdev
diff -u src/external/mit/xorg/lib/xkeyboard-config/rules/evdev:1.16 src/external/mit/xorg/lib/xkeyboard-config/rules/evdev:1.17
--- src/external/mit/xorg/lib/xkeyboard-config/rules/evdev:1.16	Sun Jan  9 13:54:16 2022
+++ src/external/mit/xorg/lib/xkeyboard-config/rules/evdev	Mon Oct 17 07:40:23 2022
@@ -42,30 +42,6 @@
 ! $azerty = be fr
 ! $qwertz = al ch cz de hr hu ro si sk
 
-
-// All layouts with 3rd and 4th levels:
-! $threelevellayouts = af al az \
-              bd be bg br bt \
-              ca ch cm cn cz \
-              de dk dz \
-              ee es eu \
-              fi fo fr \
-              gb ge gh gr \
-              hr hu \
-              ie il in ir is it \
-              kh kz \
-              latam \
-              lk lt lv \
-              ml mm mn mt \
-              ng nl no \
-              ph pk pl pt \
-              ro rs \
-              se si sk sn sy \
-              tg tm tr tw \
-              ua us \
-              vn \
-              za
-
 ! $thinkpads = thinkpad thinkpad60 thinkpadz60
 
 ! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \
@@ -85,16 +61,12 @@
 
 ! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat
 
-
-! $evdevkbds = ibm_spacesaver
-
-! $dvoraklayouts = br ca de ee es fr gb no pl se us
+// no tweaks needed for evdev
 
 ! model		=	keycodes
-  applealu_jis	=	evdev+macintosh(jisevdev)
- $jollamodels   =       evdev+jolla(jolla)
-  olpc          =       evdev+olpc(olpc)
-  olpcm         =       evdev+olpc(olpcm)
+ $jollamodels	=	evdev+jolla(jolla)
+  olpc		=	evdev+olpc(olpc)
+  olpcm		=	evdev+olpc(olpcm)
   *		=	evdev
 
 ! layout[1]	=	keycodes
@@ -110,7 +82,7 @@
 ! option	=	keycodes
 
 ! model		layout	=	geometry
-  thinkpad     us              =       thinkpad(us)
+  thinkpad	us	=	thinkpad(us)
 
 ! model		=	geometry
   microsoftelite	=	microsoft(elite)
@@ -154,11 +126,6 @@
   *		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)
@@ -191,27 +158,17 @@
   *		syr		basic		=	pc+sy(syc)
   *		syr		phonetic		=	pc+sy(syc_phonetic)
   *		tam		INSCRIPT		=	pc+in(tam)
-  *		tam		UNI		=	pc+in(tam_unicode)
-  *		tam		NUMERAL-KEYBOARD		=	pc+in(tam_keyboard_with_numerals)
-  *		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)
   nokiarx51	cz		qwerty		=	nokia_vndr/rx-51(cz_qwerty)
-  *			$sun_custom	$sun_var	=	pc+sun_vndr/%l%(v)
+  *		$sun_custom	$sun_var	=	pc+sun_vndr/%l%(v)
 
 ! 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
@@ -224,23 +181,15 @@
   *		kan			=	pc+in(kan)
   *		mi			=	pc+mao
   *		ogham			=	pc+ie(ogam)
-  *		ori			=	pc+ie(ori)
+  *		ori			=	pc+in(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)
@@ -273,23 +222,17 @@
   *		syr(basic)			=	pc+sy(syc)
   *		syr(phonetic)			=	pc+sy(syc_phonetic)
   *		tam(INSCRIPT)			=	pc+in(tam)
-  *		tam(UNI)			=	pc+in(tam_unicode)
-  *		tam(NUMERAL-KEYBOARD)			=	pc+in(tam_keyboard_with_numerals)
-  *		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)
+
+! model		layout			=	symbols
   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)
-  empty         *                       =       empty(basic)
-  *             empty                   =       empty(basic)
-  jollasbj 	$nonlatin		=	jolla_vndr/sbj(common)+us+%l%(v):2
+  empty		*			=	empty(basic)
+  *		empty			=	empty(basic)
+  jollasbj	$nonlatin		=	jolla_vndr/sbj(common)+us+%l%(v):2
   jollasbj	*			=	jolla_vndr/sbj(common)+%l%(v)
  $sun		$sun_custom		=	pc+sun_vndr/%l%(v)
   pc98		nec_vndr/jp		=	nec_vndr/jp(pc98)
@@ -312,21 +255,19 @@
   olpc		*			=	olpc+%l%(v)
   olpcm		$olpclayouts		=	olpc+%l%(m)
   olpcm		*			=	olpc+%l%(v)
- $thinkpads   	br			=	pc+br(thinkpad)
+ $thinkpads	br			=	pc+br(thinkpad)
   sl-c3x00	*			=	pc+sharp_vndr/sl-c3x00(basic)
   ws003sh	*			=	pc+sharp_vndr/ws003sh(basic)
   ws007sh	*			=	pc+sharp_vndr/ws007sh(basic)
   ws011sh	*			=	pc+sharp_vndr/ws011sh(basic)
   ws020sh	*			=	pc+sharp_vndr/ws020sh(basic)
-  *	   	$nonlatin		=	pc+us+%l%(v):2
+  *		$nonlatin		=	pc+us+%l%(v):2
   *		*			=	pc+%l%(v)
 
 ! model		layout[1]	=	symbols
   *		ar		=	pc+ara%(v[1])
   *		ben		=	pc+in(ben)
   *		bs		=	pc+ba%(v[1])
-  *		cs		=	pc+rs%(v[1])
-  *		cz_qwerty		=	pc+cz(qwerty)
   *		dev		=	pc+in(deva)
   *		dvorak		=	pc+us(dvorak)
   *		dzdwi		=	pc+bt%(v[1])
@@ -339,23 +280,15 @@
   *		kan		=	pc+in(kan)
   *		mi		=	pc+mao%(v[1])
   *		ogham		=	pc+ie(ogam)
-  *		ori		=	pc+ie(ori)
+  *		ori		=	pc+in(ori)
   *		sapmi		=	pc+no(smi)
-  *		sr		=	pc+srp%(v[1])
   *		syr		=	pc+sy(syc)
   *		tel		=	pc+in(tel)
   *		tml		=	pc+in(tam)
-  *		yu		=	pc+srp%(v[1])
-  *		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)
@@ -388,19 +321,13 @@
   *		syr(basic)		=	pc+sy(syc)
   *		syr(phonetic)		=	pc+sy(syc_phonetic)
   *		tam(INSCRIPT)		=	pc+in(tam)
-  *		tam(UNI)		=	pc+in(tam_unicode)
-  *		tam(NUMERAL-KEYBOARD)		=	pc+in(tam_keyboard_with_numerals)
-  *		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)
+
+! model		layout[1]		=	symbols
   ataritt	*			=	xfree68_vndr/ataritt(us)+%l[1]%(v[1])
   amiga		*			=	xfree68_vndr/amiga(usa1)+%l[1]%(v[1])
   jollasbj	*			=	jolla_vndr/sbj(common)+%l[1]%(v[1])
- $sun		$sun_custom	=	pc+sun_vndr/%l[1]%(v[1])
+ $sun		$sun_custom		=	pc+sun_vndr/%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])
@@ -417,11 +344,6 @@
   *		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)
@@ -454,22 +376,12 @@
   *		syr		basic	=	pc+sy(syc)
   *		syr		phonetic	=	pc+sy(syc_phonetic)
   *		tam		INSCRIPT	=	pc+in(tam)
-  *		tam		UNI	=	pc+in(tam_unicode)
-  *		tam		NUMERAL-KEYBOARD	=	pc+in(tam_keyboard_with_numerals)
-  *		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)
 
 ! model		layout[2]	=	symbols
   *		ar		=	+ara%(v[2]):2
   *		ben		=	+in(ben):2
   *		bs		=	+ba%(v[2]):2
-  *		cs		=	+rs%(v[2]):2
-  *		cz_qwerty		=	+cz(qwerty):2
   *		dev		=	+in(deva):2
   *		dvorak		=	+us(dvorak):2
   *		dzdwi		=	+bt%(v[2]):2
@@ -482,23 +394,15 @@
   *		kan		=	+in(kan):2
   *		mi		=	+mao%(v[2]):2
   *		ogham		=	+ie(ogam):2
-  *		ori		=	+ie(ori):2
+  *		ori		=	+in(ori):2
   *		sapmi		=	+no(smi):2
-  *		sr		=	+srp%(v[2]):2
   *		syr		=	+sy(syc):2
   *		tel		=	+in(tel):2
   *		tml		=	+in(tam):2
-  *		yu		=	+srp%(v[2]):2
-  *		fr-latin9		=	+fr(latin9):2
   *		us_intl		=	+us(alt-intl):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
@@ -531,26 +435,16 @@
   *		syr(basic)		=	+sy(syc):2
   *		syr(phonetic)		=	+sy(syc_phonetic):2
   *		tam(INSCRIPT)		=	+in(tam):2
-  *		tam(UNI)		=	+in(tam_unicode):2
-  *		tam(NUMERAL-KEYBOARD)		=	+in(tam_keyboard_with_numerals):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
   nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):2
   nokiarx51	*		=	+nokia_vndr/rx-51(%l[2]%_v[2]):2
- $sun	$sun_custom	=	+sun_vndr/%l[2]%(v[2]):2
+ $sun		$sun_custom	=	+sun_vndr/%l[2]%(v[2]):2
   *		*		=	+%l[2]%(v[2]):2
 
 ! model		layout[3]	=	symbols
   *		ar		=	+ara%(v[3]):3
   *		ben		=	+in(ben):3
   *		bs		=	+ba%(v[3]):3
-  *		cs		=	+rs%(v[3]):3
-  *		cz_qwerty		=	+cz(qwerty):3
   *		dev		=	+in(deva):3
   *		dvorak		=	+us(dvorak):3
   *		dzdwi		=	+bt%(v[3]):3
@@ -563,23 +457,15 @@
   *		kan		=	+in(kan):3
   *		mi		=	+mao%(v[3]):3
   *		ogham		=	+ie(ogam):3
-  *		ori		=	+ie(ori):3
+  *		ori		=	+in(ori):3
   *		sapmi		=	+no(smi):3
-  *		sr		=	+srp%(v[3]):3
   *		syr		=	+sy(syc):3
   *		tel		=	+in(tel):3
   *		tml		=	+in(tam):3
-  *		yu		=	+srp%(v[3]):3
-  *		fr-latin9		=	+fr(latin9):3
   *		us_intl		=	+us(alt-intl):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
@@ -612,26 +498,16 @@
   *		syr(basic)		=	+sy(syc):3
   *		syr(phonetic)		=	+sy(syc_phonetic):3
   *		tam(INSCRIPT)		=	+in(tam):3
-  *		tam(UNI)		=	+in(tam_unicode):3
-  *		tam(NUMERAL-KEYBOARD)		=	+in(tam_keyboard_with_numerals):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
   nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):3
   nokiarx51	*		=	+nokia_vndr/rx-51(%l[3]%_v[3]):3
- $sun	$sun_custom	=	+sun_vndr/%l[3]%(v[3]):3
+ $sun		$sun_custom	=	+sun_vndr/%l[3]%(v[3]):3
   *		*		=	+%l[3]%(v[3]):3
 
 ! model		layout[4]	=	symbols
   *		ar		=	+ara%(v[4]):4
   *		ben		=	+in(ben):4
   *		bs		=	+ba%(v[4]):4
-  *		cs		=	+rs%(v[4]):4
-  *		cz_qwerty		=	+cz(qwerty):4
   *		dev		=	+in(deva):4
   *		dvorak		=	+us(dvorak):4
   *		dzdwi		=	+bt%(v[4]):4
@@ -644,23 +520,15 @@
   *		kan		=	+in(kan):4
   *		mi		=	+mao%(v[4]):4
   *		ogham		=	+ie(ogam):4
-  *		ori		=	+ie(ori):4
+  *		ori		=	+in(ori):4
   *		sapmi		=	+no(smi):4
-  *		sr		=	+srp%(v[4]):4
   *		syr		=	+sy(syc):4
   *		tel		=	+in(tel):4
   *		tml		=	+in(tam):4
-  *		yu		=	+srp%(v[4]):4
-  *		fr-latin9		=	+fr(latin9):4
   *		us_intl		=	+us(alt-intl):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
@@ -693,29 +561,16 @@
   *		syr(basic)		=	+sy(syc):4
   *		syr(phonetic)		=	+sy(syc_phonetic):4
   *		tam(INSCRIPT)		=	+in(tam):4
-  *		tam(UNI)		=	+in(tam_unicode):4
-  *		tam(NUMERAL-KEYBOARD)		=	+in(tam_keyboard_with_numerals):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
   nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):4
   nokiarx51	*		=	+nokia_vndr/rx-51(%l[4]%_v[4]):4
- $sun	$sun_custom	=	+sun_vndr/%l[4]%(v[4]):4
+ $sun		$sun_custom	=	+sun_vndr/%l[4]%(v[4]):4
   *		*		=	+%l[4]%(v[4]):4
 
 ! model		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
@@ -748,25 +603,12 @@
   *		syr		basic	=	+sy(syc):2
   *		syr		phonetic	=	+sy(syc_phonetic):2
   *		tam		INSCRIPT	=	+in(tam):2
-  *		tam		UNI	=	+in(tam_unicode):2
-  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):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
 
 ! model		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
@@ -799,25 +641,12 @@
   *		syr		basic	=	+sy(syc):3
   *		syr		phonetic	=	+sy(syc_phonetic):3
   *		tam		INSCRIPT	=	+in(tam):3
-  *		tam		UNI	=	+in(tam_unicode):3
-  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):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
 
 ! model		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
@@ -850,113 +679,64 @@
   *		syr		basic	=	+sy(syc):4
   *		syr		phonetic	=	+sy(syc_phonetic):4
   *		tam		INSCRIPT	=	+in(tam):4
-  *		tam		UNI	=	+in(tam_unicode):4
-  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):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
-  $evdevkbds    =   +inet(evdev)+inet(%m)
   chromebook    =   +inet(evdev)+inet(chromebook)
-  applealu_jis  =   +inet(evdev)+macintosh_vndr/jp(alujiskeys)
+  ppkb          =   +inet(evdev)+inet(ppkb)
   *             =   +inet(evdev)
 
 ! model		layout		=	symbols
 
-! layout	variant		=	compat
-  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		adnw			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		koy			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone_eszett_home			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwertz			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwerty			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  jp        $sun_compat =   complete+japan(kana_lock)
-  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		adnw			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		koy			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone_eszett_home			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwertz			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwerty			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  jp        $sun_compat =   complete+japan(kana_lock)
-
-! layout[1]	variant[1]	=	compat
-  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		adnw			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		koy			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone_eszett_home			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwertz			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwerty			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  jp       $sun_compat =   complete+japan(kana_lock)
-  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		adnw			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		koy			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		bone_eszett_home			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwertz			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  de		neo_qwerty			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
-  jp       $sun_compat =   complete+japan(kana_lock)
-
-! layout[2]	variant[2]	=	compat
-  de		neo			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		adnw			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		koy			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		bone			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		bone_eszett_home			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		neo_qwertz			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		neo_qwerty			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  jp       $sun_compat  =   +complete+japan(kana_lock):2
-  de		neo			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		adnw			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		koy			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		bone			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		bone_eszett_home			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		neo_qwertz			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  de		neo_qwerty			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
-  jp       $sun_compat  =   +complete+japan(kana_lock):2
-
-! layout[3]	variant[3]	=	compat
-  de		neo			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		adnw			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		koy			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		bone			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		bone_eszett_home			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		neo_qwertz			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		neo_qwerty			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  jp       $sun_compat  =   +complete+japan(kana_lock):3
-  de		neo			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		adnw			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		koy			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		bone			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		bone_eszett_home			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		neo_qwertz			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  de		neo_qwerty			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
-  jp       $sun_compat  =   +complete+japan(kana_lock):3
-
-! layout[4]	variant[4]	=	compat
-  de		neo			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		adnw			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		koy			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		bone			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		bone_eszett_home			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		neo_qwertz			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		neo_qwerty			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  jp       $sun_compat  =   +complete+japan(kana_lock):4
-  de		neo			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		adnw			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		koy			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		bone			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		bone_eszett_home			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		neo_qwertz			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  de		neo_qwerty			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
-  jp       $sun_compat  =   +complete+japan(kana_lock):4
+! layout	 variant		= compat
+  de		 neo			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 adnw			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 koy			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 bone			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 bone_eszett_home	= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 neo_qwertz		= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 neo_qwerty		= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  jp		$sun_compat		= complete+japan(kana_lock)
+
+! layout[1]	 variant[1]		= compat
+  de		 neo			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 adnw			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 koy			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 bone			= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 bone_eszett_home	= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 neo_qwertz		= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  de		 neo_qwerty		= +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+  jp		$sun_compat		= complete+japan(kana_lock)
+
+! layout[2]	 variant[2]		= compat
+  de		 neo			= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  de		 adnw			= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  de		 koy			= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  de		 bone			= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  de		 bone_eszett_home	= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  de		 neo_qwertz		= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  de		 neo_qwerty		= +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+  jp		$sun_compat		= +complete+japan(kana_lock):2
+
+! layout[3]	 variant[3]		= compat
+  de		 neo			= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  de		 adnw			= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  de		 koy			= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  de		 bone			= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  de		 bone_eszett_home	= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  de		 neo_qwertz		= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  de		 neo_qwerty		= +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+  jp		$sun_compat		= +complete+japan(kana_lock):3
+
+! layout[4]	 variant[4]		= compat
+  de		 neo			= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  de		 adnw			= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  de		 koy			= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  de		 bone			= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  de		 bone_eszett_home	= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  de		 neo_qwertz		= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  de		 neo_qwerty		= +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+  jp		$sun_compat		= +complete+japan(kana_lock):4
 
 ! model		layout		=	compat
   pc98		nec_vndr/jp	=	pc98(basic)
@@ -974,34 +754,76 @@
   $nokiamodels	=	complete+nokia
   *		=	complete
 
-! layout	option	=	symbols
-  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle)
-  *			misc:typo 	= +typo(base)
-  *			misc:apl	= +apl(level3)
-
-! layout[1]	option	=	symbols
-  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1
-  *			misc:typo 	= +typo(base):1
-  *			misc:apl	= +apl(level3):1
-
-! layout[2]	option	=	symbols
-  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2
-  *			misc:typo 	= +typo(base):2
-  *			misc:apl	= +apl(level3):2
-
-! layout[3]	option	=	symbols
-  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3
-  *			misc:typo 	= +typo(base):3
-  *			misc:apl	= +apl(level3):3
-
-! layout[4]	option	=	symbols
-  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4
-  *			misc:typo 	= +typo(base):4
-  *			misc:apl	= +apl(level3):4
-
-! option	=	symbols
-  grp:shift_toggle	=	+group(shifts_toggle)
-  grp:shift_toggle	=	+group(shifts_toggle)
+! layout		option			= symbols
+  *			grp:toggle		= +group(toggle)
+  *			grp:alts_toggle		= +group(alts_toggle)
+  *			grp:alt_altgr_toggle	= +group(alt_altgr_toggle)
+  *			grp:alt_space_toggle	= +group(alt_space_toggle)
+  *			grp:win_space_toggle	= +group(win_space_toggle)
+  *			grp:ctrl_space_toggle	= +group(ctrl_space_toggle)
+  *			grp:rctrl_rshift_toggle	= +group(rctrl_rshift_toggle)
+  *			lv3:ralt_alt		= +level3(ralt_alt)
+  *			misc:typo		= +typo(base)
+  *			misc:apl		= +apl(level3)
+
+! layout[1]		option			= symbols
+  *			grp:toggle		= +group(toggle):1
+  *			grp:alts_toggle		= +group(alts_toggle):1
+  *			grp:alt_altgr_toggle	= +group(alt_altgr_toggle):1
+  *			grp:alt_space_toggle	= +group(alt_space_toggle):1
+  *			grp:win_space_toggle	= +group(win_space_toggle):1
+  *			grp:ctrl_space_toggle	= +group(ctrl_space_toggle):1
+  *			grp:rctrl_rshift_toggle	= +group(rctrl_rshift_toggle):1
+  *			lv3:ralt_alt		= +level3(ralt_alt):1
+  *			misc:typo		= +typo(base):1
+  *			misc:apl		= +apl(level3):1
+
+! layout[2]		option			= symbols
+  *			grp:toggle		= +group(toggle):2
+  *			grp:alts_toggle		= +group(alts_toggle):2
+  *			grp:alt_altgr_toggle	= +group(alt_altgr_toggle):2
+  *			grp:alt_space_toggle	= +group(alt_space_toggle):2
+  *			grp:win_space_toggle	= +group(win_space_toggle):2
+  *			grp:ctrl_space_toggle	= +group(ctrl_space_toggle):2
+  *			grp:rctrl_rshift_toggle	= +group(rctrl_rshift_toggle):2
+  *			lv3:ralt_alt		= +level3(ralt_alt):2
+  *			misc:typo		= +typo(base):2
+  *			misc:apl		= +apl(level3):2
+
+! layout[3]		option			= symbols
+  *			grp:toggle		= +group(toggle):3
+  *			grp:alts_toggle		= +group(alts_toggle):3
+  *			grp:alt_altgr_toggle	= +group(alt_altgr_toggle):3
+  *			grp:alt_space_toggle	= +group(alt_space_toggle):3
+  *			grp:win_space_toggle	= +group(win_space_toggle):3
+  *			grp:ctrl_space_toggle	= +group(ctrl_space_toggle):3
+  *			grp:rctrl_rshift_toggle	= +group(rctrl_rshift_toggle):3
+  *			lv3:ralt_alt		= +level3(ralt_alt):3
+  *			misc:typo		= +typo(base):3
+  *			misc:apl		= +apl(level3):3
+
+! layout[4]		option			= symbols
+  *			grp:toggle		= +group(toggle):4
+  *			grp:alts_toggle		= +group(alts_toggle):4
+  *			grp:alt_altgr_toggle	= +group(alt_altgr_toggle):4
+  *			grp:alt_space_toggle	= +group(alt_space_toggle):4
+  *			grp:win_space_toggle	= +group(win_space_toggle):4
+  *			grp:ctrl_space_toggle	= +group(ctrl_space_toggle):4
+  *			grp:rctrl_rshift_toggle	= +group(rctrl_rshift_toggle):4
+  *			lv3:ralt_alt		= +level3(ralt_alt):4
+  *			misc:typo		= +typo(base):4
+  *			misc:apl		= +apl(level3):4
+
+! option			= symbols
+  grp:shift_caps_switch		= +group(caps_select)
+  grp:win_menu_switch		= +group(win_menu_select)
+  grp:lctrl_rctrl_switch	= +group(ctrl_select)
+//  Delete the above three aliases in July 2027.
+  ctrl:swapcaps_hyper		   = +ctrl(hyper_capscontrol)
+  ctrl:swapcaps_and_switch_layout  = +ctrl(swapcaps)+group(lctrl_toggle)
+//  Delete the above two aliases in September 2027.
+
+! option		=	symbols
   altwin:menu		=	+altwin(menu)
   altwin:menu_win	=	+altwin(menu_win)
   altwin:meta_alt	=	+altwin(meta_alt)
@@ -1023,18 +845,15 @@
   grp:lwin_switch	=	+group(lwin_switch)
   grp:rwin_switch	=	+group(rwin_switch)
   grp:menu_switch	=	+group(menu_switch)
-  grp:toggle		=	+group(toggle)
+  grp:caps_switch	=	+group(caps_switch)
   grp:shifts_toggle	=	+group(shifts_toggle)
   grp:ctrls_toggle	=	+group(ctrls_toggle)
-  grp:alts_toggle	=	+group(alts_toggle)
-  grp:caps_toggle	=	+capslock(grouplock)
-  grp:caps_switch       =       +capslock(groupshift)
+  grp:caps_toggle	=	+group(caps_toggle)
   grp:shift_caps_toggle	=	+group(shift_caps_toggle)
-  grp:shift_caps_switch	=	+group(shift_caps_switch)
-  grp:win_space_toggle	=	+group(win_space_toggle)
-  grp:win_menu_switch	=	+group(win_menu_switch)
-  grp:alt_caps_toggle   =       +group(alt_caps_toggle)
-  grp:alt_space_toggle	=	+group(alt_space_toggle)
+  grp:caps_select	=	+group(caps_select)
+  grp:win_menu_select	=	+group(win_menu_select)
+  grp:ctrl_select	=	+group(ctrl_select)
+  grp:alt_caps_toggle	=	+group(alt_caps_toggle)
   grp:menu_toggle	=	+group(menu_toggle)
   grp:lwin_toggle	=	+group(lwin_toggle)
   grp:rwin_toggle	=	+group(rwin_toggle)
@@ -1045,25 +864,22 @@
   grp:rctrl_toggle	=	+group(rctrl_toggle)
   grp:lalt_toggle	=	+group(lalt_toggle)
   grp:sclk_toggle	=	+group(sclk_toggle)
-  grp:lctrl_rctrl_switch	=	+group(lctrl_rctrl_switch)
   grp:lctrl_lwin_rctrl_menu	=	+group(lctrl_lwin_rctrl_menu)
-  grp:lctrl_lalt_toggle	=	+group(lctrl_lalt_toggle)
-  grp:rctrl_ralt_toggle	=	+group(rctrl_ralt_toggle)
-  grp:ctrl_alt_toggle	=	+group(ctrl_alt_toggle)
+  grp:lctrl_lalt_toggle		=	+group(lctrl_lalt_toggle)
+  grp:rctrl_ralt_toggle		=	+group(rctrl_ralt_toggle)
+  grp:ctrl_alt_toggle		=	+group(ctrl_alt_toggle)
   grp:ctrl_alt_toggle_bidir	=	+group(ctrl_alt_toggle_bidir)
   grp:lctrl_lshift_toggle	=	+group(lctrl_lshift_toggle)
-  grp:rctrl_rshift_toggle	=	+group(rctrl_rshift_toggle)
-  grp:ctrl_shift_toggle	=	+group(ctrl_shift_toggle)
+  grp:ctrl_shift_toggle		=	+group(ctrl_shift_toggle)
   grp:ctrl_shift_toggle_bidir	=	+group(ctrl_shift_toggle_bidir)
   grp:lalt_lshift_toggle	=	+group(lalt_lshift_toggle)
   grp:ralt_rshift_toggle	=	+group(ralt_rshift_toggle)
-  grp:alt_shift_toggle	=	+group(alt_shift_toggle)
+  grp:alt_shift_toggle		=	+group(alt_shift_toggle)
   grp:alt_shift_toggle_bidir	=	+group(alt_shift_toggle_bidir)
-  grp:lctrl_lwin_toggle	=	+group(lctrl_lwin_toggle)
+  grp:lctrl_lwin_toggle		=	+group(lctrl_lwin_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)
@@ -1079,6 +895,7 @@
   caps:swapescape	=	+capslock(swapescape)
   caps:escape		=	+capslock(escape)
   caps:escape_shifted_capslock	=	+capslock(escape_shifted_capslock)
+  caps:escape_shifted_compose	=	+capslock(escape_shifted_compose)
   caps:backspace	=	+capslock(backspace)
   caps:super		=	+capslock(super)
   caps:hyper		=	+capslock(hyper)
@@ -1088,8 +905,8 @@
   ctrl:nocaps		=	+ctrl(nocaps)
   ctrl:lctrl_meta	=	+ctrl(lctrl_meta)
   ctrl:swapcaps		=	+ctrl(swapcaps)
-  ctrl:swapcaps_hyper	=	+ctrl(swapcaps_hyper)
-  ctrl:swapcaps_and_switch_layout	=	+ctrl(swapcaps_and_switch_layout)
+  ctrl:hyper_capscontrol	=	+ctrl(hyper_capscontrol)
+  ctrl:grouptoggle_capscontrol	=	+ctrl(swapcaps)+group(lctrl_toggle)
   ctrl:ac_ctrl		=	+ctrl(ac_ctrl)
   ctrl:aa_ctrl		=	+ctrl(aa_ctrl)
   ctrl:rctrl_ralt	=	+ctrl(rctrl_ralt)
@@ -1114,6 +931,7 @@
   compose:caps-altgr	=	+compose(caps-altgr)
   compose:102		=	+compose(102)
   compose:102-altgr	=	+compose(102-altgr)
+  compose:ins		=	+compose(ins)
   compose:paus		=	+compose(paus)
   compose:prsc		=	+compose(prsc)
   compose:sclk		=	+compose(sclk)
@@ -1122,19 +940,18 @@
   eurosign:2		=	+eurosign(2)
   eurosign:4		=	+eurosign(4)
   eurosign:5		=	+eurosign(5)
-  rupeesign:4           =       +rupeesign(4)
-  keypad:oss            =       +keypad(oss)
+  rupeesign:4		=	+rupeesign(4)
+  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:hex            =	+keypad(ops)+keypad(hex)
-  keypad:atm            =	+keypad(ops)+keypad(hex)+keypad(atm)  
+  keypad:atm            =	+keypad(ops)+keypad(hex)+keypad(atm)
   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)
@@ -1143,7 +960,6 @@
   nbsp:zwnj2zwj3        =	+nbsp(zwnj2zwj3)
   nbsp:zwnj2zwj3nb4     =	+nbsp(zwnj2zwj3nb4)
   nbsp:zwnj2nb3         =	+nbsp(zwnj2nb3)
-  nbsp:zwnj2nb3s        =	+nbsp(zwnj2nb3s)
   nbsp:zwnj2nb3zwj4     =	+nbsp(zwnj2nb3zwj4)
   nbsp:zwnj2nb3nnb4     =	+nbsp(zwnj2nb3nnb4)
   nbsp:zwnj3zwj4        =	+nbsp(zwnj3zwj4)
@@ -1185,8 +1001,11 @@
   lv3:caps_switch_latch              =       +level3(caps_switch_latch)
   lv3:bksl_switch_latch              =       +level3(bksl_switch_latch)
   lv3:lsgt_switch_latch              =       +level3(lsgt_switch_latch)
+  lv5:caps_switch                 =       +level5(caps_switch)
   lv5:lsgt_switch                 =       +level5(lsgt_switch)
   lv5:ralt_switch                 =       +level5(ralt_switch)
+  lv5:menu_switch                 =       +level5(menu_switch)
+  lv5:rctrl_switch                =       +level5(rctrl_switch)
   lv5:lsgt_switch_lock            =       +level5(lsgt_switch_lock)
   lv5:ralt_switch_lock            =       +level5(ralt_switch_lock)
   lv5:lwin_switch_lock            =       +level5(lwin_switch_lock)
@@ -1198,17 +1017,17 @@
   parens:swap_brackets   =   +parens(swap_brackets)
 
 
-! option	=	compat
+! option		=	compat
   grp_led:num		=	+lednum(group_lock)
   grp_led:caps		=	+ledcaps(group_lock)
   grp_led:scroll	=	+ledscroll(group_lock)
   mod_led:compose	=	+ledcompose(compose)
   japan:kana_lock	=	+japan(kana_lock)
   caps:shiftlock	=	+ledcaps(shift_lock)
-  grab:break_actions    =       +xfree86(grab_break)
+  grab:break_actions	=	+xfree86(grab_break)
 
 
-! option	=	types
+! option			=	types
   caps:internal			=	+caps(internal)
   caps:internal_nocancel	=	+caps(internal_nocancel)
   caps:shift			=	+caps(shift)
@@ -1216,4 +1035,4 @@
   numpad:pc			=	+numpad(pc)
   numpad:mac			=	+numpad(mac)
   numpad:microsoft		=	+numpad(microsoft)
-  numpad:shift3       		=	+numpad(shift3)
+  numpad:shift3			=	+numpad(shift3)

Index: src/external/mit/xorg/lib/xkeyboard-config/symbols/Makefile
diff -u src/external/mit/xorg/lib/xkeyboard-config/symbols/Makefile:1.16 src/external/mit/xorg/lib/xkeyboard-config/symbols/Makefile:1.17
--- src/external/mit/xorg/lib/xkeyboard-config/symbols/Makefile:1.16	Sun Nov  1 12:07:09 2020
+++ src/external/mit/xorg/lib/xkeyboard-config/symbols/Makefile	Mon Oct 17 07:40:23 2022
@@ -1,11 +1,11 @@
-#	$NetBSD: Makefile,v 1.16 2020/11/01 12:07:09 mrg Exp $
+#	$NetBSD: Makefile,v 1.17 2022/10/17 07:40:23 mrg Exp $
 
 .include <bsd.own.mk>
 
 XKBNAME=	symbols
 
 FILES=	af al altwin am apl ara at au az \
-	ba bd be bg br brai bt bw by \
+	ba bd be bg bqn br brai bt bw by \
 	ca capslock cd ch cm cn compose ctrl cz \
 	de dk dz \
 	ee eg empty epo es et eu eurosign \
@@ -13,7 +13,7 @@ FILES=	af al altwin am apl ara at au az 
 	gb ge gh gn gr group \
 	hr hu \
 	id ie il in inet iq ir is it \
-	jp jv \
+	jp \
 	ke keypad kg kh kpdl kr kz \
 	la latam latin level3 level5 lk lt lv \
 	ma mao md me mk ml mm mn mt mv my \

Reply via email to