NixOS / nixos-hardware

A collection of NixOS modules covering hardware quirks.
Creative Commons Zero v1.0 Universal
2.08k stars 646 forks source link

Thinkpad trackpoint config optimization (plus possible bug?) #56

Open jcrben opened 6 years ago

jcrben commented 6 years ago

I don't have a lot of experience with trackpoints, but coming from a mac I couldn't get the touchpad into a shape where I felt comfortable so I turned it off and rely on the trackpoint entirely.

Optimal configuration (1) is there a consensus that the default trackpoint config is good? In https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/tasks/trackpoint.nix I can see that the default sensitivity is 128 and the default speed is 97. The Lenovo configs in this repo don't configure that.

I found that my finger started to hurt and the trackpoint seems to require a lot of pressure. I'm running libinput 1.9.4. Lots of users online say that the Linux Thinkpad trackpoints are not ideal - see a bunch of threads https://www.reddit.com/r/thinkpad/search?q=trackpoint+linux&restrict_sr=on&include_over_18=on

I bumped mine to 255 for speed and sensitivity in hardware-configuration.nix - but it didn't seem to be noticeable. cat /sys/devices/platform/i8042/serio1/serio2/{speed,sensitivity} showed the same values even after reboot. echo 255 | sudo tee /sys/devices/platform/i8042/serio1/serio2/speed" from the same thread clearly increased the speed, but did not persist on reboot. Is anyone else seeing this bug, or is it user error? I confirmed that the proper value was set with nixos-option hardware.trackpoint.speed.

In a thread from last week https://www.reddit.com/r/thinkpad/comments/8ea9eh/how_to_make_touchpad_and_trackpoint_work_nicely/ people suggest libinput 1.10.0 so I added the unstable nixos channel and just tried it (using nixos-rebuild test). Don't notice much different so far.

Other problems - hardware, worn out rubber, skill, expectations Aside from configuration, I imagine that thinkpads have varying trackpoint hardware? Possibly different ideal sensitivities apply.

I'm hoping that I'll just get better with a trackpoint over time and it will be less painful.

I'm using a slightly worn trackpoint so I have fresh ones on the way https://www.amazon.com/gp/product/B072PQ7NT3/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1

Anyone out there super-happy with their trackpoints speed / sensitivity?

Other workarounds: I end up relying even more heavily on vimium in chromium and vim mode in editors since scrolling is so painful.

joepie91 commented 6 years ago

I have a shell script that does echo "240" > /sys/bus/serio/devices/serio2/sensitivity, but it seems I need to rerun it most of the time after I unsuspend. I have no idea how to set that up declaratively. It works pretty well, although not quite as good as the configuration I had on my default Windows install.

EDIT: For clarity, I use a Thinkpad x270. I've also found that the rubber cap is wearing out real quick on the top half, far quicker than older Thinkpads it seems. Only had the system for a few months and already almost all of the texture of the top half is gone.

joepie91 commented 6 years ago

Incidentally, replacement caps can be gotten much cheaper on eg. AliExpress if you're willing to wait a few weeks for them; for example, see this listing.

jcrben commented 6 years ago

fyi, the libinput trackpoint code is being actively worked on - recent bugs filed include https://bugs.freedesktop.org/show_bug.cgi?id=106448 and https://bugs.freedesktop.org/show_bug.cgi?id=106141 and lots of discussion of the challenges in different hardware at https://bugs.freedesktop.org/show_bug.cgi?id=98839. kernel code is around https://github.com/torvalds/linux/tree/master/drivers/input/mouse (e.g. https://github.com/torvalds/linux/blob/master/drivers/input/mouse/trackpoint.c)

I'm currently on nixos-unstable and doing a rebuild on 1.10.5, but it's taking a long time..

noticed that some trackpoint configurations got added for 440s and 450s but no 460s (https://github.com/wayland-project/libinput/blob/93dfd0fa548e4daf43f06c5a04c35bc3fcf8b1be/udev/90-libinput-model-quirks.hwdb) - not sure why. will be continuing to investigate...

This discussion https://lists.freedesktop.org/archives/wayland-devel/2018-March/037477.html is interesting - couple months ago the maintainer of libinput said thinkpad 80 series users are SOL (Sadly out of luck): "Lenovo decided to mess with us again, so the whole 80 series is a bit of a mess"

jcrben commented 6 years ago

Seems like echo 255 | sudo tee /sys/devices/platform/i8042/serio1/serio2/speed isn't working for libinput 1.10.5