short story: there is no “Menu” key on the t440 keyboard, (it does the same as clicking r-mouse-button, trackpad buttons can be cumbersome)

hostnamectl; # tested on
  Operating System: Debian GNU/Linux 9 (stretch)
            Kernel: Linux 4.9.0-14-amd64
      Architecture: x86-64

xev; # little tool that gives keycode for key pressed

# keycode of right-shift: (seldom/never used)
keycode 62

KeyRelease event, serial 37, synthetic NO, window 0x4200001,
    root 0xe0, subw 0x0, time 14233432, (-29,144), root:(673,513),
    state 0x11, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

# what keycode does the (r-mouse-button-klick-key)
xmodmap -pk|grep Menu
    135    	0xff67 (Menu)	0x0000 (NoSymbol)	0xff67 (Menu)	

# try to swap the keys
xmodmap -e "keycode 62 = Menu"

it is a per-user setting, so it needs to set as the uesr running the desktop gui (xserver)

to apply it system wide one can put it in last line of bash.bashrc

there seems to be some strange bug or feature that makes a sleep 4 delay (delays & timeouts are almost always bad workaround) necessary to apply the keyboard setting

su - root;
echo "sleep 4 && \$(xmodmap -e \"keycode 62 = Menu\") &" >> /etc/bash.bashrc

long story:

anyone who tried to use keyboard on a different computer in a different language quickly will have made the experience: it’s almost impossible.

except for space and enter, the keyboards are not very similar in layout and keymapping and using a laptop with foreign language keyboard layout is almost impossible without stickers to tape over the keys.

there are actually some keyboard standards:

spacebar, enter button, all a given… but anything else does not seem to be very standardized like the position of buttons.

every vendor seems to make their own keyboard layout, even different from models to model.

guess lenovo thought the r-click-mouse-button key is not used a lot, so there is NONE on t440 keyboard, so above is the fix 🙂

 

admin