Edit

kc3-lang/libxkbcommon/test/data/rules/evdev

Branch :

  • Show log

    Commit

  • Author : Pierre Le Marre
    Date : 2024-10-14 16:05:35
    Hash : 31a841ae
    Message : state: support querying whether virtual modifiers are active Previously it was not possible to query the status of virtual modifiers with the following functions: - `xkb_state_mod_index_is_active` - `xkb_state_mod_indices_are_active` - `xkb_state_mod_name_is_active` - `xkb_state_mod_names_are_active` Note that it may *overmatch* if some modifier mappings overlap. For example, the default “us” PC layout maps both “Alt” and “Meta” to the real modifier “Mod1”; thus “Mod1”, “Alt” and “Meta” modifiers will return the same result with these functions.

  • test/data/rules/evdev
  • // DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.py FROM rules/*.part
    //
    //
    //  Rules for resolving XKB components for use with XFree86
    //  Copyright 1996 by Joseph Moss
    //
    //  2002 Modifier: Ivan Pascal      The XFree86 Project
    //
    
    // If you want non-latin layouts implicitly include the en_US layout
    // uncomment lines below
    //! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \
    //              in ir iku jp kan kh kr la lao lk mk mm mn mv mal olck \
    //              ori pk ru scc sy syr tel th tj tam ua uz
    
    // PC models
    ! $pcmodels = pc86 pc101 pc102 pc104 pc104alt pc105
    
    // Jolla devices and keyboards
    ! $jollamodels = jollasbj
    
    // Microsoft models (using MS geometry)
    ! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose microsoftsurface
    
    // Nokia devices and keyboards
    ! $nokiamodels = nokiasu8w nokiarx44 nokiarx51
    
    // TypeMatrix geometries
    ! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106
    
    // Layouts that provide further specializations for the OLPC
    ! $olpclayouts = af am ara br ca es et fr it kh kz in mn np ru th tr us
    
    ! $macbooks = macbook78 macbook79
    ! $maclaptop = ibook powerbook macbook78 macbook79
    ! $applealu = applealu_ansi applealu_iso applealu_jis
    ! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79
    
    ! $macvendorlayouts = ch de dk fi fr gb is it latam nl no pt se us
    
    ! $azerty = be fr
    ! $qwertz = al cz de hr hu ro si sk
    
    
    // all layouts with 3rd and 4th groups
    ! $threelevellayouts = al az \
                  be br bt \
                  ca ch cs cz \
                  de dk \
                  ee es \
                  fi fo fr \
                  gb gr \
                  hu \
                  ie ir is it \
                  latam \
                  lk lt \
                  mn mt \
                  nl no \
                  pl pt \
                  ro \
                  se sk \
                  tr \
                  us \
                  vn \
                  za
    
    ! $thinkpads = thinkpad thinkpad60 thinkpadz60
    
    ! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \
             sun_type6_jp_usb sun_type6_unix_usb sun_type7_jp_usb \
             sun_type7_usb sun_type7_euro_usb sun_type7_unix_usb
    
    ! $sun_jp = sun_type6_jp sun_type6_jp_usb sun_type7_jp_usb
    
    // Sun Type_6_7 keyboards with custom layouts
    ! $sun_custom = ara be br ca ch cz de dk \
                    ee es fi fr gb gr it jp \
                    kr lt lv nl no pl pt ro \
                    ru se sk tr tw ua us
    
    ! $sun_var =  sun_type6 sun_type6_suncompat sun_type6_de sun_type6_fr \
                  sun_type7 sun_type7_suncompat suncompat
    
    ! $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
    
    ! model		=	keycodes
      applealu_jis	=	evdev+macintosh(jisevdev)
     $jollamodels   =       evdev+jolla(jolla)
      olpc          =       evdev+olpc(olpc)
      olpcm         =       evdev+olpc(olpcm)
      *		=	evdev
    
    ! layout[1]	=	keycodes
      $azerty       =       +aliases(azerty)
      $qwertz       =       +aliases(qwertz)
      *             =       +aliases(qwerty)
    
    ! layout	=	keycodes
      $azerty       =       +aliases(azerty)
      $qwertz       =       +aliases(qwertz)
      *             =       +aliases(qwerty)
    
    ! option	=	keycodes
    
    ! model		layout	=	geometry
      thinkpad     us              =       thinkpad(us)
    
    ! model		=	geometry
      microsoftelite	=	microsoft(elite)
     $msmodels	=	microsoft(natural)
      dell101	=	dell(dell101)
      dellm65	=	dell(dellm65)
      latitude	=	dell(latitude)
      flexpro	=	keytronic(FlexPro)
      hp6000	=	hp(omnibook)
      hpmini110	=	hp(mini110)
      hpdv5		=	hp(dv5)
      omnikey101	=	northgate(omnikey101)
      sanwaskbkg3	=	sanwa(sanwaskbkg3)
     $pcmodels	=	pc(%m)
      everex	=	everex(STEPnote)
      thinkpad	=	thinkpad(intl)
      thinkpad60	=	thinkpad(60)
      thinkpadz60	=	thinkpad(60)
      apex300	=	steelseries(apex300)
     $tmgeometries	=	typematrix(%m)
      winbook	=	winbook(XP5)
      pc98		=	nec(pc98)
     $applealu	=	macintosh(%m)
     $macbooks      =       macintosh(%m)
     $macs		=	macintosh(macintosh)
      hhk		=	hhk(basic)
      kinesis	=	kinesis(model100)
     $nokiamodels	=	nokia(%m)
      sun_type6_jp          =   sun(type6jp)
      sun_type6_usb         =   sun(type6)
      sun_type6_euro_usb    =   sun(type6tuv)
      sun_type6_jp_usb      =   sun(type6jp)
      sun_type6_unix_usb    =   sun(type6unix)
      sun_type7_jp_usb      =   sun(type6jp)
      sun_type7_usb         =   sun(type7)
      sun_type7_euro_usb    =   sun(type7tuv)
      sun_type7_unix_usb    =   sun(type7unix)
      *		=       pc(pc104)
    
    ! model		layout		variant		=	symbols
      *		ben		basic		=	pc+in(ben)
      *		ben		probhat		=	pc+in(ben_probhat)
      *		dev		basic		=	pc+in(deva)
      *		dvorak		$dvoraklayouts		=	pc+%v(dvorak)
      *		dvorak		basic		=	pc+us(dvorak)
      *		dvorak		pl_basic		=	pc+pl(dvorak)
      *		dvorak		pl		=	pc+pl(dvorak_quotes)
      *		dvorak		pl_altquotes		=	pc+pl(dvorak_altquotes)
      *		dzdwi		basic		=	pc+bt(basic)
      *		fi		basic		=	pc+fi(classic)
      *		ge		azerty_tskapo		=	pc+fr(geo)
      *		guj		basic		=	pc+in(guj)
      *		gur		basic		=	pc+in(guru)
      *		ie		laptop		=	pc+ie(basic)
      *		ie		CloGaelachLaptop		=	pc+ie(CloGaelach)
      *		in		urd		=	pc+in(urd-phonetic)
      *		iu		basic		=	pc+ca(ike)
      *		lo		basic		=	pc+la(basic)
      *		kan		basic		=	pc+in(kan)
      *		mal		basic		=	pc+in(mal)
      *		mal		mlplusnum		=	pc+in(mal)
      *		ogham		basic		=	pc+ie(ogam)
      *		ogham		laptop		=	pc+ie(ogam)
      *		ogham		is434		=	pc+ie(ogam_is434)
      *		ogham		is434laptop		=	pc+ie(ogam_is434)
      *		ori		basic		=	pc+in(ori)
      *		ro		de		=	pc+ro(winkeys)
      *		ro		us		=	pc+ro(std)
      *		ro		academic		=	pc+ro(std)
      *		ro		std_comma		=	pc+ro(std)
      *		ro		comma		=	pc+ro(basic)
      *		ru		os		=	pc+ru(os_legacy)
      *		pk		urd		=	pc+pk(urd-phonetic)
      *		sapmi		basic		=	pc+no(smi)
      *		sapmi		nodeadkeys		=	pc+no(smi_nodeadkeys)
      *		sapmi		sefi		=	pc+fi(smi)
      *		sin		phonetic-static		=	pc+in(sin_phonetic)
      *		syr		basic		=	pc+sy(syc)
      *		syr		phonetic		=	pc+sy(syc_phonetic)
      *		tam		INSCRIPT		=	pc+in(tam)
      *		tam		UNI		=	pc+in(tam_unicode)
      *		tam		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)
    
    ! model		layout				=	symbols
      *		ar			=	pc+ara
      *		ben			=	pc+in(ben)
      *		bs			=	pc+ba
      *		cs			=	pc+rs
      *		cz_qwerty			=	pc+cz(qwerty)
      *		dev			=	pc+in(deva)
      *		dvorak			=	pc+us(dvorak)
      *		dzdwi			=	pc+bt
      *		el			=	pc+gr
      *		en_US			=	pc+latin
      *		guj			=	pc+in(guj)
      *		gur			=	pc+in(guru)
      *		iu			=	pc+ca(ike)
      *		lo			=	pc+la
      *		kan			=	pc+in(kan)
      *		mi			=	pc+mao
      *		ogham			=	pc+ie(ogam)
      *		ori			=	pc+ie(ori)
      *		sapmi			=	pc+no(smi)
      *		sr			=	pc+srp
      *		syr			=	pc+sy(syc)
      *		tel			=	pc+in(tel)
      *		tml			=	pc+in(tam)
      *		yu			=	pc+srp
      *		fr-latin9			=	pc+fr(latin9)
      *		us_intl			=	pc+us(alt-intl)
      *		ben(basic)			=	pc+in(ben)
      *		ben(probhat)			=	pc+in(ben_probhat)
      *		dev(basic)			=	pc+in(deva)
      *		dvorak($dvoraklayouts)			=	pc+%v(dvorak)
      *		dvorak(basic)			=	pc+us(dvorak)
      *		dvorak(pl_basic)			=	pc+pl(dvorak)
      *		dvorak(pl)			=	pc+pl(dvorak_quotes)
      *		dvorak(pl_altquotes)			=	pc+pl(dvorak_altquotes)
      *		dzdwi(basic)			=	pc+bt(basic)
      *		fi(basic)			=	pc+fi(classic)
      *		ge(azerty_tskapo)			=	pc+fr(geo)
      *		guj(basic)			=	pc+in(guj)
      *		gur(basic)			=	pc+in(guru)
      *		ie(laptop)			=	pc+ie(basic)
      *		ie(CloGaelachLaptop)			=	pc+ie(CloGaelach)
      *		in(urd)			=	pc+in(urd-phonetic)
      *		iu(basic)			=	pc+ca(ike)
      *		lo(basic)			=	pc+la(basic)
      *		kan(basic)			=	pc+in(kan)
      *		mal(basic)			=	pc+in(mal)
      *		mal(mlplusnum)			=	pc+in(mal)
      *		ogham(basic)			=	pc+ie(ogam)
      *		ogham(laptop)			=	pc+ie(ogam)
      *		ogham(is434)			=	pc+ie(ogam_is434)
      *		ogham(is434laptop)			=	pc+ie(ogam_is434)
      *		ori(basic)			=	pc+in(ori)
      *		ro(de)			=	pc+ro(winkeys)
      *		ro(us)			=	pc+ro(std)
      *		ro(academic)			=	pc+ro(std)
      *		ro(std_comma)			=	pc+ro(std)
      *		ro(comma)			=	pc+ro(basic)
      *		ru(os)			=	pc+ru(os_legacy)
      *		pk(urd)			=	pc+pk(urd-phonetic)
      *		sapmi(basic)			=	pc+no(smi)
      *		sapmi(nodeadkeys)			=	pc+no(smi_nodeadkeys)
      *		sapmi(sefi)			=	pc+fi(smi)
      *		sin(phonetic-static)			=	pc+in(sin_phonetic)
      *		syr(basic)			=	pc+sy(syc)
      *		syr(phonetic)			=	pc+sy(syc_phonetic)
      *		tam(INSCRIPT)			=	pc+in(tam)
      *		tam(UNI)			=	pc+in(tam_unicode)
      *		tam(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)
      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
      jollasbj	*			=	jolla_vndr/sbj(common)+%l%(v)
     $sun		$sun_custom		=	pc+sun_vndr/%l%(v)
      pc98		nec_vndr/jp		=	nec_vndr/jp(pc98)
      macintosh_old	us			=	macintosh_vndr/us(oldmac)
      macintosh_old	en_US			=	macintosh_vndr/us(oldmac)
      macintosh_old	$macvendorlayouts	=	macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v)
      macintosh_old	$nonlatin		=	macintosh_vndr/us(oldmac)+%l%(v):2
      macintosh_old	*			=	macintosh_vndr/us(oldmac)+%l%(v)
      applealu_jis	jp			=	macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2
      applealu_jis	*			=	macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2
     $applealu	$macvendorlayouts	=	macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v)
     $applealu	*			=	macintosh_vndr/apple(alukbd)+%l%(v)
     $macs		en_US			=	pc+macintosh_vndr/us(extended)
     $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l%(v)
      nokiarx44	*			=	nokia_vndr/rx-44(%l)
      nokiarx51	cz(qwerty)		=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty)
      nokiarx51	*			=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v)
      nokiasu8w	*			=	nokia_vndr/su-8w(%l)
      olpc		$olpclayouts		=	olpc+%l%(m)
      olpc		*			=	olpc+%l%(v)
      olpcm		$olpclayouts		=	olpc+%l%(m)
      olpcm		*			=	olpc+%l%(v)
     $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
      *		*			=	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])
      *		el		=	pc+gr%(v[1])
      *		en_US		=	pc+latin%(v[1])
      *		guj		=	pc+in(guj)
      *		gur		=	pc+in(guru)
      *		iu		=	pc+ca(ike)
      *		lo		=	pc+la%(v[1])
      *		kan		=	pc+in(kan)
      *		mi		=	pc+mao%(v[1])
      *		ogham		=	pc+ie(ogam)
      *		ori		=	pc+ie(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)
      *		guj(basic)		=	pc+in(guj)
      *		gur(basic)		=	pc+in(guru)
      *		ie(laptop)		=	pc+ie(basic)
      *		ie(CloGaelachLaptop)		=	pc+ie(CloGaelach)
      *		in(urd)		=	pc+in(urd-phonetic)
      *		iu(basic)		=	pc+ca(ike)
      *		lo(basic)		=	pc+la(basic)
      *		kan(basic)		=	pc+in(kan)
      *		mal(basic)		=	pc+in(mal)
      *		mal(mlplusnum)		=	pc+in(mal)
      *		ogham(basic)		=	pc+ie(ogam)
      *		ogham(laptop)		=	pc+ie(ogam)
      *		ogham(is434)		=	pc+ie(ogam_is434)
      *		ogham(is434laptop)		=	pc+ie(ogam_is434)
      *		ori(basic)		=	pc+in(ori)
      *		ro(de)		=	pc+ro(winkeys)
      *		ro(us)		=	pc+ro(std)
      *		ro(academic)		=	pc+ro(std)
      *		ro(std_comma)		=	pc+ro(std)
      *		ro(comma)		=	pc+ro(basic)
      *		ru(os)		=	pc+ru(os_legacy)
      *		pk(urd)		=	pc+pk(urd-phonetic)
      *		sapmi(basic)		=	pc+no(smi)
      *		sapmi(nodeadkeys)		=	pc+no(smi_nodeadkeys)
      *		sapmi(sefi)		=	pc+fi(smi)
      *		sin(phonetic-static)		=	pc+in(sin_phonetic)
      *		syr(basic)		=	pc+sy(syc)
      *		syr(phonetic)		=	pc+sy(syc_phonetic)
      *		tam(INSCRIPT)		=	pc+in(tam)
      *		tam(UNI)		=	pc+in(tam_unicode)
      *		tam(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)
      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])
      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])
      applealu_jis	us			=	macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)
     $applealu	$macvendorlayouts	=	macintosh_vndr/apple(alukbd)+macintosh_vndr/%l[1]%(v[1])
     $applealu	*			=	macintosh_vndr/apple(alukbd)+%l[1]%(v[1])
     $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l[1]%(v[1])
      nokiarx51	cz(qwerty)		=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty)
      nokiarx51	*			=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l[1]%_v[1])
     $thinkpads	br			=	pc+%l[1](thinkpad)
      *		*			=	pc+%l[1]%(v[1])
    
    ! model		layout[1]	variant[1]	=	symbols
      *		ben		basic	=	pc+in(ben)
      *		ben		probhat	=	pc+in(ben_probhat)
      *		dev		basic	=	pc+in(deva)
      *		dvorak		$dvoraklayouts	=	pc+%v(dvorak)
      *		dvorak		basic	=	pc+us(dvorak)
      *		dvorak		pl_basic	=	pc+pl(dvorak)
      *		dvorak		pl	=	pc+pl(dvorak_quotes)
      *		dvorak		pl_altquotes	=	pc+pl(dvorak_altquotes)
      *		dzdwi		basic	=	pc+bt(basic)
      *		fi		basic	=	pc+fi(classic)
      *		ge		azerty_tskapo	=	pc+fr(geo)
      *		guj		basic	=	pc+in(guj)
      *		gur		basic	=	pc+in(guru)
      *		ie		laptop	=	pc+ie(basic)
      *		ie		CloGaelachLaptop	=	pc+ie(CloGaelach)
      *		in		urd	=	pc+in(urd-phonetic)
      *		iu		basic	=	pc+ca(ike)
      *		lo		basic	=	pc+la(basic)
      *		kan		basic	=	pc+in(kan)
      *		mal		basic	=	pc+in(mal)
      *		mal		mlplusnum	=	pc+in(mal)
      *		ogham		basic	=	pc+ie(ogam)
      *		ogham		laptop	=	pc+ie(ogam)
      *		ogham		is434	=	pc+ie(ogam_is434)
      *		ogham		is434laptop	=	pc+ie(ogam_is434)
      *		ori		basic	=	pc+in(ori)
      *		ro		de	=	pc+ro(winkeys)
      *		ro		us	=	pc+ro(std)
      *		ro		academic	=	pc+ro(std)
      *		ro		std_comma	=	pc+ro(std)
      *		ro		comma	=	pc+ro(basic)
      *		ru		os	=	pc+ru(os_legacy)
      *		pk		urd	=	pc+pk(urd-phonetic)
      *		sapmi		basic	=	pc+no(smi)
      *		sapmi		nodeadkeys	=	pc+no(smi_nodeadkeys)
      *		sapmi		sefi	=	pc+fi(smi)
      *		sin		phonetic-static	=	pc+in(sin_phonetic)
      *		syr		basic	=	pc+sy(syc)
      *		syr		phonetic	=	pc+sy(syc_phonetic)
      *		tam		INSCRIPT	=	pc+in(tam)
      *		tam		UNI	=	pc+in(tam_unicode)
      *		tam		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
      *		el		=	+gr%(v[2]):2
      *		en_US		=	+latin%(v[2]):2
      *		guj		=	+in(guj):2
      *		gur		=	+in(guru):2
      *		iu		=	+ca(ike):2
      *		lo		=	+la%(v[2]):2
      *		kan		=	+in(kan):2
      *		mi		=	+mao%(v[2]):2
      *		ogham		=	+ie(ogam):2
      *		ori		=	+ie(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
      *		guj(basic)		=	+in(guj):2
      *		gur(basic)		=	+in(guru):2
      *		ie(laptop)		=	+ie(basic):2
      *		ie(CloGaelachLaptop)		=	+ie(CloGaelach):2
      *		in(urd)		=	+in(urd-phonetic):2
      *		iu(basic)		=	+ca(ike):2
      *		lo(basic)		=	+la(basic):2
      *		kan(basic)		=	+in(kan):2
      *		mal(basic)		=	+in(mal):2
      *		mal(mlplusnum)		=	+in(mal):2
      *		ogham(basic)		=	+ie(ogam):2
      *		ogham(laptop)		=	+ie(ogam):2
      *		ogham(is434)		=	+ie(ogam_is434):2
      *		ogham(is434laptop)		=	+ie(ogam_is434):2
      *		ori(basic)		=	+in(ori):2
      *		ro(de)		=	+ro(winkeys):2
      *		ro(us)		=	+ro(std):2
      *		ro(academic)		=	+ro(std):2
      *		ro(std_comma)		=	+ro(std):2
      *		ro(comma)		=	+ro(basic):2
      *		ru(os)		=	+ru(os_legacy):2
      *		pk(urd)		=	+pk(urd-phonetic):2
      *		sapmi(basic)		=	+no(smi):2
      *		sapmi(nodeadkeys)		=	+no(smi_nodeadkeys):2
      *		sapmi(sefi)		=	+fi(smi):2
      *		sin(phonetic-static)		=	+in(sin_phonetic):2
      *		syr(basic)		=	+sy(syc):2
      *		syr(phonetic)		=	+sy(syc_phonetic):2
      *		tam(INSCRIPT)		=	+in(tam):2
      *		tam(UNI)		=	+in(tam_unicode):2
      *		tam(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
      *		*		=	+%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
      *		el		=	+gr%(v[3]):3
      *		en_US		=	+latin%(v[3]):3
      *		guj		=	+in(guj):3
      *		gur		=	+in(guru):3
      *		iu		=	+ca(ike):3
      *		lo		=	+la%(v[3]):3
      *		kan		=	+in(kan):3
      *		mi		=	+mao%(v[3]):3
      *		ogham		=	+ie(ogam):3
      *		ori		=	+ie(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
      *		guj(basic)		=	+in(guj):3
      *		gur(basic)		=	+in(guru):3
      *		ie(laptop)		=	+ie(basic):3
      *		ie(CloGaelachLaptop)		=	+ie(CloGaelach):3
      *		in(urd)		=	+in(urd-phonetic):3
      *		iu(basic)		=	+ca(ike):3
      *		lo(basic)		=	+la(basic):3
      *		kan(basic)		=	+in(kan):3
      *		mal(basic)		=	+in(mal):3
      *		mal(mlplusnum)		=	+in(mal):3
      *		ogham(basic)		=	+ie(ogam):3
      *		ogham(laptop)		=	+ie(ogam):3
      *		ogham(is434)		=	+ie(ogam_is434):3
      *		ogham(is434laptop)		=	+ie(ogam_is434):3
      *		ori(basic)		=	+in(ori):3
      *		ro(de)		=	+ro(winkeys):3
      *		ro(us)		=	+ro(std):3
      *		ro(academic)		=	+ro(std):3
      *		ro(std_comma)		=	+ro(std):3
      *		ro(comma)		=	+ro(basic):3
      *		ru(os)		=	+ru(os_legacy):3
      *		pk(urd)		=	+pk(urd-phonetic):3
      *		sapmi(basic)		=	+no(smi):3
      *		sapmi(nodeadkeys)		=	+no(smi_nodeadkeys):3
      *		sapmi(sefi)		=	+fi(smi):3
      *		sin(phonetic-static)		=	+in(sin_phonetic):3
      *		syr(basic)		=	+sy(syc):3
      *		syr(phonetic)		=	+sy(syc_phonetic):3
      *		tam(INSCRIPT)		=	+in(tam):3
      *		tam(UNI)		=	+in(tam_unicode):3
      *		tam(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
      *		*		=	+%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
      *		el		=	+gr%(v[4]):4
      *		en_US		=	+latin%(v[4]):4
      *		guj		=	+in(guj):4
      *		gur		=	+in(guru):4
      *		iu		=	+ca(ike):4
      *		lo		=	+la%(v[4]):4
      *		kan		=	+in(kan):4
      *		mi		=	+mao%(v[4]):4
      *		ogham		=	+ie(ogam):4
      *		ori		=	+ie(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
      *		guj(basic)		=	+in(guj):4
      *		gur(basic)		=	+in(guru):4
      *		ie(laptop)		=	+ie(basic):4
      *		ie(CloGaelachLaptop)		=	+ie(CloGaelach):4
      *		in(urd)		=	+in(urd-phonetic):4
      *		iu(basic)		=	+ca(ike):4
      *		lo(basic)		=	+la(basic):4
      *		kan(basic)		=	+in(kan):4
      *		mal(basic)		=	+in(mal):4
      *		mal(mlplusnum)		=	+in(mal):4
      *		ogham(basic)		=	+ie(ogam):4
      *		ogham(laptop)		=	+ie(ogam):4
      *		ogham(is434)		=	+ie(ogam_is434):4
      *		ogham(is434laptop)		=	+ie(ogam_is434):4
      *		ori(basic)		=	+in(ori):4
      *		ro(de)		=	+ro(winkeys):4
      *		ro(us)		=	+ro(std):4
      *		ro(academic)		=	+ro(std):4
      *		ro(std_comma)		=	+ro(std):4
      *		ro(comma)		=	+ro(basic):4
      *		ru(os)		=	+ru(os_legacy):4
      *		pk(urd)		=	+pk(urd-phonetic):4
      *		sapmi(basic)		=	+no(smi):4
      *		sapmi(nodeadkeys)		=	+no(smi_nodeadkeys):4
      *		sapmi(sefi)		=	+fi(smi):4
      *		sin(phonetic-static)		=	+in(sin_phonetic):4
      *		syr(basic)		=	+sy(syc):4
      *		syr(phonetic)		=	+sy(syc_phonetic):4
      *		tam(INSCRIPT)		=	+in(tam):4
      *		tam(UNI)		=	+in(tam_unicode):4
      *		tam(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
      *		*		=	+%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
      *		guj		basic	=	+in(guj):2
      *		gur		basic	=	+in(guru):2
      *		ie		laptop	=	+ie(basic):2
      *		ie		CloGaelachLaptop	=	+ie(CloGaelach):2
      *		in		urd	=	+in(urd-phonetic):2
      *		iu		basic	=	+ca(ike):2
      *		lo		basic	=	+la(basic):2
      *		kan		basic	=	+in(kan):2
      *		mal		basic	=	+in(mal):2
      *		mal		mlplusnum	=	+in(mal):2
      *		ogham		basic	=	+ie(ogam):2
      *		ogham		laptop	=	+ie(ogam):2
      *		ogham		is434	=	+ie(ogam_is434):2
      *		ogham		is434laptop	=	+ie(ogam_is434):2
      *		ori		basic	=	+in(ori):2
      *		ro		de	=	+ro(winkeys):2
      *		ro		us	=	+ro(std):2
      *		ro		academic	=	+ro(std):2
      *		ro		std_comma	=	+ro(std):2
      *		ro		comma	=	+ro(basic):2
      *		ru		os	=	+ru(os_legacy):2
      *		pk		urd	=	+pk(urd-phonetic):2
      *		sapmi		basic	=	+no(smi):2
      *		sapmi		nodeadkeys	=	+no(smi_nodeadkeys):2
      *		sapmi		sefi	=	+fi(smi):2
      *		sin		phonetic-static	=	+in(sin_phonetic):2
      *		syr		basic	=	+sy(syc):2
      *		syr		phonetic	=	+sy(syc_phonetic):2
      *		tam		INSCRIPT	=	+in(tam):2
      *		tam		UNI	=	+in(tam_unicode):2
      *		tam		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
      *		guj		basic	=	+in(guj):3
      *		gur		basic	=	+in(guru):3
      *		ie		laptop	=	+ie(basic):3
      *		ie		CloGaelachLaptop	=	+ie(CloGaelach):3
      *		in		urd	=	+in(urd-phonetic):3
      *		iu		basic	=	+ca(ike):3
      *		lo		basic	=	+la(basic):3
      *		kan		basic	=	+in(kan):3
      *		mal		basic	=	+in(mal):3
      *		mal		mlplusnum	=	+in(mal):3
      *		ogham		basic	=	+ie(ogam):3
      *		ogham		laptop	=	+ie(ogam):3
      *		ogham		is434	=	+ie(ogam_is434):3
      *		ogham		is434laptop	=	+ie(ogam_is434):3
      *		ori		basic	=	+in(ori):3
      *		ro		de	=	+ro(winkeys):3
      *		ro		us	=	+ro(std):3
      *		ro		academic	=	+ro(std):3
      *		ro		std_comma	=	+ro(std):3
      *		ro		comma	=	+ro(basic):3
      *		ru		os	=	+ru(os_legacy):3
      *		pk		urd	=	+pk(urd-phonetic):3
      *		sapmi		basic	=	+no(smi):3
      *		sapmi		nodeadkeys	=	+no(smi_nodeadkeys):3
      *		sapmi		sefi	=	+fi(smi):3
      *		sin		phonetic-static	=	+in(sin_phonetic):3
      *		syr		basic	=	+sy(syc):3
      *		syr		phonetic	=	+sy(syc_phonetic):3
      *		tam		INSCRIPT	=	+in(tam):3
      *		tam		UNI	=	+in(tam_unicode):3
      *		tam		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
      *		guj		basic	=	+in(guj):4
      *		gur		basic	=	+in(guru):4
      *		ie		laptop	=	+ie(basic):4
      *		ie		CloGaelachLaptop	=	+ie(CloGaelach):4
      *		in		urd	=	+in(urd-phonetic):4
      *		iu		basic	=	+ca(ike):4
      *		lo		basic	=	+la(basic):4
      *		kan		basic	=	+in(kan):4
      *		mal		basic	=	+in(mal):4
      *		mal		mlplusnum	=	+in(mal):4
      *		ogham		basic	=	+ie(ogam):4
      *		ogham		laptop	=	+ie(ogam):4
      *		ogham		is434	=	+ie(ogam_is434):4
      *		ogham		is434laptop	=	+ie(ogam_is434):4
      *		ori		basic	=	+in(ori):4
      *		ro		de	=	+ro(winkeys):4
      *		ro		us	=	+ro(std):4
      *		ro		academic	=	+ro(std):4
      *		ro		std_comma	=	+ro(std):4
      *		ro		comma	=	+ro(basic):4
      *		ru		os	=	+ru(os_legacy):4
      *		pk		urd	=	+pk(urd-phonetic):4
      *		sapmi		basic	=	+no(smi):4
      *		sapmi		nodeadkeys	=	+no(smi_nodeadkeys):4
      *		sapmi		sefi	=	+fi(smi):4
      *		sin		phonetic-static	=	+in(sin_phonetic):4
      *		syr		basic	=	+sy(syc):4
      *		syr		phonetic	=	+sy(syc_phonetic):4
      *		tam		INSCRIPT	=	+in(tam):4
      *		tam		UNI	=	+in(tam_unicode):4
      *		tam		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)
      *             =   +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)
    
    ! 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)
      *		jp		=	complete+japan
      olpc          *               =       olpc
      olpcm         *               =       olpc
      *		*		=	complete
    
    ! model		layout[1]	=	compat
      *		*		=	complete
    
    ! model		=	types
      $macs		=	complete+numpad(mac)
      $applealu	=	complete+numpad(mac)
      $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)
      altwin:menu		=	+altwin(menu)
      altwin:menu_win	=	+altwin(menu_win)
      altwin:meta_alt	=	+altwin(meta_alt)
      altwin:alt_win	=	+altwin(alt_win)
      altwin:ctrl_win	=	+altwin(ctrl_win)
      altwin:ctrl_alt_win	=	+altwin(ctrl_alt_win)
      altwin:meta_win	=	+altwin(meta_win)
      altwin:left_meta_win	=	+altwin(left_meta_win)
      altwin:hyper_win	=	+altwin(hyper_win)
      altwin:alt_super_win	=	+altwin(alt_super_win)
      altwin:swap_lalt_lwin	=	+altwin(swap_lalt_lwin)
      altwin:swap_alt_win	=	+altwin(swap_alt_win)
      altwin:prtsc_rwin	=	+altwin(prtsc_rwin)
      grab:debug		=	+srvr_ctrl(grab_debug)
      grp:switch		=	+group(switch)
      grp:lswitch		=	+group(lswitch)
      grp:win_switch	=	+group(win_switch)
      grp:lwin_switch	=	+group(lwin_switch)
      grp:rwin_switch	=	+group(rwin_switch)
      grp:menu_switch	=	+group(menu_switch)
      grp:toggle		=	+group(toggle)
      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: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:menu_toggle	=	+group(menu_toggle)
      grp:lwin_toggle	=	+group(lwin_toggle)
      grp:rwin_toggle	=	+group(rwin_toggle)
      grp:lshift_toggle	=	+group(lshift_toggle)
      grp:rshift_toggle	=	+group(rshift_toggle)
      grp:rctrl_switch	=	+group(rctrl_switch)
      grp:lctrl_toggle	=	+group(lctrl_toggle)
      grp:rctrl_toggle	=	+group(rctrl_toggle)
      grp:lalt_toggle	=	+group(lalt_toggle)
      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: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_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_bidir	=	+group(alt_shift_toggle_bidir)
      grp:lctrl_lwin_toggle	=	+group(lctrl_lwin_toggle)
      grp:menu_latch_group2	=	+group(menu_latch_group2)
      grp:menu_latch_group2_lock	=	+group(menu_latch_group2_lock)
      grp:menu_latch	=	+group(menu_latch)
      grp:menu_latch_lock	=	+group(menu_latch_lock)
      grp:menu_latch_negative	=	+group(menu_latch_negative)
      grp:menu_latch_negative_lock	=	+group(menu_latch_negative_lock)
      lv3:switch		=	+level3(switch)
      lv3:ralt_switch	=	+level3(ralt_switch)
      lv3:ralt_switch_multikey	=	+level3(ralt_switch_multikey)
      lv3:ralt_alt		=	+level3(ralt_alt)
      lv3:lalt_switch	=	+level3(lalt_switch)
      lv3:alt_switch	=	+level3(alt_switch)
      lv3:menu_switch	=	+level3(menu_switch)
      lv3:win_switch	=	+level3(win_switch)
      lv3:lwin_switch	=	+level3(lwin_switch)
      lv3:rwin_switch	=	+level3(rwin_switch)
      lv3:enter_switch	=	+level3(enter_switch)
      lv3:4_switch_isolated	=	+level3(4_switch_isolated)
      lv3:9_switch_isolated	=	+level3(9_switch_isolated)
      caps:capslock		=	+capslock(capslock)
      caps:numlock		=	+capslock(numlock)
      caps:shiftlock	=	+capslock(shiftlock)
      caps:swapescape	=	+capslock(swapescape)
      caps:escape		=	+capslock(escape)
      caps:escape_shifted_capslock	=	+capslock(escape_shifted_capslock)
      caps:backspace	=	+capslock(backspace)
      caps:super		=	+capslock(super)
      caps:hyper		=	+capslock(hyper)
      caps:menu		=	+capslock(menu)
      caps:none		=	+capslock(none)
      caps:ctrl_modifier	=	+capslock(ctrl_modifier)
      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:ac_ctrl		=	+ctrl(ac_ctrl)
      ctrl:aa_ctrl		=	+ctrl(aa_ctrl)
      ctrl:rctrl_ralt	=	+ctrl(rctrl_ralt)
      ctrl:menu_rctrl	=	+ctrl(menu_rctrl)
      ctrl:ralt_rctrl	=	+ctrl(ralt_rctrl)
      ctrl:swap_lalt_lctl	=	+ctrl(swap_lalt_lctl)
      ctrl:swap_lwin_lctl	=	+ctrl(swap_lwin_lctl)
      ctrl:swap_rwin_rctl	=	+ctrl(swap_rwin_rctl)
      ctrl:swap_lalt_lctl_lwin  =	+ctrl(swap_lalt_lctl_lwin)
      compose:ralt		=	+compose(ralt)
      compose:lwin		=	+compose(lwin)
      compose:lwin-altgr	=	+compose(lwin-altgr)
      compose:rwin		=	+compose(rwin)
      compose:rwin-altgr	=	+compose(rwin-altgr)
      compose:menu		=	+compose(menu)
      compose:menu-altgr	=	+compose(menu-altgr)
      compose:lctrl		=	+compose(lctrl)
      compose:lctrl-altgr	=	+compose(lctrl-altgr)
      compose:rctrl		=	+compose(rctrl)
      compose:rctrl-altgr	=	+compose(rctrl-altgr)
      compose:caps		=	+compose(caps)
      compose:caps-altgr	=	+compose(caps-altgr)
      compose:102		=	+compose(102)
      compose:102-altgr	=	+compose(102-altgr)
      compose:paus		=	+compose(paus)
      compose:prsc		=	+compose(prsc)
      compose:sclk		=	+compose(sclk)
      srvrkeys:none		=	+srvr_ctrl(no_srvr_keys)
      eurosign:e		=	+eurosign(e)
      eurosign:2		=	+eurosign(2)
      eurosign:4		=	+eurosign(4)
      eurosign:5		=	+eurosign(5)
      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)
      nbsp:none             =	+nbsp(none)
      nbsp:level2           =	+nbsp(level2)
      nbsp:level3           =	+nbsp(level3)
      nbsp:level3s          =	+nbsp(level3s)
      nbsp:level3n          =	+nbsp(level3n)
      nbsp:level4           =	+nbsp(level4)
      nbsp:level4n          =	+nbsp(level4n)
      nbsp:level4nl         =	+nbsp(level4nl)
      nbsp:zwnj2            =	+nbsp(zwnj2)
      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)
      japan:nicola_f_bs     =	+jp(nicola_f_bs)
      japan:hztg_escape     =	+jp(hztg_escape)
      korean:ralt_hangul	=	+kr(ralt_hangul)
      korean:rctrl_hangul	=	+kr(rctrl_hangul)
      korean:ralt_hanja	=	+kr(ralt_hanja)
      korean:rctrl_hanja	=	+kr(rctrl_hanja)
      kpdl:dot              =	+kpdl(dot)
      kpdl:comma            =	+kpdl(comma)
      kpdl:dotoss           =	+kpdl(dotoss)
      kpdl:dotoss_latin9    =	+kpdl(dotoss_latin9)
      kpdl:commaoss         =	+kpdl(commaoss)
      kpdl:momayyezoss      =	+kpdl(momayyezoss)
      kpdl:kposs            =	+kpdl(kposs)
      kpdl:semi             =	+kpdl(semi)
      shift:breaks_caps     =	+shift(breaks_caps)
      esperanto:qwerty      =	+epo(qwerty)
      esperanto:dvorak      =	+epo(dvorak)
      esperanto:colemak     =	+epo(colemak)
      terminate:ctrl_alt_bksp =	+terminate(ctrl_alt_bksp)
      keypad:pointerkeys	=	+keypad(pointerkeys)
      apple:alupckeys	=	+macintosh_vndr/apple(alupckeys)
      shift:both_capslock                =       +shift(both_capslock)
      shift:lshift_both_capslock         =       +shift(lshift_both_capslock)
      shift:rshift_both_capslock         =       +shift(rshift_both_capslock)
      shift:both_capslock_cancel         =       +shift(both_capslock_cancel)
      shift:lshift_both_capslock_cancel  =       +shift(lshift_both_capslock_cancel)
      shift:rshift_both_capslock_cancel  =       +shift(rshift_both_capslock_cancel)
      shift:both_shiftlock               =       +shift(both_shiftlock)
      shift:lshift_both_shiftlock        =       +shift(lshift_both_shiftlock)
      shift:rshift_both_shiftlock        =       +shift(rshift_both_shiftlock)
      solaris:sun_compat				 =		 +sun_vndr/solaris(sun_compat)
      lv3:caps_switch                    =       +level3(caps_switch)
      lv3:bksl_switch                    =       +level3(bksl_switch)
      lv3:lsgt_switch                    =       +level3(lsgt_switch)
      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:lsgt_switch                 =       +level5(lsgt_switch)
      lv5:ralt_switch                 =       +level5(ralt_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)
      lv5:rwin_switch_lock            =       +level5(rwin_switch_lock)
      lv5:lsgt_switch_lock_cancel     =       +level5(lsgt_switch_lock_cancel)
      lv5:ralt_switch_lock_cancel     =       +level5(ralt_switch_lock_cancel)
      lv5:lwin_switch_lock_cancel     =       +level5(lwin_switch_lock_cancel)
      lv5:rwin_switch_lock_cancel     =       +level5(rwin_switch_lock_cancel)
      parens:swap_brackets   =   +parens(swap_brackets)
      overlapping_modifiers:super_hyper =     +overlapping_modifiers(super_hyper)
      overlapping_modifiers:meta        =     +overlapping_modifiers(meta)
    
    
    ! 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)
    
    
    ! option	=	types
      caps:internal			=	+caps(internal)
      caps:internal_nocancel	=	+caps(internal_nocancel)
      caps:shift			=	+caps(shift)
      caps:shift_nocancel		=	+caps(shift_nocancel)
      numpad:pc			=	+numpad(pc)
      numpad:mac			=	+numpad(mac)
      numpad:microsoft		=	+numpad(microsoft)
      numpad:shift3       		=	+numpad(shift3)