Skip to content

Latest commit

 

History

History
78 lines (58 loc) · 2.81 KB

File metadata and controls

78 lines (58 loc) · 2.81 KB

Thinkpad Bluetooth Keyboard II - Driver patch for Linux 5.4

This repo contains my attempts to modify, compile and test a patch made by @ValdikSS for the kernel module hid-lenovo to solve weird behaviors of the Thinkpad Bluetooth Keyboard II in Linux kernel 5.4, compared to 5.10+ (the kernel version the patch is originally based upon), before migrating to 5.19 (not yet released).

The first version of the external Thinkpad Keyboard (Wired USB) works really good on Linux, but the second version (Wireless USB/BT) doesn't work very well on OS other than Windows. Thanks Lenovo...

I personally have noticed the following unbearable annoyances from day 1 using this keyboard on Linux:

  • No horizontal scrolling

    • I really use it while coding, designing and drawing.
  • Vertically scrolling with middle button + TrackPoint pastes whatever the clipboard is currently holding.

    • Scrolling through files of code is the most annoying thing, the keyboard is always pasting things and I find myself undoing those a lot, then falling back to mouse + scrollbar (eww!).
  • Vertically scrolling triggers a left-click.

    • This causes me to click on things I don't intend to more often than I can handle.
  • The toggle-mic-mute button does not work.

There's a few more annoyances, although I can bear with those since I don't use these features frequently:

  • Buttons to toggle Bluetooth (F10) and Wifi (F8, notification center in Winbloats) do not work.
  • Buttons Tools (F9), and Favorites (F12 ) do not work, but I don't use them at all.

My attempts are logged in shape of weird, maybe broken, commits. I won't even clear the history at this point. I want to track my progress.

Will update this README once I solve most of the unbearable annoyances on kernel 5.4

Final steps to apply the (modified) patch in kernel 5.4:

Compile the modified patched module with the also-modified make script:

./make.sh

Backup the unpatched modules

cp /lib/modules/5.4.0-26-generic/kernel/drivers/hid/hid-lenovo.ko hid-lenovo.ko.unpatched

Make patched module the default one

sudo cp -f /lib/modules/5.4.0-26-generic/extra/hid-lenovo.ko /lib/modules/5.4.0-26-generic/kernel/drivers/hid/hid-lenovo.ko

Reload the module

sudo rmmod hid-lenovo && sudo modprobe hid-lenovo

Make the module load automatically:

echo -e "\nhid-lenovo" | sudo tee -a /etc/modules-load.d/modules.conf