partial default alphanumeric_keys 
xkb_symbols "basic" {

    include "latin"

    // Alphanumeric section
    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 <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_Sundeadkeys" {
    // modify the basic Swiss German layout to use Sun dead keys
    include "ch(basic)"
    key <AE11> { [      apostrophe,    question,  dead_acute   ] };
    key <AE12> { [    dead_circumflex, dead_grave,  dead_tilde   ] };
    key <AD12> { [ dead_diaeresis,      exclam, bracketright   ] };
};

partial alphanumeric_keys 
xkb_symbols "de_sundeadkeys" {
    include "ch(de_Sundeadkeys)"
    name[Group1]= "German (Switzerland, Sun dead keys)";
};

partial alphanumeric_keys 
xkb_symbols "de_nodeadkeys" {
    // modify the basic Swiss German layout not to have any dead keys
    include "ch(basic)"
    name[Group1]= "German (Switzerland, eliminate dead keys)";
    key <AE11> { [  apostrophe, question,        acute  ] };
    key <AE12> { [ asciicircum,    grave,   asciitilde  ] };
    key <AD12> { [   diaeresis,   exclam, bracketright  ] };
};

partial alphanumeric_keys 
xkb_symbols "fr" {

    // Describes the differences between a very simple US/ASCII
    // keyboard and a very simple Swiss/French keybaord

    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_Sundeadkeys" {
    // modify the basic Swiss French layout to use Sun dead keys
    include "ch(fr)"
    key <AE11> { [      apostrophe,    question,  dead_acute   ] };
    key <AE12> { [    dead_circumflex, dead_grave,  dead_tilde   ] };
    key <AD12> { [ dead_diaeresis,      exclam, bracketright   ] };
};

partial alphanumeric_keys
xkb_symbols "fr_sundeadkeys" {
    include "ch(fr_Sundeadkeys)"
    name[Group1]= "French (Switzerland, Sun dead keys)";
};

partial alphanumeric_keys
xkb_symbols "fr_nodeadkeys" {
    // modify the basic Swiss French layout not to have any dead keys
    include "ch(fr)"
    name[Group1]= "French (Switzerland, eliminate dead keys)";
    key <AE11> { [  apostrophe, question,        acute  ] };
    key <AE12> { [ asciicircum,    grave,   asciitilde  ] };
    key <AD12> { [   diaeresis,   exclam, bracketright  ] };
};

// Copied from macintosh_vndr/ch
// 03.01.2003
// Andreas Tobler <a.tobler@schweiz.ch>
// modified for Swiss German Apple Extended Keyboard II

partial alphanumeric_keys
xkb_symbols "de_mac" {
    
    name[Group1]= "German (Switzerland, Macintosh)";

    // Alphanumeric section

    key <AE01> { [	1,	plus, 	plusminus,	infinity		]	};
    key <AE02> { [	2,	quotedbl, leftdoublequotemark, rightdoublequotemark 	]	};
    key <AE03> { [	3,	asterisk, 	numbersign,	leftcaret	]	};
					// not displayed here
    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, 	NoSymbol		]	};
    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,		Ooblique		]	};
    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, 	NoSymbol		]	}; 
					// ligature fl
    key <AC03> { [ 	d,	D, 	Greek_sigma,	NoSymbol		]	};
			// partialderivative is not available here att
    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 <AB01> { [	y,	Y, 	yen,		Ydiaeresis		]	};
    key <AB02> { [ 	x,	X, 	similarequal,	trademark		]	};
    key <AB03> { [ 	c,	C, 	copyright,	NoSymbol		]	};
    key <AB04> { [ 	v,	V, 	radical,	diamond			]	};
    key <AB05> { [ 	b,	B, 	integral,	NoSymbol		]	};  
    key <AB06> { [ 	n,	N, 	dead_tilde, 	enopencircbullet	]       };
					// to be fixed att
    key <AB07> { [ 	m,	M, 	mu,		dead_abovering		]       };
					// not sure att
    key <AB08> { [	comma,	semicolon, 	guillemotleft,	guillemotright	]	};
    key <AB09> { [	period,	colon, 	ellipsis,	division		]	};
    key <AB10> { [	minus,	underscore, 	hyphen,		emdash		]	};
    key <TLDE> { [	section,	degree,   	NoSymbol, 	NoSymbol		]	};
			// ligature fi	// per mille
    key <SPCE> { [	space, 	nobreakspace,	nobreakspace		]	};
    key <LSGT> { [	less,	greater, 	lessthanequal,	greaterthanequal	]  	};
    key <BKSL> { [	dollar,	sterling, 	paragraph,	enfilledcircbullet	]	};

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

partial alphanumeric_keys 
xkb_symbols "fr_mac" {

    // Describes the differences between a very simple US/ASCII
    // keyboard and a very simple Swiss/French keybaord

    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		]
    };
};