! ! don't make anything but Control_[LR] generate control clear Control add Control = Control_L !use for Mod3 on lapse !add Control = Control_R clear Mod1 add Mod1 = Alt_L add Mod1 = Meta_L ! ! we kill caps lock once and for all and make it generate mod5 ! clear Lock keycode 0x42 = Caps_Lock clear Mod4 add Mod4 = Caps_Lock ! ! now for what had me so long baffled. any keycode can generate eight keysyms, ! but only the first four are used. and the way to index into them is by using ! Shift and Mode_switch. my keyboard had no Mode_switch, so I am using that ! bloody Windoze key: ! ! now we assign the Mode_switch keysym to both Windoze keys keycode 0x73 = Mode_switch keycode 0x74 = Mode_switch !right alt on lapse keycode 0x71 = Mode_switch ! ... and tell the Mode_switch keysym to generate the mod4 modifier. clear Mod5 add Mod5 = Mode_switch ! assign Super_R to the Menu key keycode 0x75 = Super_R !right control on lapse keycode 0x6d = Super_R ! ... and make it generate the mod3 modifier clear Mod3 add Mod3 = Super_R ! ! and now all we need to do is add what we would like to the keys. ! if this approach doesn't work, you'll need to go via keycodes, e.g.: ! ! keycode 0x26 = a A adiaeresis Adiaeresis ! ! however, you'll have to check which keycode is generated by which keypress. ! use xev(1) for that. ! keysym backslash = backslash bar aring Aring keysym bracketleft = bracketleft braceleft ae AE keysym bracketright = bracketright braceright oslash Ooblique keysym comma = comma less notsign guillemotleft keysym equal = equal plus approximate plusminus keysym grave = grave asciitilde degree infinity keysym minus = minus underscore endash emdash keysym period = period greater ellipsis guillemotright keysym slash = slash question exclamdown questiondown keysym apostrophe = apostrophe quotedbl rightdoublequotemark rightarrow keysym semicolon = semicolon colon leftdoublequotemark leftarrow keysym 0 = 0 parenright oacute Oacute keysym 1 = 1 exclam onequarter oneeighth keysym 2 = 2 at twosuperior onehalf keysym 3 = 3 numbersign threesuperior threequarters keysym 4 = 4 dollar eacute Eacute keysym 5 = 5 percent EuroSign cent keysym 6 = 6 asciicircum copyright trademark keysym 7 = 7 ampersand yacute Yacute keysym 8 = 8 asterisk uacute Uacute keysym 9 = 9 parenleft iacute Iacute keysym a = a A adiaeresis Adiaeresis keysym b = b B otilde Otilde keysym c = c C ccedilla Ccedilla keysym d = d D egrave Egrave keysym e = e E ediaeresis Ediaeresis keysym f = f F eth Eth keysym g = g G thorn Thorn keysym h = h H ucircumflex Ucircumflex keysym i = i I idiaeresis Idiaeresis keysym j = j J ugrave Ugrave keysym k = k K igrave Igrave keysym l = l L ograve Ograve keysym m = m M mu heart keysym n = n N ntilde Ntilde keysym o = o O odiaeresis Odiaeresis keysym p = p P ocircumflex Ocircumflex keysym q = q Q acircumflex Acircumflex keysym r = r R ecircumflex Ecircumflex keysym s = s S ssharp section keysym t = t T icircumflex Icircumflex keysym u = u U udiaeresis Udiaeresis keysym v = v V atilde Atilde keysym w = w W aacute Aacute keysym x = x X multiply division keysym y = y Y ydiaeresis ydiaeresis keysym z = z Z agrave Agrave ! Thinkpad stuff ! http://www.thinkwiki.org/wiki/Installing_OpenSUSE_10.0_on_a_ThinkPad_X41#Numlock_and_Browse_keys keycode 77 = Num_Lock keycode 233 = XF86Forward keycode 234 = XF86Back ! the AccessIBM key keycode 159 = XF86Excel