// Keyboard layouts for Switzerland.

default partial alphanumeric_keys
xkb_symbols "basic" {

    include "latin"

    name[Group1]= "German (Switzerland)";

    key <TLDE>	{[    section,     degree                           ]};
    key <AE01>	{[          1,       plus,          bar, exclamdown ]};
    key <AE02>	{[          2,   quotedbl,           at,  oneeighth ]};
    key <AE03>	{[          3,   asterisk,   numbersign             ]};
    key <AE04>	{[          4,   ccedilla                           ]};
    key <AE05>	{[          5,    percent                           ]};
    key <AE06>	{[          6,  ampersand,      notsign             ]};
    key <AE07>	{[          7,      slash,          bar             ]};
    key <AE08>	{[          8,  parenleft,         cent             ]};
    key <AE09>	{[          9, parenright                           ]};
    key <AE10>	{[          0,      equal                           ]};
    key <AE11>	{[ apostrophe,   question,   dead_acute             ]};
    key <AE12>	{[ dead_circumflex, dead_grave, dead_tilde          ]};

    key <AD03>	{[          e,          E,     EuroSign             ]};
    key <AD06>	{[          z,          Z                           ]};
    key <AD09>	{[          o,          O,           oe,         OE ]};
    key <AD11>	{[ udiaeresis,     egrave,  bracketleft             ]};
    key <AD12>	{[ dead_diaeresis, exclam, bracketright             ]};

    key <AC10>	{[ odiaeresis,     eacute                           ]};
    key <AC11>	{[ adiaeresis,     agrave,    braceleft             ]};
    key <BKSL>	{[     dollar,   sterling,   braceright             ]};

    key <LSGT>	{[       less,    greater,    backslash,  brokenbar ]};
    key <AB01>	{[          y,          Y                           ]};
    key <AB08>	{[      comma,  semicolon                           ]};
    key <AB09>	{[     period,      colon                           ]};
    key <AB10>	{[      minus, underscore                           ]};

    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "legacy" {

    include "ch(basic)"

    name[Group1]= "German (Switzerland, legacy)";

    key <AE07>	{[          7,      slash,    brokenbar             ]};
};

partial alphanumeric_keys
xkb_symbols "de" {
    include "ch(basic)"
};

partial alphanumeric_keys
xkb_symbols "de_nodeadkeys" {

    include "ch(basic)"

    name[Group1]= "German (Switzerland, no dead keys)";

    key <AE11>	{[  apostrophe,  question,        acute ]};
    key <AE12>	{[ asciicircum,     grave,   asciitilde ]};
    key <AD12>	{[   diaeresis,    exclam, bracketright ]};
};

partial alphanumeric_keys
xkb_symbols "fr" {

    include "ch(basic)"

    name[Group1]= "French (Switzerland)";

    override key <AD11> {[ egrave,	udiaeresis,	bracketleft	]};
    override key <AC10> {[ eacute,	odiaeresis			]};
    override key <AC11> {[ agrave,	adiaeresis,	braceleft	]};
};

partial alphanumeric_keys
xkb_symbols "fr_nodeadkeys" {

    include "ch(fr)"

    name[Group1]= "French (Switzerland, no dead keys)";

    key <AE11>	{[  apostrophe, question,        acute  ]};
    key <AE12>	{[ asciicircum,    grave,   asciitilde  ]};
    key <AD12>	{[   diaeresis,   exclam, bracketright  ]};
};

// Layout for a Swiss German Apple Extended Keyboard II.
// Original author: Andreas Tobler <a.tobler@schweiz.ch>, 2000, 2003.
partial alphanumeric_keys
xkb_symbols "de_mac" {

    name[Group1]= "German (Switzerland, Macintosh)";

    key <TLDE>	{[section,	degree,		UFB01,		permille	]}; // ﬁ
    key <AE01>	{[	1,	plus,		plusminus,	infinity	]};
    key <AE02>	{[	2,	quotedbl, leftdoublequotemark, rightdoublequotemark ]};
    key <AE03>	{[	3,	asterisk,	numbersign,	less		]};
    key <AE04>	{[	4,	ccedilla,	Ccedilla,	slash		]};
    key <AE05>	{[	5,	percent,	bracketleft			]};
    key <AE06>	{[	6,	ampersand,	bracketright			]};
    key <AE07>	{[	7,	slash,		bar,		backslash	]};
    key <AE08>	{[	8,	parenleft,	braceleft,	Ograve		]};
    key <AE09>	{[	9,	parenright,	braceright,	Ocircumflex	]};
    key <AE10>	{[	0,	equal,		notequal,	Uacute		]};
    key <AE11>	{[ apostrophe,	question,	questiondown			]};
    key <AE12>	{[ dead_circumflex, dead_grave,	dead_acute,	asciicircum	]};

    key <AD01>	{[	q,	Q,	oe,		OE			]};
    key <AD02>	{[	w,	W,	Greek_SIGMA,	Aacute			]};
    key <AD03>	{[	e,	E,	EuroSign,	Ediaeresis		]};
    key <AD04>	{[	r,	R,	registered,	Egrave			]};
    key <AD05>	{[	t,	T,	dagger,		Icircumflex		]};
    key <AD06>	{[	z,	Z,	Greek_OMEGA,	Iacute			]};
    key <AD07>	{[	u,	U,	degree,		Ugrave			]};
    key <AD08>	{[	i,	I,	exclamdown,	idotless		]};
    key <AD09>	{[	o,	O,	oslash,		Oslash			]};
    key <AD10>	{[	p,	P,	Greek_pi,	Greek_PI		]};
    key <AD11>	{[ udiaeresis, egrave,	section,	ydiaeresis		]};
    key <AD12>	{[ dead_diaeresis, exclam, grave,	apostrophe		]};

    key <AC01>	{[	a,	A,	aring,		Aring			]};
    key <AC02>	{[	s,	S,	ssharp,		U1E9E			]}; // ẞ -- ought to be: ligature fl -- tobler
    key <AC03>	{[	d,	D,	Greek_sigma,	partialderivative	]};
    key <AC04>	{[	f,	F,	function,	doubledagger		]};
    key <AC05>	{[	g,	G,	at,		comma			]};
    key <AC06>	{[	h,	H,	ordfeminine,	periodcentered		]};
    key <AC07>	{[	j,	J,	masculine,	eth			]};
    key <AC08>	{[	k,	K,	Greek_DELTA,	macron			]};
    key <AC09>	{[	l,	L,	notsign,	caret			]};
    key <AC10>	{[ odiaeresis,	eacute,	cent,		breve			]};
    key <AC11>	{[ adiaeresis,	agrave,	ae,		AE			]};
    key <BKSL>	{[ dollar, sterling,	paragraph,	enfilledcircbullet	]};

    key <LSGT>	{[   less,  greater,	lessthanequal,	greaterthanequal	]};
    key <AB01>	{[	y,	Y,	yen,		Ydiaeresis		]};
    key <AB02>	{[	x,	X,	similarequal,	trademark		]};
    key <AB03>	{[	c,	C,	copyright				]};
    key <AB04>	{[	v,	V,	radical,	diamond			]};
    key <AB05>	{[	b,	B,	integral				]};
    key <AB06>	{[	n,	N,	dead_tilde,	enopencircbullet	]};
							// to be fixed -- tobler
    key <AB07>	{[	m,	M,	mu,		dead_abovering		]};
							// not sure -- tobler
    key <AB08>	{[  comma,  semicolon,	guillemotleft,	guillemotright		]};
    key <AB09>	{[ period,	colon,	ellipsis,	division		]};
    key <AB10>	{[  minus, underscore,	hyphen,		emdash			]};

    key <SPCE>	{[  space, nobreakspace, nobreakspace				]};

    include "kpdl(comma)"
    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "fr_mac" {

    include "ch(de_mac)"

    name[Group1]= "French (Switzerland, Macintosh)";

    override key <AD11> {[ egrave,	udiaeresis,  bracketleft	]};
    override key <AC10> {[ eacute,	odiaeresis			]};
    override key <AC11> {[ agrave,	adiaeresis,   braceleft		]};
};


// EXTRAS:

partial alphanumeric_keys
	xkb_symbols "sun_type6_de" {
	include "sun_vndr/ch(sun_type6_de)"
};

partial alphanumeric_keys
	xkb_symbols "sun_type6_fr" {
	include "sun_vndr/ch(sun_type6_fr)"
};
