diff options
Diffstat (limited to 'linux')
| -rw-r--r-- | linux/X/rules/base | 1004 | ||||
| -rw-r--r-- | linux/X/symbols/de | 503 | ||||
| -rw-r--r-- | linux/X/symbols/level3 | 151 | ||||
| -rw-r--r-- | linux/X/symbols/level5 | 115 | ||||
| -rw-r--r-- | linux/X/symbols/shift | 92 | ||||
| -rw-r--r-- | linux/X/types/level5 | 213 | 
6 files changed, 2078 insertions, 0 deletions
| diff --git a/linux/X/rules/base b/linux/X/rules/base new file mode 100644 index 0000000..65e0d1f --- /dev/null +++ b/linux/X/rules/base @@ -0,0 +1,1004 @@ +// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part +// $Xorg: xfree86,v 1.3 2000/08/17 19:54:42 cpqbld Exp $ + +// +//  Rules for resolving XKB components for use with XFree86 +//  Copyright 1996 by Joseph Moss +// +//  2002 Modifier: Ivan Pascal      The XFree86 Project +//  $XFree86: xc/programs/xkbcomp/rules/xfree86,v 3.79 2004/01/09 00:16:01 dawes Exp $ +// + +// If you want non-latin layouts implicitly include the en_US layout +// uncomment lines below +//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \ +//              in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \ +//              ru scc sy syr tel th tj tam ua uz + +// PC models +! $pcmodels = pc101 pc102 pc104 pc105 + +// Microsoft models (using MS geometry) +! $msmodels = microsoft microsoft7000 microsoftpro microsoftprousb microsoftprose + +// PC geometries - they have special geometry but symbols are mostly pc105 +! $pcgeometries = abnt2 latitude jp106 kr106 + +// Layouts that provide further specializations for the OLPC +! $olpclayouts = af am ara br ca es et it kh kz in mn np ru th tr us  + +! $macbooks = macbook78 macbook79 +! $maclaptop = ibook powerbook macbook78 macbook79 +! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79 + +! $macvendorlayouts = ch de dk es fi fr gb is it latam nl no pt se us + +! $azerty = be fr +! $qwertz = al cz de hr hu ro si sk  + +! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \ +              airkey \ +              apple armada azonaRF2300 \ +              benqx brother \ +              btc5113rf btc9000 btc9000a btc9001ah btc5090 btc9019u \ +              cherryblue cherrybluea cherryblueb \ +              cherrycyboard cherrycmexpert \ +              chicony chicony0108 chicony0420 chicony9885 \ +              compalfl90 \ +              compaqeak8 compaqik7 compaqik13 compaqik18 \ +              cymotionlinux \ +              dell dellm65 inspiron 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 \ +              microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \ +              microsoftoffice microsoftmult \ +              mx1998 mx2500 mx2750 \ +              oretec \ +              pc105 \ +              presario propeller \ +              qtronix \ +              rapidaccess rapidaccess2 thinkpad60 \ +              samsung4500 samsung4510 \ +              silvercrest \ +              sk1300 sk2500 sk6200 sk7100 \ +              sven sven303 symplon \ +              toshiba_s3000 trust trustda \ +              unitekkb1925 yahoo + +// all layouts with 3rd and 4th groups +! $threelevellayouts = al az \ +              be br bt \ +              ca ch cs cz \ +              de dk \ +              ee es \ +              fi fo fr \ +              gb gr \ +              hu \ +              ie ir is it \ +              kg \ +              latam \ +              lk lt \ +              mn mt \ +              nl no \ +              pl pt \ +              ro \ +              se sk \ +              tr \ +              us \ +              vn \ +              za + +! $evdevkbds = ibm_spacesaver + +! $dvoraklayouts = br ca de ee es fr gb no pl se us + +! model		=	keycodes +  amiga		=	amiga(de) +  ataritt	=	ataritt(de) +  sun4		=	sun(type4_euro) +  sun5		=	sun(type5_euro) +  sun6		=	sun(type6_usb) +  pc98		=	xfree98(pc98) +  abnt2		=	xfree86(abnt2) +  jp106		=	xfree86(jp106) +  evdev		=	evdev +  olpc		=	evdev +  macintosh_hhk	=	macintosh(hhk) +  macintosh_old	=	macintosh(old) + $macs   	=	macintosh +  thinkpadz60	=	xfree86(thinkpadz60) +  *		=	xfree86 + +! layout[1]	=	keycodes +  $azerty       =       +aliases(azerty) +  $qwertz       =       +aliases(qwertz) +  *             =       +aliases(qwerty) + +! layout	=	keycodes +  $azerty       =       +aliases(azerty) +  $qwertz       =       +aliases(qwertz) +  *             =       +aliases(qwerty) + +! option	=	keycodes + +! model		layout	=	geometry +  thinkpad     us              =       thinkpad(us) + +! model		=	geometry +  microsoftelite	=	microsoft(elite) + $msmodels	=	microsoft(natural) +  dell101	=	dell(dell101) +  dellm65	=	dell(dellm65) +  flexpro	=	keytronic(FlexPro) +  hp6000	=	hp(omnibook) +  omnikey101	=	northgate(omnikey101) + $pcmodels	=	pc(%m) + $pcgeometries	=	pc(%m) +  everex	=	everex(STEPnote) +  thinkpad	=	thinkpad(intl) +  thinkpad60	=	thinkpad(60) +  thinkpadz60	=	thinkpad(60) +  winbook	=	winbook(XP5) +  pc98		=	nec(pc98) + $macbooks      =       macintosh(%m) + $macs		=	macintosh(macintosh) +  hhk		=	hhk(basic) +  kinesis	=	kinesis(model100) +  *		=       pc(pc104) + +! model		layout		variant		=	symbols +  *		ben		basic		=	pc+in(ben) +  *		ben		probhat		=	pc+in(ben_probhat) +  *		dev		basic		=	pc+in(deva) +  *		dvorak		$dvoraklayouts		=	pc+%v(dvorak) +  *		dvorak		basic		=	pc+us(dvorak) +  *		dvorak		pl_basic		=	pc+pl(dvorak) +  *		dvorak		pl		=	pc+pl(dvorak_quotes) +  *		dvorak		pl_altquotes		=	pc+pl(dvorak_altquotes) +  *		dzdwi		basic		=	pc+bt(basic) +  *		fi		basic		=	pc+fi(classic) +  *		ge		azerty_tskapo		=	pc+fr(geo) +  *		guj		basic		=	pc+in(guj) +  *		gur		basic		=	pc+in(guru) +  *		ie		laptop		=	pc+ie(basic) +  *		ie		CloGaelachLaptop		=	pc+ie(CloGaelach) +  *		il		si1452		=	pc+ie(basic) +  *		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		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) +  $pcmodels	de		neo		=	pc(%m)+de(neo_base)+shift(both_capslock)+level3(caps_switch)+level3(bksl_switch)+level5(lsgt_switch_numlock)+level5(ralt_switch_numlock) +  *		de		neo		=	pc(pc105)+de(neo_base)+shift(both_capslock)+level3(caps_switch)+level3(bksl_switch)+level5(lsgt_switch_numlock)+level5(ralt_switch_numlock) + +! model		layout				=	symbols +  *		ar			=	pc+ara +  *		ben			=	pc+in(ben) +  *		bs			=	pc+ba +  *		cs			=	pc+rs +  *		cz_qwerty			=	pc+cz(qwerty) +  *		dev			=	pc+in(deva) +  *		dvorak			=	pc+us(dvorak) +  *		dzdwi			=	pc+bt +  *		el			=	pc+gr +  *		en_US			=	pc+latin +  *		guj			=	pc+in(guj) +  *		gur			=	pc+in(guru) +  *		iu			=	pc+ca(ike) +  *		lo			=	pc+la +  *		kan			=	pc+in(kan) +  *		mi			=	pc+mao +  *		ml			=	pc+in(mal) +  *		ogham			=	pc+ie(ogam) +  *		ori			=	pc+ie(ori) +  *		sapmi			=	pc+no(smi) +  *		sr			=	pc+srp +  *		syr			=	pc+sy(syc) +  *		tel			=	pc+in(tel) +  *		tml			=	pc+in(tam) +  *		yu			=	pc+srp +  *		fr-latin9			=	pc+fr(latin9) +  *		us_intl			=	pc+us(alt-intl) +  *		ben(basic)			=	pc+in(ben) +  *		ben(probhat)			=	pc+in(ben_probhat) +  *		dev(basic)			=	pc+in(deva) +  *		dvorak($dvoraklayouts)			=	pc+%v(dvorak) +  *		dvorak(basic)			=	pc+us(dvorak) +  *		dvorak(pl_basic)			=	pc+pl(dvorak) +  *		dvorak(pl)			=	pc+pl(dvorak_quotes) +  *		dvorak(pl_altquotes)			=	pc+pl(dvorak_altquotes) +  *		dzdwi(basic)			=	pc+bt(basic) +  *		fi(basic)			=	pc+fi(classic) +  *		ge(azerty_tskapo)			=	pc+fr(geo) +  *		guj(basic)			=	pc+in(guj) +  *		gur(basic)			=	pc+in(guru) +  *		ie(laptop)			=	pc+ie(basic) +  *		ie(CloGaelachLaptop)			=	pc+ie(CloGaelach) +  *		il(si1452)			=	pc+ie(basic) +  *		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(TAB)			=	pc+in(tam_TAB) +  *		tam(TSCII)			=	pc+in(tam_TSCII) +  *		tel(basic)			=	pc+in(tel) +  *		yu(basic)			=	pc+srp(latin) +  *		yu(unicode)			=	pc+srp(latinunicode) +  *		yu(yz)			=	pc+srp(latinyz) +  *		yu(unicodeyz)			=	pc+srp(latinunicodeyz) +  ataritt	$nonlatin		=	xfree68_vndr/ataritt(us)+%l%(v):2 +  ataritt	*			=	xfree68_vndr/ataritt(us)+%l%(v) +  amiga		$nonlatin		=	xfree68_vndr/amiga(usa1)+%l%(v):2 +  amiga		*			=	xfree68_vndr/amiga(usa1)+%l%(v) +  classmate	us			=	pc+%l(classmate) +  sun4		$nonlatin		=	latin+sun_vndr/us(sun4)+%l%(v):2 +  sun4		*			=	latin+sun_vndr/us(sun4)+%l%(v) +  sun5		$nonlatin		=	latin+sun_vndr/us(sun5)+%l%(v):2 +  sun5		*			=	latin+sun_vndr/us(sun5)+%l%(v) +  sun6		us			=	sun_vndr/us(type6) +  sun6		en_US			=	sun_vndr/us(type6)+iso9995-3(basic) +  sun6		*			=	sun_vndr/us(type6)+%l%(v) +  pc98		nec_vndr/jp		=	nec_vndr/jp(pc98) +  macintosh_old	us			=	macintosh_vndr/us(oldmac) +  macintosh_old	en_US			=	macintosh_vndr/us(oldmac) +  macintosh_old	$macvendorlayouts	=	macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v) +  macintosh_old	$nonlatin		=	macintosh_vndr/us(oldmac)+%l%(v):2 +  macintosh_old	*			=	macintosh_vndr/us(oldmac)+%l%(v) + $macs		en_US			=	pc+macintosh_vndr/us(extended) + $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l%(v) +  olpc		$olpclayouts		=	olpc+%l%(m) +  olpc		*			=	olpc+%l%(v) +  thinkpad   	br			=	pc+br(thinkpad) +  *	   	$nonlatin		=	pc+us+%l%(v):2 +  *		*			=	pc+%l%(v) + +! model		layout[1]			=	symbols +  *		ar			=	pc+ara%(v[1]) +  *		bs			=	pc+ba%(v[1]) +  *		cs			=	pc+rs%(v[1]) +  *		dzdwi			=	pc+bt%(v[1]) +  *		el			=	pc+gr%(v[1]) +  *		en_US			=	pc+latin%(v[1]) +  *		lo			=	pc+la%(v[1]) +  *		mi			=	pc+mao%(v[1]) +  *		sr			=	pc+srp%(v[1]) +  *		yu			=	pc+srp%(v[1]) +  *		ben(basic)			=	pc+in(ben) +  *		ben(probhat)			=	pc+in(ben_probhat) +  *		dev(basic)			=	pc+in(deva) +  *		dvorak($dvoraklayouts)			=	pc+%v(dvorak) +  *		dvorak(basic)			=	pc+us(dvorak) +  *		dvorak(pl_basic)			=	pc+pl(dvorak) +  *		dvorak(pl)			=	pc+pl(dvorak_quotes) +  *		dvorak(pl_altquotes)			=	pc+pl(dvorak_altquotes) +  *		dzdwi(basic)			=	pc+bt(basic) +  *		fi(basic)			=	pc+fi(classic) +  *		ge(azerty_tskapo)			=	pc+fr(geo) +  *		guj(basic)			=	pc+in(guj) +  *		gur(basic)			=	pc+in(guru) +  *		ie(laptop)			=	pc+ie(basic) +  *		ie(CloGaelachLaptop)			=	pc+ie(CloGaelach) +  *		il(si1452)			=	pc+ie(basic) +  *		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(TAB)			=	pc+in(tam_TAB) +  *		tam(TSCII)			=	pc+in(tam_TSCII) +  *		tel(basic)			=	pc+in(tel) +  *		yu(basic)			=	pc+srp(latin) +  *		yu(unicode)			=	pc+srp(latinunicode) +  *		yu(yz)			=	pc+srp(latinyz) +  *		yu(unicodeyz)			=	pc+srp(latinunicodeyz) +  ataritt	*			=	xfree68_vndr/ataritt(us)+%l[1]%(v[1]) +  amiga		*			=	xfree68_vndr/amiga(usa1)+%l[1]%(v[1]) +  sun4		*			=	latin+sun_vndr/us(sun4)+%l[1]%(v[1]) +  sun5		*			=	latin+sun_vndr/us(sun5)+%l[1]%(v[1]) +  macintosh_old	us			=	macintosh_vndr/us(oldmac) +  macintosh_old	$macvendorlayouts	=	macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1]) +  macintosh_old	*			=	macintosh_vndr/us(oldmac)+%l[1]%(v[1]) + $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l[1]%(v[1]) +  thinkpad	br			=	pc+%l[1](thinkpad) +  *		*			=	pc+%l[1]%(v[1]) + +! model		layout[1]	variant[1]	=	symbols +  *		ben		basic		=	pc+in(ben) +  *		ben		probhat		=	pc+in(ben_probhat) +  *		dev		basic		=	pc+in(deva) +  *		dvorak		$dvoraklayouts		=	pc+%v(dvorak) +  *		dvorak		basic		=	pc+us(dvorak) +  *		dvorak		pl_basic		=	pc+pl(dvorak) +  *		dvorak		pl		=	pc+pl(dvorak_quotes) +  *		dvorak		pl_altquotes		=	pc+pl(dvorak_altquotes) +  *		dzdwi		basic		=	pc+bt(basic) +  *		fi		basic		=	pc+fi(classic) +  *		ge		azerty_tskapo		=	pc+fr(geo) +  *		guj		basic		=	pc+in(guj) +  *		gur		basic		=	pc+in(guru) +  *		ie		laptop		=	pc+ie(basic) +  *		ie		CloGaelachLaptop		=	pc+ie(CloGaelach) +  *		il		si1452		=	pc+ie(basic) +  *		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		TAB		=	pc+in(tam_TAB) +  *		tam		TSCII		=	pc+in(tam_TSCII) +  *		tel		basic		=	pc+in(tel) +  *		yu		basic		=	pc+srp(latin) +  *		yu		unicode		=	pc+srp(latinunicode) +  *		yu		yz		=	pc+srp(latinyz) +  *		yu		unicodeyz		=	pc+srp(latinunicodeyz) + +! layout[2]	=	symbols +  ar		=	+ara%(v[2]):2 +  bs		=	+ba%(v[2]):2 +  cs		=	+rs%(v[2]):2 +  dzdwi		=	+bt%(v[2]):2 +  el		=	+gr%(v[2]):2 +  en_US		=	+latin%(v[2]):2 +  lo		=	+la%(v[2]):2 +  mi		=	+mao%(v[2]):2 +  sr		=	+srp%(v[2]):2 +  yu		=	+srp%(v[2]):2 +  ben(basic)	=	+in(ben):2 +  ben(probhat)	=	+in(ben_probhat):2 +  dev(basic)	=	+in(deva):2 +  dvorak($dvoraklayouts)	=	+%v(dvorak):2 +  dvorak(basic)	=	+us(dvorak):2 +  dvorak(pl_basic)	=	+pl(dvorak):2 +  dvorak(pl)	=	+pl(dvorak_quotes):2 +  dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):2 +  dzdwi(basic)	=	+bt(basic):2 +  fi(basic)	=	+fi(classic):2 +  ge(azerty_tskapo)	=	+fr(geo):2 +  guj(basic)	=	+in(guj):2 +  gur(basic)	=	+in(guru):2 +  ie(laptop)	=	+ie(basic):2 +  ie(CloGaelachLaptop)	=	+ie(CloGaelach):2 +  il(si1452)	=	+ie(basic):2 +  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(TAB)	=	+in(tam_TAB):2 +  tam(TSCII)	=	+in(tam_TSCII):2 +  tel(basic)	=	+in(tel):2 +  yu(basic)	=	+srp(latin):2 +  yu(unicode)	=	+srp(latinunicode):2 +  yu(yz)	=	+srp(latinyz):2 +  yu(unicodeyz)	=	+srp(latinunicodeyz):2 +  *		=	+%l[2]%(v[2]):2 + +! layout[3]	=	symbols +  ar		=	+ara%(v[3]):3 +  bs		=	+ba%(v[3]):3 +  cs		=	+rs%(v[3]):3 +  dzdwi		=	+bt%(v[3]):3 +  el		=	+gr%(v[3]):3 +  en_US		=	+latin%(v[3]):3 +  lo		=	+la%(v[3]):3 +  mi		=	+mao%(v[3]):3 +  sr		=	+srp%(v[3]):3 +  yu		=	+srp%(v[3]):3 +  ben(basic)	=	+in(ben):3 +  ben(probhat)	=	+in(ben_probhat):3 +  dev(basic)	=	+in(deva):3 +  dvorak($dvoraklayouts)	=	+%v(dvorak):3 +  dvorak(basic)	=	+us(dvorak):3 +  dvorak(pl_basic)	=	+pl(dvorak):3 +  dvorak(pl)	=	+pl(dvorak_quotes):3 +  dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):3 +  dzdwi(basic)	=	+bt(basic):3 +  fi(basic)	=	+fi(classic):3 +  ge(azerty_tskapo)	=	+fr(geo):3 +  guj(basic)	=	+in(guj):3 +  gur(basic)	=	+in(guru):3 +  ie(laptop)	=	+ie(basic):3 +  ie(CloGaelachLaptop)	=	+ie(CloGaelach):3 +  il(si1452)	=	+ie(basic):3 +  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(TAB)	=	+in(tam_TAB):3 +  tam(TSCII)	=	+in(tam_TSCII):3 +  tel(basic)	=	+in(tel):3 +  yu(basic)	=	+srp(latin):3 +  yu(unicode)	=	+srp(latinunicode):3 +  yu(yz)	=	+srp(latinyz):3 +  yu(unicodeyz)	=	+srp(latinunicodeyz):3 +  *		=	+%l[3]%(v[3]):3 + +! layout[4]	=	symbols +  ar		=	+ara%(v[4]):4 +  bs		=	+ba%(v[4]):4 +  cs		=	+rs%(v[4]):4 +  dzdwi		=	+bt%(v[4]):4 +  el		=	+gr%(v[4]):4 +  en_US		=	+latin%(v[4]):4 +  lo		=	+la%(v[4]):4 +  mi		=	+mao%(v[4]):4 +  sr		=	+srp%(v[4]):4 +  yu		=	+srp%(v[4]):4 +  ben(basic)	=	+in(ben):4 +  ben(probhat)	=	+in(ben_probhat):4 +  dev(basic)	=	+in(deva):4 +  dvorak($dvoraklayouts)	=	+%v(dvorak):4 +  dvorak(basic)	=	+us(dvorak):4 +  dvorak(pl_basic)	=	+pl(dvorak):4 +  dvorak(pl)	=	+pl(dvorak_quotes):4 +  dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):4 +  dzdwi(basic)	=	+bt(basic):4 +  fi(basic)	=	+fi(classic):4 +  ge(azerty_tskapo)	=	+fr(geo):4 +  guj(basic)	=	+in(guj):4 +  gur(basic)	=	+in(guru):4 +  ie(laptop)	=	+ie(basic):4 +  ie(CloGaelachLaptop)	=	+ie(CloGaelach):4 +  il(si1452)	=	+ie(basic):4 +  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(TAB)	=	+in(tam_TAB):4 +  tam(TSCII)	=	+in(tam_TSCII):4 +  tel(basic)	=	+in(tel):4 +  yu(basic)	=	+srp(latin):4 +  yu(unicode)	=	+srp(latinunicode):4 +  yu(yz)	=	+srp(latinyz):4 +  yu(unicodeyz)	=	+srp(latinunicodeyz):4 +  *		=	+%l[4]%(v[4]):4 + +! layout[2]	variant[2]	=	symbols +  ben		basic	=	+in(ben):2 +  ben		probhat	=	+in(ben_probhat):2 +  dev		basic	=	+in(deva):2 +  dvorak		$dvoraklayouts	=	+%v(dvorak):2 +  dvorak		basic	=	+us(dvorak):2 +  dvorak		pl_basic	=	+pl(dvorak):2 +  dvorak		pl	=	+pl(dvorak_quotes):2 +  dvorak		pl_altquotes	=	+pl(dvorak_altquotes):2 +  dzdwi		basic	=	+bt(basic):2 +  fi		basic	=	+fi(classic):2 +  ge		azerty_tskapo	=	+fr(geo):2 +  guj		basic	=	+in(guj):2 +  gur		basic	=	+in(guru):2 +  ie		laptop	=	+ie(basic):2 +  ie		CloGaelachLaptop	=	+ie(CloGaelach):2 +  il		si1452	=	+ie(basic):2 +  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		TAB	=	+in(tam_TAB):2 +  tam		TSCII	=	+in(tam_TSCII):2 +  tel		basic	=	+in(tel):2 +  yu		basic	=	+srp(latin):2 +  yu		unicode	=	+srp(latinunicode):2 +  yu		yz	=	+srp(latinyz):2 +  yu		unicodeyz	=	+srp(latinunicodeyz):2 + +! layout[3]	variant[3]	=	symbols +  ben		basic	=	+in(ben):3 +  ben		probhat	=	+in(ben_probhat):3 +  dev		basic	=	+in(deva):3 +  dvorak		$dvoraklayouts	=	+%v(dvorak):3 +  dvorak		basic	=	+us(dvorak):3 +  dvorak		pl_basic	=	+pl(dvorak):3 +  dvorak		pl	=	+pl(dvorak_quotes):3 +  dvorak		pl_altquotes	=	+pl(dvorak_altquotes):3 +  dzdwi		basic	=	+bt(basic):3 +  fi		basic	=	+fi(classic):3 +  ge		azerty_tskapo	=	+fr(geo):3 +  guj		basic	=	+in(guj):3 +  gur		basic	=	+in(guru):3 +  ie		laptop	=	+ie(basic):3 +  ie		CloGaelachLaptop	=	+ie(CloGaelach):3 +  il		si1452	=	+ie(basic):3 +  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		TAB	=	+in(tam_TAB):3 +  tam		TSCII	=	+in(tam_TSCII):3 +  tel		basic	=	+in(tel):3 +  yu		basic	=	+srp(latin):3 +  yu		unicode	=	+srp(latinunicode):3 +  yu		yz	=	+srp(latinyz):3 +  yu		unicodeyz	=	+srp(latinunicodeyz):3 + +! layout[4]	variant[4]	=	symbols +  ben		basic	=	+in(ben):4 +  ben		probhat	=	+in(ben_probhat):4 +  dev		basic	=	+in(deva):4 +  dvorak		$dvoraklayouts	=	+%v(dvorak):4 +  dvorak		basic	=	+us(dvorak):4 +  dvorak		pl_basic	=	+pl(dvorak):4 +  dvorak		pl	=	+pl(dvorak_quotes):4 +  dvorak		pl_altquotes	=	+pl(dvorak_altquotes):4 +  dzdwi		basic	=	+bt(basic):4 +  fi		basic	=	+fi(classic):4 +  ge		azerty_tskapo	=	+fr(geo):4 +  guj		basic	=	+in(guj):4 +  gur		basic	=	+in(guru):4 +  ie		laptop	=	+ie(basic):4 +  ie		CloGaelachLaptop	=	+ie(CloGaelach):4 +  il		si1452	=	+ie(basic):4 +  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		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) +  a4techKBS8    =       +inet(media_nav_acpi_common) +  a4_rfkb23     =       +inet(media_nav_acpi_common) +  asus_laptop   =       +inet(media_common) +  acer_tm_800   =       +inet(acer_laptop) +  acpi          =       +inet(acpi_common) +  benqx730      =       +inet(benqx) +  benqx800      =       +inet(benqx) +  btc5126t      =       +inet(nav_acpi_common) +  btc9116u      =       +inet(btc9019u) +  btc6301urf    =       +inet(media_nav_acpi_common) +  dellsk8125    =       +inet(dell) +  dellsk8135    =       +inet(dell) +  dexxa         =       +inet(media_nav_common) +  dtk2000       =       +inet(media_nav_acpi_common) +  fscaa1667g    =       +inet(media_nav_common) +  geniuskb19e   =       +inet(media_nav_acpi_common) +  geniuscomfy   =       +inet(media_nav_acpi_common) +  hpnx9020      =       +inet(hpi6) +  latitude      =       +inet(media_common) +  logicd        =       +inet(logitech_base) +  logicd_it     =       +inet(logitech_base) +  logicd_nav    =       +inet(logitech_base) +  logicd_opt    =       +inet(logitech_base) +  logiultrax    =       +inet(logitech_base) +  logiclx300    =       +inet(logiex110) +  logii350      =       +inet(logiex110) +  logimel       =       +inet(logiex110) +  logicdit      =       +inet(logicd) +  logicdo       =       +inet(logicd) +  logicdp       =       +inet(logicd) +  logicdpa      =       +inet(logicda) +  logiciink     =       +inet(logicink) +  ltcd          =       +inet(logicda) +  microsoftccurve2k =   +inet(microsoftprooem) +  microsoftpro  =       +inet(media_nav_acpi_common) +  precision_m   =       +inet(media_nav_common) +  scorpius      =       +inet(media_nav_acpi_common) +  sp_inet       =       +inet(media_nav_acpi_common) +  targa_v811    =       +inet(media_nav_acpi_common) +  thinkpad      =       +inet(media_nav_common) +  thinkpadz60   =       +inet(thinkpad60) +  vsonku306     =       +inet(microsoftprooem) +  $inetkbds     =       +inet(%m) +  $maclaptop    =       +inet(apple)+level3(enter_switch) +  $macs	        =       +inet(apple) + +! model		layout		=	compat +  pc98		nec_vndr/jp	=	pc98(basic) +  *		jp		=	complete+japan +  olpc         *               =       olpc +  *		*		=	complete + +! model		layout[1]	=	compat +  *		*		=	complete + +! model		=	types +  $macs		=	complete+numpad(mac) +  *		=	complete + +! layout	option	=	symbols +  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle) +  *			misc:typo 	= +typo(base) + +! layout[1]	option	=	symbols +  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1 +  *			misc:typo 	= +typo(base):1 + +! layout[2]	option	=	symbols +  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2 +  *			misc:typo 	= +typo(base):2 + +! layout[3]	option	=	symbols +  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3 +  *			misc:typo 	= +typo(base):3 + +! layout[4]	option	=	symbols +  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4 +  *			misc:typo 	= +typo(base):4 + +! option	=	symbols +  grp:shift_toggle	=	+group(shifts_toggle) +  altwin:menu		=	+altwin(menu) +  altwin:meta_alt	=	+altwin(meta_alt) +  altwin:ctrl_win	=	+altwin(ctrl_win) +  altwin:ctrl_alt_win	=	+altwin(ctrl_alt_win) +  altwin:meta_win	=	+altwin(meta_win) +  altwin:left_meta_win	=	+altwin(left_meta_win) +  altwin:super_win	=	+altwin(super_win) +  altwin:hyper_win	=	+altwin(hyper_win) +  altwin:alt_super_win	=	+altwin(alt_super_win) +  altwin:swap_lalt_lwin	=	+altwin(swap_lalt_lwin) +  grp:switch		=	+group(switch) +  grp:lswitch		=	+group(lswitch) +  grp:win_switch	=	+group(win_switch) +  grp:lwin_switch	=	+group(lwin_switch) +  grp:rwin_switch	=	+group(rwin_switch) +  grp:toggle		=	+group(toggle) +  grp:shifts_toggle	=	+group(shifts_toggle) +  grp:ctrls_toggle	=	+group(ctrls_toggle) +  grp:alts_toggle	=	+group(alts_toggle) +  grp:ctrl_shift_toggle	=	+group(ctrl_shift_toggle) +  grp:lctrl_lshift_toggle	=	+group(lctrl_lshift_toggle) +  grp:caps_toggle	=	+capslock(grouplock) +  grp:caps_switch       =       +capslock(groupshift) +  grp:shift_caps_toggle	=	+group(shift_caps_toggle) +  grp:shift_caps_switch	=	+group(shift_caps_switch) +  grp:win_menu_switch	=	+group(win_menu_switch) +  grp:alt_caps_toggle   =       +group(alt_caps_toggle) +  grp:ctrl_alt_toggle	=	+group(ctrl_alt_toggle) +  grp:alt_shift_toggle	=	+group(alt_shift_toggle) +  grp: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) +  lv3:switch		=	+level3(switch) +  lv3:ralt_switch	=	+level3(ralt_switch) +  lv3:ralt_switch_multikey	=	+level3(ralt_switch_multikey) +  lv3:ralt_alt		=	+level3(ralt_alt) +  lv3:lalt_switch	=	+level3(lalt_switch) +  lv3:alt_switch	=	+level3(alt_switch) +  lv3:menu_switch	=	+level3(menu_switch) +  lv3:win_switch	=	+level3(win_switch) +  lv3:lwin_switch	=	+level3(lwin_switch) +  lv3:rwin_switch	=	+level3(rwin_switch) +  caps:capslock		=	+capslock(capslock) +  caps:shiftlock	=	+capslock(shiftlock) +  caps:swapescape	=	+capslock(swapescape) +  caps:escape		=	+capslock(escape) +  caps:backspace	=	+capslock(backspace) +  ctrl:nocaps		=	+ctrl(nocaps) +  ctrl:swapcaps		=	+ctrl(swapcaps) +  ctrl:ctrl_ac		=	+ctrl(ctrl_ac) +  ctrl:ctrl_aa		=	+ctrl(ctrl_aa) +  ctrl:ctrl_ra		=	+ctrl(ctrl_ra) +  compose:ralt		=	+compose(ralt) +  compose:lwin		=	+compose(lwin) +  compose:rwin		=	+compose(rwin) +  compose:menu		=	+compose(menu) +  compose:rctrl		=	+compose(rctrl) +  compose:caps		=	+compose(caps) +  compose:102		=	+compose(102) +  srvrkeys:none		=	+srvr_ctrl(no_srvr_keys) +  eurosign:e		=	+eurosign(e) +  eurosign:2		=	+eurosign(2) +  eurosign:4		=	+eurosign(4) +  eurosign:5		=	+eurosign(5) +  keypad:oss            =       +keypad(oss) +  keypad:legacy         =	+keypad(legacy) +  keypad:legacy_wang    =	+keypad(legacy_wang) +  keypad:oss_wang       =	+keypad(oss_wang) +  keypad:future         =	+keypad(future) +  keypad:future_wang    =	+keypad(future_wang) +  keypad: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) +  japan:nicola_f_bs     =	+jp(nicola_f_bs) +  kpdl:dot              =	+kpdl(dot) +  kpdl:comma            =	+kpdl(comma) +  kpdl:dotoss           =	+kpdl(dotoss) +  kpdl:dotoss_latin9    =	+kpdl(dotoss_latin9) +  kpdl:commaoss         =	+kpdl(commaoss) +  kpdl:momayyezoss      =	+kpdl(momayyezoss) +  kpdl:kposs            =	+kpdl(kposs) +  kpdl:semi             =	+kpdl(semi) +  shift:breaks_caps     =	+shift(breaks_caps) +  esperanto:qwerty      =	+epo(qwerty) +  esperanto:dvorak      =	+epo(dvorak) +  terminate:ctrl_alt_bksp =	+srvr_ctrl(terminate_ctrl_alt_bksp) +  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) +  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_numlock            =       +level5(lsgt_switch_numlock) +  lv5:ralt_switch_numlock            =       +level5(ralt_switch_numlock) +  lv5:lwin_switch_numlock            =       +level5(lwin_switch_numlock) +  lv5:rwin_switch_numlock            =       +level5(rwin_switch_numlock) +  lv5:lsgt_switch_numlock_cancel     =       +level5(lsgt_switch_numlock_cancel) +  lv5:ralt_switch_numlock_cancel     =       +level5(ralt_switch_numlock_cancel) +  lv5:lwin_switch_numlock_cancel     =       +level5(lwin_switch_numlock_cancel) +  lv5:rwin_switch_numlock_cancel     =       +level5(rwin_switch_numlock_cancel) + + +! option	=	compat +  grp_led:num		=	+lednum(group_lock) +  grp_led:caps		=	+ledcaps(group_lock) +  grp_led:scroll	=	+ledscroll(group_lock) +  grp:caps_toggle	=	+ledcaps(group_lock) +  japan:kana_lock	=	+japan(kana_lock) +  caps:shiftlock	=	+ledcaps(shift_lock) + + +! option	=	types +  caps:internal			=	+caps(internal) +  caps:internal_nocancel	=	+caps(internal_nocancel) +  caps:shift			=	+caps(shift) +  caps:shift_nocancel		=	+caps(shift_nocancel) +  numpad:pc			=	+numpad(pc) +  numpad:mac			=	+numpad(mac) +  numpad:microsoft		=	+numpad(microsoft) +  numpad:shift3       		=	+numpad(shift3) diff --git a/linux/X/symbols/de b/linux/X/symbols/de new file mode 100644 index 0000000..ef040c0 --- /dev/null +++ b/linux/X/symbols/de @@ -0,0 +1,503 @@ + +// based on a keyboard map from an 'xkb/symbols/de' file +// +// $XKeyboardConfig$ +// $XFree86: xc/programs/xkbcomp/symbols/de,v 1.6 2003/09/08 13:12:51 pascal Exp $ + +default +xkb_symbols "basic" { + +    include "latin(type4)" + +    name[Group1]="Germany"; + +    key <AE02>	{ [         2,   quotedbl,  twosuperior,    oneeighth ]	}; +    key <AE03>	{ [         3,    section, threesuperior,    sterling ]	}; +    key <AE04>	{ [         4,     dollar,   onequarter,     currency ]	}; + +    key <AE11> {type[Group1]="FOUR_LEVEL_PLUS_LOCK",  symbols[Group1]= +                  [ssharp, question, backslash, questiondown, 0x1001E9E ]}; +// The unicode capital letter sharp s U+1E9E is transformed to "SS" +// to match the rules for capitalizing sharp s in german. +// If the capital sharp s is needed, delete the line +// starting with <U1E9C> from /usr/share/X11/locale/iso8859-15/Compose. +// If both doubled S and capital sharp s are needed, use  0x1001E9E +// for capital sharp s and some free unicode codepoint like 0x1001E9C +// for doubled S. Don`t forget to change this in the Compose file, too. + +    key <AE12>	{ [dead_acute, dead_grave, dead_cedilla,  dead_ogonek ]	}; + +    key <AD03>	{ [         e,          E,     EuroSign,     EuroSign ]	}; +    key <AD06>	{ [         z,          Z,    leftarrow,          yen ]	}; +    key <AD11>	{ [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] }; +    key <AD12>	{ [      plus,   asterisk,   dead_tilde,  dead_macron ]	}; + +    key <AC02>  { [         s,          S,                U017F,     U1E9E    ] }; +    key <AC07>  { [         j,          J,        dead_belowdot, dead_abovedot   ] }; +    key <AC10>	{ [odiaeresis, Odiaeresis, dead_doubleacute, dead_belowdot ] }; +    key <AC11>	{ [adiaeresis, Adiaeresis, dead_circumflex, dead_caron ] }; +    key <TLDE>	{ [dead_circumflex, degree,	U2032,    U2033	] }; + +    key <BKSL>	{ [numbersign, apostrophe,   dead_grave,   dead_breve ]	}; +    key <AB01>	{ [         y,          Y,       guillemotright,    U203A 	] }; +    key <AB02>	{ [         x,          X,        guillemotleft,    U2039 	] }; +    key <AB04>	{ [         v,          V,   doublelowquotemark, singlelowquotemark ]	}; +    key <AB05>	{ [         b,          B,  leftdoublequotemark, leftsinglequotemark ] }; +    key <AB06>	{ [         n,          N, rightdoublequotemark, rightsinglequotemark ]	};     +    key <AB08>  { [     comma,  semicolon,       periodcentered,     multiply	] }; +    key <AB09>	{ [    period,      colon,                U2026,     division 	] }; +    key <AB10>	{ [     minus, underscore,               endash,     emdash	] }; + +    include "kpdl(comma)" + +    include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + +    // modify the basic German layout to not have any dead keys + +    include "de(basic)" +    name[Group1]="Germany - Eliminate dead keys"; + +    key <TLDE>	{ [asciicircum,    degree,      notsign,      notsign ]	}; +    key <AE12>	{ [apostrophe,      grave,      cedilla,      cedilla ]	}; +    key <AD11>	{ [udiaeresis, Udiaeresis,    diaeresis,    diaeresis ]	}; +    key <AD12>	{ [      plus,   asterisk,   asciitilde,       macron ]	}; +    key <AC10>	{ [odiaeresis, Odiaeresis,  doubleacute,  doubleacute ]	}; +    key <AC11>	{ [adiaeresis, Adiaeresis,  asciicircum,  asciicircum ]	}; +    key <BKSL>	{ [numbersign, apostrophe,        grave,        grave ]	}; +    key <AB10>	{ [     minus, underscore, dead_belowdot,    abovedot ]	}; +}; + +partial alphanumeric_keys +xkb_symbols "deadgraveacute" { +    // modify the basic German layout to have only acute and grave +    // as dead keys (tilde and circumflex are needed as spacing characters +    // in many programming languages) + +    include "de(basic)" +    name[Group1]="Germany - Dead grave acute"; + +    key <TLDE>	{ [asciicircum,    degree,      notsign,      notsign ]	}; +    key <AD12>	{ [      plus,   asterisk,   asciitilde,  dead_macron ]	}; +    key <BKSL>	{ [numbersign, apostrophe,        grave,        grave ]	}; +}; + +partial alphanumeric_keys +xkb_symbols "deadacute" { +    // modify the basic German layout to have only acute as +    // dead keys (ASCII grave, tilde and circumflex are needed as +    // spacing characters in many programming languages and text formatters) + +    include "de(deadgraveacute)" + +    name[Group1]="Germany - Dead acute"; + +    key <AE12>	{ [dead_acute,      grave, dead_cedilla,  dead_ogonek ]	}; +    key <BKSL>	{ [numbersign, apostrophe,   dead_grave,   dead_grave ]	}; +}; + +partial alphanumeric_keys +xkb_symbols "ro" { +    // add romanian-specific letters to the basic German layout. +    // Romanian symbols are accessible with combination of <AltGr> and +    // 'a', 's', 't', 'i', 'ä (ä)' (+<Shift> for capital letters). +    // To view romanian-specific symbols, add "export LC_CTYPE=ro_RO" +    // or "export LC_CTYPE=de_DE.utf8" to your .profile. + +    include "de(basic)" + +    name[Group1]="Germany - Romanian keyboard with German letters"; + +    key <AD05> { [         t,    T,           tcedilla,     Tcedilla    ] }; +    key <AD08> { [         i,    I,        icircumflex,  Icircumflex    ] }; +    key <AC01> { [         a,    A,        acircumflex,  Acircumflex    ] }; +    key <AC02> { [         s,    S,           scedilla,     Scedilla    ] }; +    key <AC11> { [ adiaeresis,   Adiaeresis,    abreve,       Abreve    ] }; +}; + +partial alphanumeric_keys +xkb_symbols "ro_nodeadkeys" { +    // add romanian-specific letters to the German nodeadkeys layout. +    // Read the comment for de_ro ! + +    include "de(nodeadkeys)" +    name[Group1]="Germany - Romanian keyboard with German letters, eliminate dead keys"; + +    key <AD05> { [         t,    T,           tcedilla,     Tcedilla    ] }; +    key <AD08> { [         i,    I,        icircumflex,  Icircumflex    ] }; +    key <AC01> { [         a,    A,        acircumflex,  Acircumflex    ] }; +    key <AC02> { [         s,    S,           scedilla,     Scedilla    ] }; +    key <AC11> { [ adiaeresis,   Adiaeresis, abreve,       Abreve       ] }; +}; + +// German Dvorak keymap by Thorsten Staerk (www.staerk.de/thorsten) +// Have acute and grave as dead keys, tilde and circumflex alive as they are needed  +// in many programming languages. +// to use this keymap, use a 105-key-keyboard and the command setxkbmap -model pc105 -layout dvorak -variant de +// source: http://www-lehre.informatik.uni-osnabrueck.de/~rfreund/dvorak.php +partial alphanumeric_keys  +xkb_symbols "dvorak" { +    include "us(dvorak)" + +    name[Group1]="Germany - Dvorak"; + +    key <TLDE> { [ asciicircum, degree ] }; + +    key <AE01> { [ 1, exclam, onesuperior ] }; +    key <AE02> { [ 2, quotedbl, twosuperior ] }; +    key <AE03> { [ 3, section, threesuperior ] }; +    key <AE04> { [ 4, dollar, bar ] }; +    key <AE05> { [ 5, percent, bar ] }; +    key <AE06> { [ 6, ampersand, brokenbar ] }; +    key <AE07> { [ 7, slash, braceleft ] }; +    key <AE08> { [ 8, parenleft, bracketleft ] }; +    key <AE09> { [ 9, parenright, bracketright ] }; +    key <AE10> { [ 0, equal, braceright ] }; +    key <AE11> { [ plus, asterisk, asciitilde ] }; +    key <AE12> { [ less, greater, dead_grave ] }; + +    key <AD01> { [ udiaeresis, Udiaeresis, at ] }; +    key <AD02> { [ comma, semicolon, dead_diaeresis ] }; +    key <AD03> { [ period, colon ] }; +    key <AD08> { [ c, C, copyright, Cacute ] }; +    key <AD09> { [ t, T, trademark ] }; +    key <AD10> { [ z, Z, zabovedot, Zabovedot ] }; +    key <AD11> { [ question, ssharp ] }; +    key <AD12> { [ slash, backslash, dead_acute ] }; + +    key <AC01> { [ a, A, at, aogonek ] }; +    key <AC02> { [ o, O, oacute, Oacute ] }; +    key <AC03> { [ e, E, EuroSign, eogonek ] }; +    key <AC04> { [ i, I ] }; +    key <AC05> { [ u, U ] }; +    key <AC06> { [ h, H ] }; +    key <AC07> { [ d, D ] }; +    key <AC08> { [ r, R, registered ] }; +    key <AC09> { [ n, N, nacute, Nacute ] }; +    key <AC10> { [ s, S, sacute, Sacute] }; +    key <AC11> { [ l, L, lstroke, Lstroke ] }; + +    key <AB01> { [ odiaeresis, Odiaeresis ] }; +    key <AB02> { [ q, Q, at ] }; +    key <AB07> { [ m, M, mu ] }; +    key <AB10> { [ numbersign, apostrophe ] }; + +    key <BKSL> { [ minus, underscore, hyphen, diaeresis] }; + +    key <LSGT> { [ adiaeresis, Adiaeresis, bar ] }; + +    include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + +    // For naming consistency + +    include "de(basic)" + +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + +    // For naming consistency + +    include "de(Sundeadkeys)" + +    name[Group1]="Germany - Sun dead keys"; +}; + +// German NEO-Layout Version 2 +// adopted 2004 by Hanno Behrens <Hanno.Behrens@gmx.de> +// inspired by Dvorak/de-ergo  http://www.goebel-consult.de/de-ergo/ +// +// Authors:  +//      Stephan Hilb <stephan at ehilb dot de> +//      <lucky at zankt dot net> +//      Benjamin Kellermann <Benjamin dot Kellermann at gmx dot Germany> +//      Erik Streb <mail at erikstreb dot de> +//        and many other contributors +// +//      http://www.neo-layout.org +// +// $Revision$, $Date$ + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "neo_base" { + +    name[Group1]= "Germany - Neo 2"; + +    // Levels in Neo jargon +    // -------------------------------------------------------------- +    // Ebene 1: normal +    // Ebene 2: Shift +    // Ebene 3: Mod3 +    // Ebene 4: Mod4 (for marking something use Shift + Mod4) +    // Ebene 5: Shift + Mod3 +    // Ebene 6: Mod3 + Mod4 +    // Compose (not a level): Mod3 + Tab +    // Feststelltaste (Capslock): Shift + Shift +    // Mod4-Lock: Mod4 + Mod4 +    // + +    // Legend +    // =============== +    // Levels in Xkbmap jargon to be found here in the definitions.  +    // These are the levels used, and Xorg's translations: +    // -------------------------------------------------------------- +    // Xorg:       Level1                   Level2                   Level3                   Level4                   Level5                   Level6                   Level7                   Level8                    +    // Neo:        Ebene1                   Ebene2                   Ebene3                   Ebene5                   Ebene4                   ???                      Ebene6                   ???                       +    // Keys (Neo): None                     Shift                    Mod3                     Mod3 + Shift             Mod4                     Mod4 + Shift             Mod3 + Mod4              Mod3 + Mod4 + Shift       + +    key <LVL3> { +        type[Group1] = "ONE_LEVEL", +    	vmods[Group1] = LevelFive, +        symbols[Group1] = [ NoSymbol ], +        actions[Group1] = [ SetMods(modifiers=LevelFive) ] +    }; +    modifier_map Mod3 { <LVL3> }; + + +    // Alphanumeric-keys +    // =============== +    key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS"; + +    // Tab as Multi_key (Compose) +    // -------------------------------------------------------------- +    key  <TAB> {  +        symbols[Group1]= [ Tab,             ISO_Left_Tab,            Multi_key,               Num_Lock,                NoSymbol,                NoSymbol,                NoSymbol,                Num_Lock                 ], +        actions[Group1]= [ NoActions(),     NoActions(),             NoActions(),             LockMods(modifiers=NumLock), NoActions(),         NoActions(),             NoActions(),             LockMods(modifiers=NumLock) ] +    }; +    modifier_map Mod2 { <TAB> }; + +    // Number row +    // -------------------------------------------------------------- +    key <TLDE> { [ dead_circumflex,         dead_tilde,              dead_abovering,          dead_breve,              dead_caron,              Pointer_EnableKeys,      dead_macron,             NoSymbol                 ] }; + +    key <AE01> { [ 1,                       degree,                  onesuperior,             onesubscript,            ordfeminine,             NoSymbol,                notsign,                 NoSymbol                 ] }; +    key <AE02> { [ 2,                       section,                 twosuperior,             twosubscript,            masculine,               NoSymbol,                logicalor,               NoSymbol                 ] }; +    key <AE03> { [ 3,                       U2113,                   threesuperior,           threesubscript,          numerosign,              NoSymbol,                logicaland,              NoSymbol                 ] }; +    key <AE04> { [ 4,                       guillemotright,          U203A,                   femalesymbol,            Prior,                   Prior,                   U22A5,                   NoSymbol                 ] }; +    key <AE05> { [ 5,                       guillemotleft,           U2039,                   malesymbol,              periodcentered,          NoSymbol,                U2221,                   NoSymbol                 ] }; +    key <AE06> { [ 6,                       dollar,                  cent,                    U26A5,                   sterling,                NoSymbol,                U2225,                   NoSymbol                 ] }; + +    key <AE07> { [ 7,                       EuroSign,                yen,                     Greek_kappa,             currency,                NoSymbol,                rightarrow,              NoSymbol                 ] }; +    key <AE08> { [ 8,                       doublelowquotemark,      singlelowquotemark,      U27E8,                   NoSymbol,                NoSymbol,                U221E,                   NoSymbol                 ] }; +    key <AE09> { [ 9,                       leftdoublequotemark,     leftsinglequotemark,     U27E9,                   KP_Divide,               NoSymbol,                variation,               NoSymbol                 ] }; +    key <AE10> { [ 0,                       rightdoublequotemark,    rightsinglequotemark,    zerosubscript,           KP_Multiply,             NoSymbol,                emptyset,                NoSymbol                 ] }; + +    key <AE11> { [ minus,                   emdash,                  NoSymbol,                U2011,                   KP_Subtract,             NoSymbol,                hyphen,                  NoSymbol                 ] }; +    key <AE12> { [ dead_grave,              NoSymbol,                dead_diaeresis,          dead_dasia,              dead_doublegrave,        NoSymbol,                NoSymbol,                NoSymbol                 ] }; + +    // Top row +    // -------------------------------------------------------------- +    key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS_QUARTERALPHABETIC"; +    key <AD01> { [ x,                       X,                       ellipsis,                Greek_xi,                U22EE,                   NoSymbol,                Greek_XI,                NoSymbol                 ] }; +    key <AD02> { [ v,                       V,                       underscore,              NoSymbol,                BackSpace,               BackSpace,               radical,                 NoSymbol                 ] }; +    key <AD03> { [ l,                       L,                       bracketleft,             Greek_lambda,            Up,                      Up,                      Greek_LAMBDA,            NoSymbol                 ] }; +    key <AD04> { [ c,                       C,                       bracketright,            Greek_chi,               Delete,                  Delete,                  U2102,                   NoSymbol                 ] }; +    key <AD05> { [ w,                       W,                       asciicircum,             Greek_omega,             Insert,                  Insert,                  Greek_OMEGA,             NoSymbol                 ] }; + +    key <AD06> { [ k,                       K,                       exclam,                  U03F0,                   exclamdown,              NoSymbol,                multiply,                NoSymbol                 ] }; +    key <AD07> { [ h,                       H,                       less,                    Greek_psi,               KP_7,                    NoSymbol,                Greek_PSI,               NoSymbol                 ] }; +    key <AD08> { [ g,                       G,                       greater,                 Greek_gamma,             KP_8,                    NoSymbol,                Greek_GAMMA,             NoSymbol                 ] }; +    key <AD09> { [ f,                       F,                       equal,                   Greek_phi,               KP_9,                    NoSymbol,                Greek_PHI,               NoSymbol                 ] }; +    key <AD10> { [ q,                       Q,                       ampersand,               U03D5,                   KP_Add,                  NoSymbol,                U211A,                   NoSymbol                 ] }; + +    key <AD11> { [ ssharp,                  U1E9E,                   U017F,                   Greek_finalsmallsigma,   U2212,                   NoSymbol,                jot,                     NoSymbol                 ] }; + +    key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS"; +    key <AD12> { [ dead_acute,              dead_cedilla,            dead_stroke,             dead_psili,              dead_doubleacute,        NoSymbol,                dead_abovedot,           NoSymbol                 ] }; + +    // Middle row +    // -------------------------------------------------------------- +    key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS_QUARTERALPHABETIC"; +    key <AC01> { [ u,                       U,                       backslash,               NoSymbol,                Home,                    Home,                    includedin,              NoSymbol                 ] }; +    key <AC02> { [ i,                       I,                       slash,                   Greek_iota,              Left,                    Left,                    integral,                NoSymbol                 ] }; +    key <AC03> { [ a,                       A,                       braceleft,               Greek_alpha,             Down,                    Down,                    U2200,                   NoSymbol                 ] }; +    key <AC04> { [ e,                       E,                       braceright,              Greek_epsilon,           Right,                   Right,                   U2203,                   NoSymbol                 ] }; +    key <AC05> { [ o,                       O,                       asterisk,                Greek_omicron,           End,                     End,                     elementof,               NoSymbol                 ] }; + +    key <AC06> { [ s,                       S,                       question,                Greek_sigma,             questiondown,            NoSymbol,                Greek_SIGMA,             NoSymbol                 ] }; +    key <AC07> { [ n,                       N,                       parenleft,               Greek_nu,                KP_4,                    NoSymbol,                U2115,                   NoSymbol                 ] }; +    key <AC08> { [ r,                       R,                       parenright,              U03F1,                   KP_5,                    NoSymbol,                U211D,                   NoSymbol                 ] }; +    key <AC09> { [ t,                       T,                       minus,                   Greek_tau,               KP_6,                    NoSymbol,                partialderivative,       NoSymbol                 ] }; +    key <AC10> { [ d,                       D,                       colon,                   Greek_delta,             KP_Separator,            NoSymbol,                Greek_DELTA,             NoSymbol                 ] }; + +    key <AC11> { [ y,                       Y,                       at,                      Greek_upsilon,           KP_Decimal,              NoSymbol,                nabla,                   NoSymbol                 ] }; + +    // Bottom row +    // -------------------------------------------------------------- +    key <AB01> { [ udiaeresis,              Udiaeresis,              numbersign,              NoSymbol,                Escape,                  Escape,                  union,                   NoSymbol                 ] }; +    key <AB02> { [ odiaeresis,              Odiaeresis,              dollar,                  U03F5,                   Tab,                     Tab,                     intersection,            NoSymbol                 ] }; +    key <AB03> { [ adiaeresis,              Adiaeresis,              bar,                     Greek_eta,               Next,                    Next,                    U2135,                   NoSymbol                 ] }; +    key <AB04> { [ p,                       P,                       asciitilde,              Greek_pi,                Return,                  Return,                  Greek_PI,                NoSymbol                 ] }; +    key <AB05> { [ z,                       Z,                       grave,                   Greek_zeta,              Undo,                    Undo,                    U2124,                   NoSymbol                 ] }; + +    key <AB06> { [ b,                       B,                       plus,                    Greek_beta,              colon,                   NoSymbol,                U21D0,                   NoSymbol                 ] }; +    key <AB07> { [ m,                       M,                       percent,                 Greek_mu,                KP_1,                    NoSymbol,                ifonlyif,                NoSymbol                 ] }; +    key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS"; +    key <AB08> { [ comma,                   endash,                  quotedbl,                Greek_rho,               KP_2,                    NoSymbol,                U21D2,                   NoSymbol                 ] }; +    key <AB09> { [ period,                  enfilledcircbullet,      apostrophe,              U03D1,                   KP_3,                    NoSymbol,                Greek_THETA,             NoSymbol                 ] }; +    key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS_QUARTERALPHABETIC"; +    key <AB10> { [ j,                       J,                       semicolon,               Greek_theta,             semicolon,               NoSymbol,                U21A6,                   NoSymbol                 ] }; +    key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS"; + +    // Space key +    // -------------------------------------------------------------- +    key <SPCE> { [ space,                   space,                   space,                   nobreakspace,            KP_0,                    NoSymbol,                U202F,                   NoSymbol                 ] }; + + +    // Keypad-keys +    // =============== + +    // The former Numlock key: +    key <NMLK> { [ Tab,                     ISO_Left_Tab,            equal,                   approxeq,                notequal,                NoSymbol,                identical,               NoSymbol                 ] }; + +    // Topmost row +    // -------------------------------------------------------------- +    key <KPDV> { [ KP_Divide,               KP_Divide,               division,                U2300,                   U2215,                   NoSymbol,                U2223,                   NoSymbol                 ] }; +    key <KPMU> { [ KP_Multiply,             KP_Multiply,             U2219,                   U2299,                   multiply,                NoSymbol,                U2297,                   NoSymbol                 ] }; +    key <KPSU> { [ KP_Subtract,             KP_Subtract,             U2212,                   U2296,                   U2216,                   NoSymbol,                U2238,                   NoSymbol                 ] }; + +    // Top row +    // -------------------------------------------------------------- +    key  <KP7> { [ KP_7,                    U2714,                   U2195,                   U226A,                   KP_Home,                 KP_Home,                 upstile,                 NoSymbol                 ] }; +    key  <KP8> { [ KP_8,                    U2718,                   uparrow,                 intersection,            KP_Up,                   KP_Up,                   U22C2,                   NoSymbol                 ] }; +    key  <KP9> { [ KP_9,                    dagger,                  U20D7,                   U226B,                   KP_Prior,                KP_Prior,                U2309,                   NoSymbol                 ] }; +    key <KPAD> { [ KP_Add,                  KP_Add,                  plusminus,               U2295,                   U2213,                   NoSymbol,                U2214,                   NoSymbol                 ] }; +  +    // Middle row +    // -------------------------------------------------------------- +    key  <KP4> { [ KP_4,                    club,                    leftarrow,               includedin,              KP_Left,                 KP_Left,                 U2286,                   NoSymbol                 ] }; +    key  <KP5> { [ KP_5,                    EuroSign,                brokenbar,               U22B6,                   KP_Begin,                KP_Begin,                U22B7,                   NoSymbol                 ] }; +    key  <KP6> { [ KP_6,                    U2023,                   rightarrow,              includes,                KP_Right,                KP_Right,                U2287,                   NoSymbol                 ] }; + +    // Bottom row +    // -------------------------------------------------------------- +    key  <KP1> { [ KP_1,                    diamond,                 U2194,                   lessthanequal,           KP_End,                  KP_End,                  downstile,               NoSymbol                 ] }; +    key  <KP2> { [ KP_2,                    heart,                   downarrow,               union,                   KP_Down,                 KP_Down,                 U22C3,                   NoSymbol                 ] }; +    key  <KP3> { [ KP_3,                    U2660,                   U21CC,                   greaterthanequal,        KP_Next,                 KP_Next,                 U230B,                   NoSymbol                 ] }; +    key <KPEN> { [ KP_Enter,                KP_Enter,                KP_Enter,                KP_Enter,                KP_Enter,                KP_Enter,                KP_Enter,                NoSymbol                 ] }; +    key <KPEQ> { [ KP_Equal,                NoSymbol,                NoSymbol,                NoSymbol,                NoSymbol,                NoSymbol,                NoSymbol,                NoSymbol                 ] }; + +    // Bottommost row +    // -------------------------------------------------------------- +    key  <KP0> { [ KP_0,                    U2423,                   percent,                 U2030,                   KP_Insert,               KP_Insert,               U25A1,                   NoSymbol                 ] }; +    key <KPDL> { [ KP_Separator,            KP_Decimal,              period,                  apostrophe,              KP_Delete,               KP_Delete,               quotedbl,                NoSymbol                 ] }; +}; + +// Copied from macintosh_vndr/de +// olh@suse.de   very close to MacOS map + +partial alphanumeric_keys  +xkb_symbols "mac" { + +    include "de" +    name[Group1]= "Germany - Macintosh"; + +    // Alphanumeric section +    key <AE01>	{ [         1,     exclam,   exclamdown,           at ]	}; +    key <AE05>	{ [         5,    percent,  bracketleft       ]	}; +    key <AE06>	{ [         6,  ampersand, bracketright       ]	}; +    key <AE07>	{ [         7,      slash,          bar,    backslash ]	}; +    key <AE08>	{ [         8,  parenleft,    braceleft,   asciitilde ]	}; +    key <AE09>	{ [         9, parenright,   braceright       ]	}; +    key <AD01>	{ [         q,          Q, guillemotleft, guillemotright ]	}; +    key <AD04>	{ [         r,          R,   registered       ]	}; +    key <AD07>	{ [         u,          U,    diaeresis,       Aacute ]	}; +    key <AD08>	{ [         i,          I,        slash,  Ucircumflex ]	}; +    key <AD11>	{ [ udiaeresis, Udiaeresis, periodcentered,    degree ]	}; +    key <AD12>	{ [      plus,   asterisk,   asciitilde       ]	};  +    key <AC01>	{ [         a,          A,        aring,        Aring ]	}; +    key <AC05>	{ [         g,          G,    copyright       ]	}; +    key <AC06>	{ [         h,          H,  ordfeminine       ]	}; +    key <AC09>	{ [         l,          L,           at       ]	}; +    key <AC10>	{ [ odiaeresis, Odiaeresis,  dead_acute       ]	}; +    key <AB06>	{ [         n,          N,   asciitilde       ]	}; + +}; + +partial alphanumeric_keys  +xkb_symbols "mac_nodeadkeys" { +    // modify the standard German mac layout to not have any dead keys +    include "de(mac)" +    name[Group1]= "Germany - Macintosh, eliminate dead keys"; +    key <AE04>	{ [         4,     dollar,   onequarter,     currency ]	}; + +    key <TLDE>	{ [ asciicircum,    degree,     notsign       ]	}; +    key <AE12>	{ [      acute,      grave,     cedilla       ]	}; +    key <AD11>	{ [ udiaeresis, Udiaeresis,   diaeresis       ]	}; +    key <AD12>	{ [       plus,   asterisk,  asciitilde,       macron ]	}; +    key <AC10>	{ [ odiaeresis, Odiaeresis,       acute       ]	}; +    key <AC11>	{ [ adiaeresis, Adiaeresis, asciicircum       ]	}; + +    key <BKSL>	{ [ numbersign, apostrophe,       grave       ]	}; +}; + +partial alphanumeric_keys +xkb_symbols "dsb" +{ +	name[Group1] = "Germany - Lower Sorbian"; +	include "latin(basic)" +	include "level3(ralt_switch)" +	include "kpdl(comma)" +	key <AB01> { [              z,              Z,         zcaron,         Zcaron ] }; +	key <AB02> { [              x,              X,         zacute,         Zacute ] }; +	key <AB03> { [              c,              C,         cacute,         Cacute ] }; +	key <AB04> { [              v,              V,         ccaron,         Ccaron ] }; +	key <AB06> { [              n,              N,         nacute,         Nacute ] }; +	key <AC02> { [              s,              S,         sacute,         Sacute ] }; +	key <AC03> { [              d,              D,         scaron,         Scaron ] }; +	key <AC04> { [              f,              F                                 ] }; +	key <AD01> { [              q,              Q                                 ] }; +	key <AD02> { [              w,              W                                 ] }; +	key <AD03> { [              e,              E,         ecaron,         Ecaron ] }; +	key <AD04> { [              r,              R,         racute,         Racute ] }; +	key <AD05> { [              t,              T,          U20B5,       EuroSign ] }; +	key <AD09> { [              o,              O,         oacute,         Oacute ] }; +}; + +partial alphanumeric_keys +xkb_symbols "dsb_qwertz" +{ +	name[Group1] = "Germany - Lower Sorbian (qwertz)"; +	include "latin(basic)" +	include "level3(ralt_switch)" +	include "kpdl(comma)" +	key <AB01> { [              y,              Y                                 ] }; +	key <AB02> { [              x,              X                                 ] }; +	key <AB03> { [              c,              C,         cacute,         Cacute ] }; +	key <AB04> { [              v,              V,         ccaron,         Ccaron ] }; +	key <AB06> { [              n,              N,         nacute,         Nacute ] }; +	key <AC02> { [              s,              S,         sacute,         Sacute ] }; +	key <AC03> { [              d,              D,         scaron,         Scaron ] }; +	key <AC04> { [              f,              F                                 ] }; +	key <AD01> { [              q,              Q                                 ] }; +	key <AD02> { [              w,              W                                 ] }; +	key <AD03> { [              e,              E,         ecaron,         Ecaron ] }; +	key <AD04> { [              r,              R,         racute,         Racute ] }; +	key <AD05> { [              t,              T,          U20B5,       EuroSign ] }; +	key <AD06> { [              z,              Z,         zcaron,         Zcaron ] }; +	key <AD07> { [              u,              U,         zacute,         Zacute ] }; +	key <AD09> { [              o,              O,         oacute,         Oacute ] }; +}; + +partial alphanumeric_keys  +xkb_symbols "qwerty" { +  +    // This layout should work exactly as a de with the exception  +    // of 'Z' and 'Y' keys, which are in the qwerty style (ie. swapped). +    // 2008 by Matej Košík <kosik@fiit.stuba.sk> +     +    include "de(basic)" + +    name[Group1] = "Germany - qwerty"; + +    key <AB01>	{ [         z,          Z,     leftarrow,         yen ]	}; +    key <AD06>	{ [         y,          Y, guillemotleft,        less ]	}; +}; diff --git a/linux/X/symbols/level3 b/linux/X/symbols/level3 new file mode 100644 index 0000000..2e44efd --- /dev/null +++ b/linux/X/symbols/level3 @@ -0,0 +1,151 @@ +// $XdotOrg +// $XKeyboardConfig: xkbdesc/symbols/level3,v 1.6 2004/10/09 17:40:26 svu Exp $ + +// these variants assign various XKB keycodes to ISO_Level3_Shift so that +// the third shift level can be reached +// +// $XFree86: xc/programs/xkbcomp/symbols/level3,v 1.7 2003/09/08 14:25:32 eich Exp $ +// + +// the default behavior is for the right Alt key (AltGr) to generate the +// third engraved symbol +default partial modifier_keys +xkb_symbols "ralt_switch" { +  key <RALT> { +    type[Group1]="ONE_LEVEL", +    symbols[Group1] = [ ISO_Level3_Shift ] +    }; +  modifier_map Mod5   { ISO_Level3_Shift }; +}; + +// using the level(alt_switch) map, either Alt key temporarily chooses +// the third shift level.  (Mostly be used to imitate Mac OS functionality.) +partial modifier_keys +xkb_symbols "alt_switch" { +  include "level3(lalt_switch)" +  include "level3(ralt_switch)" +}; + +partial modifier_keys +xkb_symbols "lalt_switch" { +  key <LALT> { +    type[Group1]="ONE_LEVEL", +    symbols[Group1] = [ ISO_Level3_Shift ] +    }; +  modifier_map Mod5   { ISO_Level3_Shift }; +}; + +// using the level(switch) map, the right Control key temporarily +// chooses the third shift level (until it is released). +partial modifier_keys +xkb_symbols "switch" { +  key <RCTL> { +    type[Group1]="ONE_LEVEL", +    symbols[Group1] = [ ISO_Level3_Shift ] +    }; +  modifier_map Mod5   { ISO_Level3_Shift }; +}; + +// using the level(menu_switch) map, the Menu key temporarily +// chooses the third shift level (until it is released). +partial modifier_keys +xkb_symbols "menu_switch" { +  key <MENU> { +    type[Group1]="ONE_LEVEL", +    symbols[Group1] = [ ISO_Level3_Shift ] +    }; +  modifier_map Mod5   { ISO_Level3_Shift }; +}; + +// using the level(win_switch) map, the either Windows' logo key +// temporarily chooses the third shift level.  If you use this map, +// you should define your keyboard as pc101 or pc102 instead of pc104 +// or pc105. +partial modifier_keys +xkb_symbols "win_switch" { +  include "level3(lwin_switch)" +  include "level3(rwin_switch)" +}; + +// using the level(lwin_switch) map, the left Windows' logo key +// temporarily chooses the third shift level.  If you use this map, +// you should define your keyboard as pc101 or pc102 instead of pc104 +// or pc105. +partial modifier_keys +xkb_symbols "lwin_switch" { +  key <LWIN> { +    type[Group1]="ONE_LEVEL", +    symbols[Group1] = [ ISO_Level3_Shift ] +    }; +  modifier_map Mod5   { ISO_Level3_Shift }; +}; + +// using the level(rwin_switch) map, the right Windows' logo key +// temporarily chooses the third shift level.  If you use this map, +// you should define your keyboard as pc101 or pc102 instead of pc104 +// or pc105. +partial modifier_keys +xkb_symbols "rwin_switch" { +  key <RWIN> { +    type[Group1]="ONE_LEVEL", +    symbols[Group1] = [ ISO_Level3_Shift ] +    }; +  modifier_map Mod5   { ISO_Level3_Shift }; +}; + + +partial modifier_keys +xkb_symbols "caps_switch" { +  key <CAPS> { +    type[Group1]="ONE_LEVEL", +    symbols[Group1] = [ ISO_Level3_Shift ] +    }; +  modifier_map Mod5   { ISO_Level3_Shift }; +}; + +partial modifier_keys +xkb_symbols "bksl_switch" { +  key <BKSL> { +    type[Group1]="ONE_LEVEL", +    symbols[Group1] = [ ISO_Level3_Shift ] +    }; +  modifier_map Mod5   { ISO_Level3_Shift }; +}; + +partial modifier_keys +xkb_symbols "lsgt_switch" { +  key <LSGT> { +    type[Group1]="ONE_LEVEL", +    symbols[Group1] = [ ISO_Level3_Shift ] +    }; +  modifier_map Mod5   { ISO_Level3_Shift }; +}; + +partial modifier_keys +xkb_symbols "caps_switch_latch" { +  key <CAPS> { +    type[Group1]="THREE_LEVEL", +    symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] +    }; +  modifier_map Mod5   { ISO_Level3_Shift }; +}; + +partial modifier_keys +xkb_symbols "bksl_switch_latch" { +  key <BKSL> { +    type[Group1]="THREE_LEVEL", +    symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] +    }; +  modifier_map Mod5   { ISO_Level3_Shift }; +}; + +partial modifier_keys +xkb_symbols "lsgt_switch_latch" { +  key <LSGT> { +    type[Group1]="THREE_LEVEL", +    symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] +    }; +  modifier_map Mod5   { ISO_Level3_Shift }; +}; + + diff --git a/linux/X/symbols/level5 b/linux/X/symbols/level5 new file mode 100644 index 0000000..288555b --- /dev/null +++ b/linux/X/symbols/level5 @@ -0,0 +1,115 @@ +// $XKeyboardConfig$ + +// these variants assign various XKB keycodes to ISO_Level5_Shift so that +// the third shift level can be reached +// +// $XFree86: xc/programs/xkbcomp/symbols/level3,v 1.7 2003/09/08 14:25:32 eich Exp $ +// + +// using the level(switch) map, the right Control key temporarily +// chooses the fifth shift level (until it is released). +partial modifier_keys +xkb_symbols "rctrl_switch" { +  key <RCTL> { +    type[Group1]="ONE_LEVEL", +    symbols[Group1] = [ ISO_Level5_Shift ] +    }; +  modifier_map Mod3   { ISO_Level5_Shift }; +}; + +// The following modifier keys are used to switch to the third shift and to set a +// corresponding lock, implemented as NumLock.  They do not use *Level5* keysyms, +// as some applications get confused by it.  The modifiers are to be used in +// pairs of a 'left' and a 'right' one. + +// Left modifier +partial modifier_keys +xkb_symbols "lsgt_switch_numlock" { +  key <LSGT> { +    vmods= NumLock, +    key.type[Group1] = "EIGHT_LEVEL", +    symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ], +    actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ] +  }; +  modifier_map Mod2 { <LSGT> }; +}; +// Left modifier +partial modifier_keys +xkb_symbols "lwin_switch_numlock" { +  key <LWIN> { +    vmods= NumLock, +    key.type[Group1] = "EIGHT_LEVEL", +    symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ], +    actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ] +  }; +  modifier_map Mod2 { <LWIN> }; +}; + +// Right modifier +partial modifier_keys +xkb_symbols "ralt_switch_numlock" { +  key <RALT> { +    vmods= NumLock, +    key.type[Group1] = "EIGHT_LEVEL", +    symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ], +    actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ] +  }; +  modifier_map Mod2 { <RALT> }; +}; +// Right modifier +partial modifier_keys +xkb_symbols "rwin_switch_numlock" { +  key <RWIN> { +    vmods= NumLock, +    key.type[Group1] = "EIGHT_LEVEL", +    symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ], +    actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ] +  }; +  modifier_map Mod2 { <RWIN> }; +}; + +// Left modifier +partial modifier_keys +xkb_symbols "lsgt_switch_numlock_cancel" { +  key <LSGT> { +    vmods= NumLock, +    key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS", +    symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ], +    actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ] +  }; +  modifier_map Mod2 { <LSGT> }; +}; +// Left modifier +partial modifier_keys +xkb_symbols "lwin_switch_numlock_cancel" { +  key <LWIN> { +    vmods= NumLock, +    key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS", +    symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ], +    actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ] +  }; +  modifier_map Mod2 { <LWIN> }; +}; + +// Right modifier +partial modifier_keys +xkb_symbols "ralt_switch_numlock_cancel" { +  key <RALT> { +    vmods= NumLock, +    key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS", +    symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ], +    actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ] +  }; +  modifier_map Mod2 { <RALT> }; +}; +// Right modifier +partial modifier_keys +xkb_symbols "rwin_switch_numlock_cancel" { +  key <RWIN> { +    vmods= NumLock, +    key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS", +    symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ], +    actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ] +  }; +  modifier_map Mod2 { <RWIN> }; +}; diff --git a/linux/X/symbols/shift b/linux/X/symbols/shift new file mode 100644 index 0000000..ac39f34 --- /dev/null +++ b/linux/X/symbols/shift @@ -0,0 +1,92 @@ +// $XKeyboardConfig$ + +partial modifier_keys  +xkb_symbols "breaks_caps" { +    key <LFSH> { +	type = "ALPHABETIC", +    	actions [Group1] = [ +	    SetMods(modifiers=Shift), +	    SetMods(modifiers=Shift+Lock,clearLocks) +	] +    }; +    key <RTSH> { +	type = "ALPHABETIC", +	actions [Group1] = [ +	    SetMods(modifiers=Shift), +	    SetMods(modifiers=Shift+Lock,clearLocks) +	] +    }; +}; + +// When pressed together with another Shift key, set/release Lock. +partial modifier_keys +xkb_symbols "lshift_both_capslock" { +  key <LFSH> { +    type[Group1]="TWO_LEVEL", +    symbols[Group1] = [ Shift_L,                       Caps_Lock                ], +    actions[Group1] = [ SetMods(modifiers=Shift),      LockMods(modifiers=Lock) ] +  }; +}; +// When pressed together with another Shift key, set or unset Lock. +partial modifier_keys +xkb_symbols "rshift_both_capslock" { +  key <RTSH> { +    type[Group1]="TWO_LEVEL", +    symbols[Group1] = [ Shift_R,                       Caps_Lock                ], +    actions[Group1] = [ SetMods(modifiers=Shift),      LockMods(modifiers=Lock) ] +  }; +}; +partial modifier_keys +xkb_symbols "both_capslock" { +  include "shift(lshift_both_capslock)" +  include "shift(rshift_both_capslock)" +}; + +// When pressed alone, release Lock, whan pressed with another Shift key, set Lock. +partial modifier_keys +xkb_symbols "lshift_both_capslock_cancel" { +  key <LFSH> { +    type[Group1]="ALPHABETIC", +    symbols[Group1] = [ Shift_L,                       Caps_Lock                ], +    actions[Group1] = [ SetMods(modifiers=Shift),      LockMods(modifiers=Lock) ] +  }; +}; +// When pressed alone, release Lock, whan pressed with another Shift key, set Lock. +partial modifier_keys +xkb_symbols "rshift_both_capslock_cancel" { +  key <RTSH> { +    type[Group1]="ALPHABETIC", +    symbols[Group1] = [ Shift_R,                       Caps_Lock                ], +    actions[Group1] = [ SetMods(modifiers=Shift),      LockMods(modifiers=Lock) ] +  }; +}; +partial modifier_keys +xkb_symbols "both_capslock_cancel" { +  include "shift(lshift_both_capslock_cancel)" +  include "shift(rshift_both_capslock_cancel)" +}; + + +// When pressed together with another Shift key, lock/unlock Shift. +partial modifier_keys +xkb_symbols "lshift_both_shiftlock" { +  key <LFSH> { +    type[Group1]="TWO_LEVEL", +    symbols[Group1] = [ Shift_L,                       Shift_Lock ], +    actions[Group1] = [ SetMods(modifiers=Shift),      LockMods(modifiers=Shift) ] +  }; +}; +// When pressed together with another Shift key, lock/unlock Shift. +partial modifier_keys +xkb_symbols "rshift_both_shiftlock" { +  key <RTSH> { +    type[Group1]="TWO_LEVEL", +    symbols[Group1] = [ Shift_R,                       Shift_Lock ], +    actions[Group1] = [ SetMods(modifiers=Shift),      LockMods(modifiers=Shift) ] +  }; +}; +partial modifier_keys +xkb_symbols "both_shiftlock" { +  include "shift(lshift_both_shiftlock)" +  include "shift(rshift_both_shiftlock)" +}; diff --git a/linux/X/types/level5 b/linux/X/types/level5 new file mode 100644 index 0000000..7a03d1e --- /dev/null +++ b/linux/X/types/level5 @@ -0,0 +1,213 @@ +// $XKeyboardConfig$ +// $XFree86: xc/programs/xkbcomp/types/extra,v 1.3 2002/11/26 02:14:02 dawes Exp $ + +partial default xkb_types "default" { +    // Definition for a key type used for the czech keymap, for instance. +    // Defines style a with four level shift. It is similar to three_level +    // type used for iso9995 but it lets the shift key behave "normally". + +    virtual_modifiers LevelThree,ScrollLock,LevelFive; + +    type "EIGHT_LEVEL" { +        modifiers = Shift+LevelThree+LevelFive; +	map[None] = Level1; +	map[Shift] = Level2; +	map[LevelThree] = Level3; +	map[Shift+LevelThree] = Level4; +	map[LevelFive] = Level5; +	map[Shift+LevelFive] = Level6; +	map[LevelThree+LevelFive] = Level7; +	map[Shift+LevelThree+LevelFive] = Level8; +	level_name[Level1] = "Base"; +	level_name[Level2] = "Shift"; +	level_name[Level3] = "Alt Base";   +	level_name[Level4] = "Shift Alt";   +	level_name[Level5] = "X"; +	level_name[Level6] = "X Shift"; +	level_name[Level7] = "X Alt Base"; +	level_name[Level8] = "X Shift Alt"; +    }; + +    type "EIGHT_LEVEL_ALPHABETIC" { +	modifiers = Shift+Lock+LevelThree+LevelFive; +	map[None] = Level1; +	map[Shift] = Level2; +	map[Lock]  = Level2; +	map[LevelThree] = Level3; +	map[Shift+LevelThree] = Level4; +	map[Lock+LevelThree] =  Level4; +        map[Lock+Shift+LevelThree] = Level3; + +	map[LevelFive] = Level5; +	map[Shift+LevelFive] = Level6; +	map[Lock+LevelFive]  = Level6; +	map[LevelThree+LevelFive] = Level7; +	map[Shift+LevelThree+LevelFive] = Level8; +	map[Lock+LevelThree+LevelFive] =  Level8; +        map[Lock+Shift+LevelThree+LevelFive] = Level7; + +	level_name[Level1] = "Base"; +	level_name[Level2] = "Shift"; +	level_name[Level3] = "Alt Base"; +	level_name[Level4] = "Shift Alt"; +	level_name[Level5] = "X"; +	level_name[Level6] = "X Shift"; +	level_name[Level7] = "X Alt Base"; +	level_name[Level8] = "X Shift Alt"; +    }; + +    type "EIGHT_LEVEL_NEO_LOCKS" { +        // 'NumLock' is used for the (Neo-)Mod4-Lock. +        modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; + +        preserve[LevelFive+Shift] = Shift; +        preserve[NumLock+Shift] = Shift; +        preserve[Lock+LevelFive+Shift] = Shift; +        preserve[Lock+NumLock+Shift] = Shift; + +        map[None]                                    = Level1; +        map[Shift]                                   = Level2; +        map[LevelThree]                              = Level3; +        map[LevelThree+Shift]                        = Level4; + +        map[LevelFive]                               = Level5; +        map[LevelFive+Shift]                         = Level6; +        map[LevelFive+LevelThree]                    = Level7; +        map[LevelFive+LevelThree+Shift]              = Level8; + +        map[NumLock]                                 = Level5; +        map[NumLock+Shift]                           = Level6; +        map[NumLock+LevelThree]                      = Level7; +        map[NumLock+LevelThree+Shift]                = Level8; + +        map[NumLock+LevelFive]                       = Level1; +        map[NumLock+LevelFive+Shift]                 = Level2; +        map[NumLock+LevelFive+LevelThree]            = Level3; +        map[NumLock+LevelFive+LevelThree+Shift]      = Level4; + +        // Lock has no effect +        map[Lock]                                    = Level1; +        map[Lock+Shift]                              = Level2; +        map[Lock+LevelThree]                         = Level3; +        map[Lock+LevelThree+Shift]                   = Level4; + +        map[Lock+LevelFive]                          = Level5; +        map[Lock+LevelFive+Shift]                    = Level6; +        map[Lock+LevelFive+LevelThree]               = Level7; +        map[Lock+LevelFive+LevelThree+Shift]         = Level8; + +        map[Lock+NumLock]                            = Level5; +        map[Lock+NumLock+Shift]                      = Level6; +        map[Lock+NumLock+LevelThree]                 = Level7; +        map[Lock+NumLock+LevelThree+Shift]           = Level8; + +        map[Lock+NumLock+LevelFive]                  = Level1; +        map[Lock+NumLock+LevelFive+Shift]            = Level2; +        map[Lock+NumLock+LevelFive+LevelThree]       = Level3; +        map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4; + +        level_name[Level1] = "Neo Level1"; +        level_name[Level2] = "Neo Level2"; +        level_name[Level3] = "Neo Level3"; +        level_name[Level4] = "Neo Level5"; +        level_name[Level5] = "Neo Level4"; +        level_name[Level6] = "Neo Level4 Shift"; +        level_name[Level7] = "Neo Level6"; +        level_name[Level8] = "Neo Level6 Shift"; +    }; + +    type "EIGHT_LEVEL_NEO_LOCKS_QUARTERALPHABETIC" { +        // 'NumLock' is used for the (Neo-)Mod4-Lock. +        modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; + +        preserve[LevelFive+Shift] = Shift; +        preserve[NumLock+Shift] = Shift; +     +        map[None]                                    = Level1; +        map[Shift]                                   = Level2; +        map[LevelThree]                              = Level3; +        map[LevelThree+Shift]                        = Level4; + +        map[LevelFive]                               = Level5; +        map[LevelFive+Shift]                         = Level6; +        map[LevelFive+LevelThree]                    = Level7; +        map[LevelFive+LevelThree+Shift]              = Level8; + +        map[NumLock]                                 = Level5; +        map[NumLock+Shift]                           = Level6; +        map[NumLock+LevelThree]                      = Level7; +        map[NumLock+LevelThree+Shift]                = Level8; + +        map[NumLock+LevelFive]                       = Level1; +        map[NumLock+LevelFive+Shift]                 = Level2; +        map[NumLock+LevelFive+LevelThree]            = Level3; +        map[NumLock+LevelFive+LevelThree+Shift]      = Level4; + +        // Lock interchanges Level1 and Level2 +        map[Lock]                                    = Level2; +        map[Lock+Shift]                              = Level1; +        map[Lock+LevelThree]                         = Level3; +        map[Lock+LevelThree+Shift]                   = Level4; + +        map[Lock+LevelFive]                          = Level5; +        map[Lock+LevelFive+Shift]                    = Level6; +        map[Lock+LevelFive+LevelThree]               = Level7; +        map[Lock+LevelFive+LevelThree+Shift]         = Level8; + +        map[Lock+NumLock]                            = Level5; +        map[Lock+NumLock+Shift]                      = Level6; +        map[Lock+NumLock+LevelThree]                 = Level7; +        map[Lock+NumLock+LevelThree+Shift]           = Level8; + +        map[Lock+NumLock+LevelFive]                  = Level2; +        map[Lock+NumLock+LevelFive+Shift]            = Level1; +        map[Lock+NumLock+LevelFive+LevelThree]       = Level3; +        map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4; + +        level_name[Level1] = "Neo Level1"; +        level_name[Level2] = "Neo Level2"; +        level_name[Level3] = "Neo Level3"; +        level_name[Level4] = "Neo Level5"; +        level_name[Level5] = "Neo Level4"; +        level_name[Level6] = "Neo Level4 Shift"; +        level_name[Level7] = "Neo Level6"; +        level_name[Level8] = "Neo Level6 Shift"; +    }; + +    type "EIGHT_LEVEL_SEMIALPHABETIC" { +	modifiers = Shift+Lock+LevelThree+LevelFive; +	map[None] = Level1; +	map[Shift] = Level2; +	map[Lock]  = Level2; +	map[LevelThree] = Level3; +	map[Shift+LevelThree] = Level4; +	map[Lock+LevelThree] =  Level3; +        map[Lock+Shift+LevelThree] = Level4; + +	map[LevelFive] = Level5; +	map[Shift+LevelFive] = Level6; +	map[Lock+LevelFive]  = Level6; +	map[LevelThree+LevelFive] = Level7; +	map[Shift+LevelThree+LevelFive] = Level8; +	map[Lock+LevelThree+LevelFive] =  Level7; +        map[Lock+Shift+LevelThree+LevelFive] = Level8; + +	preserve[Lock+LevelThree] = Lock; +	preserve[Lock+Shift+LevelThree] = Lock; +	preserve[Lock+LevelFive] = Lock; +	preserve[Lock+Shift+LevelFive] = Lock; +	preserve[Lock+LevelThree+LevelFive] = Lock; +	preserve[Lock+Shift+LevelThree+LevelFive] = Lock; + +	level_name[Level1] = "Base"; +	level_name[Level2] = "Shift"; +	level_name[Level3] = "Alt Base"; +	level_name[Level4] = "Shift Alt"; +	level_name[Level5] = "X"; +	level_name[Level6] = "X Shift"; +	level_name[Level7] = "X Alt Base"; +	level_name[Level8] = "X Shift Alt"; +    }; + +}; + | 
