How can I make my Super keys (Windows Key) behave more like Ctrl/Alt/Shift in Linux

Posted by deltaray on Super User See other posts from Super User or by deltaray
Published on 2011-02-15T23:49:30Z Indexed on 2011/02/23 23:27 UTC
Read the original article Hit count: 216

Filed under:
|
|
|

After using the Ctrl + "arrow keys" for 13 years to switch virtual desktops in X windows, I've been convinced recently to change to using the Super keys instead (the windows key and the context menu key, which I've remapped). This all works fine for the most part. However, something is still picking up the key events that these keys are sending as if they are a normal alphanumeric like key.

For example, I first noticed this in Google Docs spreadsheet that if I press the windows key alone over top of a cell, that it starts editing that cell. It doesn't insert anything, it just sends a key event that Firefox sees and starts editing the cell. This caused problems on a collaborative document I was working on as the way Google docs works, it led to me accidentally erasing the data in a few fields before I realised what was going on.

I like using the super keys, but I want them to behave more like a Ctrl or Alt key does in that its a modifier key and doesn't send anything until a second key is pressed.

My setup is the following:

  • Ubuntu 10.10
  • XFCE 4
  • Microsoft Natural Ergo 4000 keyboard (with the logo scratched out)
  • The following is my .Xmodmap file:

remove Lock = Caps_Lock

keycode 66 = Escape

! The below maps my other windows context menu key.

keycode 135 = Super_R

Edit: As requested, here is the relevant output from xev for a keypress and keyrelease of my Super_L (left windows key)

KeyPress event, serial 34, synthetic NO, window 0x8200001,
    root 0x15d, subw 0x0, time 2428849342, (177,174), root:(182,228),
    state 0x10, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x8200001,
    root 0x15d, subw 0x0, time 2428849430, (177,174), root:(182,228),
    state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

© Super User or respective owner

Related posts about ubuntu

Related posts about keyboard