I'm playing around with keyboard settings, and wanted to remap my windows keys to tab, for convenience. So I tried (133 is the left super key on my keyboard)
xmodmap -e "keycode 133 = Tab Super_L"
but this didn't work, in that hitting the windows key still brings up the "windows" menu, and no tab is inserted. A few different variations on the same theme also didn't work, e.g. making the Tab happen on shift+super.
I'm using cinnamon (installed from a ppa on ubuntu 16.04) and lightdm, and I imagine that the windows/super key is being intercepted at a lower level, which xmodmap can't quite deal with…is there any way of achieving what I want? Answers not involving xmodmap are welcome!
(I'm far from an expert, so perhaps there's a very easy solution…)
Best Answer
Trying to understand what's happenning
If I type
xmodmap
without argument (to get modifier list), I get:The important part is for
mod4
. That's whereSuper_L
is.Now, I run :
xmodmap -e "keycode 133 = Tab Super_L" && xmodmap | grep mod4
, and I get:The
mod4
line changed and addedTab
. That's why your key133
still open the window menu.By the way, I'm trying this on
I3WM
so the results can be a bit different.For example, if I press the key
133
on a terminal or text editor, it both write a tab and becomes a modifier.I also noticed I don't have a different behavior with
Shift
because the type of the key isONE_LEVEL
.You can also run
xev | grep key
to see what happens with some key combinations.Solution
But
xmodmap
also tells you can't have more than 4 keys per modifier, so a solution (the only one that worked for me so far) is to sacrifice a key you don't use / don't have, make it become aSuper_L
.If you use
QWERTY
, you can modify the layout located on/usr/share/X11/xkb/symbols/us
(it's usually another file of the same folder if you're using another layout), and write:instead of (probably line 14 of the file)
Then, update your keyboard layout with
setxkbmap us && xmodmap | grep mod4
.You will get something like:
If you still get
Tab
, you should probably sacrifice another key. Note that0x85
is the hexadecimal value of133
, that mean this key will not be a directmod4
but it still can behave like window key ifShift
is pressed.