--- /dev/null
+// default_switch: set up windows keys for mode switching and the menu keys
+// to generate mod3
+partial modifier_keys
+xkb_symbols "default_switch" {
+ include "group(win_switch)"
+ replace key <MENU> {
+ [ Super_L, Super_R ]
+ };
+ modifier_map Mod3 { <MENU> };
+};
+
+// thinkpad_switch: on thinkpads, use the right control and alt keys as
+// substitute for the missing menu and windows keys
+partial modifier_keys
+xkb_symbols "thinkpad_switch" {
+ include "group(switch)"
+ replace key <RCTL> {
+ [ Super_L, Super_R ]
+ };
+ modifier_map Mod3 { <RCTL> };
+};
+
+// caps_mod4: make capslock generate the mod4 modifier
+partial modifier_keys
+xkb_symbols "caps_mod4" {
+ replace key <CAPS> {
+ [ Hyper_L, Hyper_R ]
+ };
+ modifier_map Mod4 { <CAPS> };
+};
+
+// group2_intl: my group2 map of international and other symbols
+partial modifier_keys alphanumeric_keys
+xkb_symbols "group2_intl" {
+ key <TLDE> {
+ symbols[Group2] = [ degree, infinity ]
+ };
+ key <AE01> {
+ symbols[Group2] = [ onequarter, oneeighth ]
+ };
+ key <AE02> {
+ symbols[Group2] = [ twosuperior, onehalf ]
+ };
+ key <AE03> {
+ symbols[Group2] = [ threesuperior, threequarters ]
+ };
+ key <AE04> {
+ symbols[Group2] = [ eacute, Eacute ]
+ };
+ key <AE05> {
+ symbols[Group2] = [ EuroSign, cent ]
+ };
+ key <AE06> {
+ symbols[Group2] = [ copyright, trademark ]
+ };
+ key <AE07> {
+ symbols[Group2] = [ yacute, Yacute ]
+ };
+ key <AE08> {
+ symbols[Group2] = [ uacute, Uacute ]
+ };
+ key <AE09> {
+ symbols[Group2] = [ iacute, Iacute ]
+ };
+ key <AE10> {
+ symbols[Group2] = [ oacute, Oacute ]
+ };
+ key <AE11> {
+ symbols[Group2] = [ endash, emdash ]
+ };
+ key <AE12> {
+ symbols[Group2] = [ approximate, plusminus ]
+ };
+ key <BKSP> {
+ symbols[Group2] = [ BackSpace, BackSpace ]
+ };
+ key <TAB> {
+ symbols[Group2] = [ Tab, Tab ]
+ };
+ key <AD01> {
+ symbols[Group2] = [ acircumflex, Acircumflex ]
+ };
+ key <AD02> {
+ symbols[Group2] = [ aacute, Aacute ]
+ };
+ key <AD03> {
+ symbols[Group2] = [ ediaeresis, Ediaeresis ]
+ };
+ key <AD04> {
+ symbols[Group2] = [ ecircumflex, Ecircumflex ]
+ };
+ key <AD05> {
+ symbols[Group2] = [ icircumflex, Icircumflex ]
+ };
+ key <AD06> {
+ symbols[Group2] = [ ydiaeresis, Ydiaeresis ]
+ };
+ key <AD07> {
+ symbols[Group2] = [ udiaeresis, Udiaeresis ]
+ };
+ key <AD08> {
+ symbols[Group2] = [ idiaeresis, Idiaeresis ]
+ };
+ key <AD09> {
+ symbols[Group2] = [ odiaeresis, Odiaeresis ]
+ };
+ key <AD10> {
+ symbols[Group2] = [ ocircumflex, Ocircumflex ]
+ };
+ key <AD11> {
+ symbols[Group2] = [ ae, AE ]
+ };
+ key <AD12> {
+ symbols[Group2] = [ oslash, Oslash ]
+ };
+ key <BKSL> {
+ symbols[Group2] = [ aring, Aring ]
+ };
+ key <AC01> {
+ symbols[Group2] = [ adiaeresis, Adiaeresis ]
+ };
+ key <AC02> {
+ symbols[Group2] = [ ssharp, section ]
+ };
+ key <AC03> {
+ symbols[Group2] = [ egrave, Egrave ]
+ };
+ key <AC04> {
+ symbols[Group2] = [ eth, Eth ]
+ };
+ key <AC05> {
+ symbols[Group2] = [ thorn, Thorn ]
+ };
+ key <AC06> {
+ symbols[Group2] = [ ucircumflex, Ucircumflex ]
+ };
+ key <AC07> {
+ symbols[Group2] = [ ugrave, Ugrave ]
+ };
+ key <AC08> {
+ symbols[Group2] = [ igrave, Igrave ]
+ };
+ key <AC09> {
+ symbols[Group2] = [ ograve, Ograve ]
+ };
+ key <AC10> {
+ symbols[Group2] = [ leftdoublequotemark, leftarrow ]
+ };
+ key <AC11> {
+ symbols[Group2] = [ rightdoublequotemark, rightarrow ]
+ };
+ key <RTRN> {
+ symbols[Group2] = [ Return, Return ]
+ };
+ key <AB01> {
+ symbols[Group2] = [ agrave, Agrave ]
+ };
+ key <AB02> {
+ symbols[Group2] = [ multiply, division ]
+ };
+ key <AB03> {
+ symbols[Group2] = [ ccedilla, Ccedilla ]
+ };
+ key <AB04> {
+ symbols[Group2] = [ atilde, Atilde ]
+ };
+ key <AB05> {
+ symbols[Group2] = [ otilde, Otilde ]
+ };
+ key <AB06> {
+ symbols[Group2] = [ ntilde, Ntilde ]
+ };
+ key <AB07> {
+ symbols[Group2] = [ mu, heart ]
+ };
+ key <AB08> {
+ symbols[Group2] = [ notsign, guillemotleft ]
+ };
+ key <AB09> {
+ symbols[Group2] = [ ellipsis, guillemotright ]
+ };
+ key <AB10> {
+ symbols[Group2] = [ exclamdown, questiondown ]
+ };
+};