All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
   2 ! don't make anything but Control_[LR] generate control
 
   4 add Control  = Control_L
 
   6 !add Control  = Control_R
 
  13 ! we kill caps lock once and for all and make it generate mod5
 
  16 keycode 0x42 = Caps_Lock
 
  21 ! now for what had me so long baffled. any keycode can generate eight keysyms,
 
  22 ! but only the first four are used. and the way to index into them is by using
 
  23 ! Shift and Mode_switch. my keyboard had no Mode_switch, so I am using that
 
  27 ! now we assign the Mode_switch keysym to both Windoze keys
 
  28 keycode 0x73 = Mode_switch
 
  29 !keycode 0x74 = Mode_switch
 
  31 keycode 0x71 = Mode_switch
 
  33 ! ... and tell the Mode_switch keysym to generate the mod4 modifier.
 
  35 add Mod5     = Mode_switch
 
  37 ! assign Super_R to the Menu key
 
  38 keycode 0x75 = Super_R
 
  39 !right control on lapse
 
  40 keycode 0x6d = Super_R
 
  42 ! ... and make it generate the mod3 modifier
 
  47 ! and now all we need to do is add what we would like to the keys.
 
  48 ! if this approach doesn't work, you'll need to go via keycodes, e.g.:
 
  50 !   keycode 0x26 = a A adiaeresis Adiaeresis
 
  52 ! however, you'll have to check which keycode is generated by which keypress.
 
  53 ! use xev(1) for that.
 
  55 keysym backslash = backslash bar aring Aring
 
  56 keysym bracketleft = bracketleft braceleft ae AE
 
  57 keysym bracketright = bracketright braceright oslash Ooblique
 
  58 keysym comma = comma less notsign guillemotleft
 
  59 keysym equal = equal plus approximate plusminus
 
  60 keysym grave = grave asciitilde degree infinity
 
  61 keysym minus = minus underscore endash emdash
 
  62 keysym period = period greater ellipsis guillemotright
 
  63 keysym slash = slash question exclamdown questiondown
 
  64 keysym apostrophe = apostrophe quotedbl rightdoublequotemark rightarrow
 
  65 keysym semicolon = semicolon colon leftdoublequotemark leftarrow
 
  66 keysym 0 = 0 parenright oacute Oacute
 
  67 keysym 1 = 1 exclam onequarter oneeighth
 
  68 keysym 2 = 2 at twosuperior onehalf
 
  69 keysym 3 = 3 numbersign threesuperior threequarters
 
  70 keysym 4 = 4 dollar eacute Eacute
 
  71 keysym 5 = 5 percent EuroSign cent
 
  72 keysym 6 = 6 asciicircum copyright trademark
 
  73 keysym 7 = 7 ampersand yacute Yacute
 
  74 keysym 8 = 8 asterisk uacute Uacute
 
  75 keysym 9 = 9 parenleft iacute Iacute
 
  76 keysym a = a A adiaeresis Adiaeresis
 
  77 keysym b = b B otilde Otilde
 
  78 keysym c = c C ccedilla Ccedilla
 
  79 keysym d = d D egrave Egrave
 
  80 keysym e = e E ediaeresis Ediaeresis
 
  81 keysym f = f F eth Eth
 
  82 keysym g = g G thorn Thorn
 
  83 keysym h = h H ucircumflex Ucircumflex
 
  84 keysym i = i I idiaeresis Idiaeresis
 
  85 keysym j = j J ugrave Ugrave
 
  86 keysym k = k K igrave Igrave
 
  87 keysym l = l L ograve Ograve
 
  88 keysym m = m M mu heart
 
  89 keysym n = n N ntilde Ntilde
 
  90 keysym o = o O odiaeresis Odiaeresis
 
  91 keysym p = p P ocircumflex Ocircumflex
 
  92 keysym q = q Q acircumflex Acircumflex
 
  93 keysym r = r R ecircumflex Ecircumflex
 
  94 keysym s = s S ssharp section
 
  95 keysym t = t T icircumflex Icircumflex
 
  96 keysym u = u U udiaeresis Udiaeresis
 
  97 keysym v = v V atilde Atilde
 
  98 keysym w = w W aacute Aacute
 
  99 keysym x = x X multiply division
 
 100 keysym y = y Y ydiaeresis ydiaeresis
 
 101 keysym z = z Z agrave Agrave
 
 104 ! http://www.thinkwiki.org/wiki/Installing_OpenSUSE_10.0_on_a_ThinkPad_X41#Numlock_and_Browse_keys
 
 105 keycode  77 = Num_Lock
 
 106 keycode 233 = XF86Forward
 
 107 keycode 234 = XF86Back
 
 110 keycode 159 = XF86Excel