I use a Lenovo ThinkPad (X220i) and like all ThinkPad users, I swapped "control" and "function" in the BIOS. Now I bought an external USB keyboard by Lenovo with a similar keyboard layout as the internal one, but unfortunately, "control" and "function" are swapped only on the internal, but not the external keyboard. Can this be fixed somehow? Maybe using setxkbmap or xmodmap? I'm running Debian 9 (stretch) btw. if this matters.
- 191
3 Answers
As of September 2020, swapping Ctrl and Fn is now possible without the hardware modifications described by Martin.
Instructions can be found here, courtesy of the OP, I will recount them for completeness:
- Download the firmware updater from Lenovo, version 3.30 (the latest as of September 2020)
- In a hex editor, change byte
0x74004from0xbato0xf5and byte0x740BAfrom0xf5to0xba. - Run the updater and flash the firmware to your keyboard.
This applies only to the USB version of the old TrackPoint Keyboard, called "ThinkPad Compact USB Keyboard with TrackPoint". It does not apply to the new "TrackPoint Keyboard II". Do this at your own risk.
- 256
Answering my own question:
Thanks to Lenovo forum user blackdot54 from Canada, there is a hardware modding solution, that works well for me:
You need
- conductive silver paint and a very fine brush
- a sharp cutter
- adhesive tape
- a small flathead screwdriver
- optional: Ohmmeter, Q tips
- mandatory: a little bit of serenity and a steady hand
Looks difficult on the photos, but it's not that hard.
maybe you dont need to return the keyboard...
you can try,
xev
then carefully and logically, press the ctrl and then Fn keys.
and take note of the output when you press the ctrl and then Fn keys.
and then run the following commands: (worked for me SHOULD be the same for you )
xmodmap -e "keycode 151 = Control_L" ( changes Fn key to Ctrl func. )
xmodmap -e "keycode 37 = XF86WakeUp" (changes Ctrl key to Fn func. )
Hopefully it will help you, of course, if not, revert these back to the original settings
- 504