Subpar touchpad

I’ve started exploring touchpad events at a low level, with an eye towards improving the quality of the Linux touchpad experience. This is a project I wrote over Thanksgiving to help me visualize what the kernel is communicating directly:

On my touchpad, I’m getting only x/y coordinates for each finger (no pressure, nor elliptical touch information):

I’m curious if this is because of the kernel driver that information is not present, or if it’s just not supported by the hardware.

I would have to assume that more information (like pressure and elliptical orientation) would bring more a higher fidelity experience with it.

3 Likes

Love framework love the company love what they’re doing but the touchpad is not great.

1 Like

I’d be curious to hear your experience. How do you come to the conclusion that the hardware is not great?

I ask because the research I’ve been doing lately using data directly from the Linux kernel seems to indicate that actually, the accuracy and resolution of the PixArt PCT3854QR touchpad are very high. There’s a possibility that palm detection is not great coming from the firmware–I’m still investigating. [Update: it turns out that a key remapper I had opted to use was neutring libinput’s “disable while typing” for touchpads!]

However, other “annoyances” I’ve had with the touchpad experience in Linux are happening higher up in the software stack. For example, two-finger scrolling is ALWAYS happening correctly from the data coming from the kernel, but occasionally X11 decides not to scroll for some reason. I suspect the heuristic regarding “two fingers in the same direction, while not intending to click” is subpar.

I’m curious about whether this is happening at the libinput level, or perhaps another part of the X11 / Wayland stack.

Here are some notes I’ve been taking on the “touchpad” stack in Linux:

How do Touchpad events go from physical movements to app events?

  1. Finger movements affect capacitive touch circuitry
  2. Firmware for PixArt PCT3854QR
    Yet to be open sourced by Framework?
  3. Kernel hid driver
    linux/drivers/hid/hid-core.c at master · torvalds/linux · GitHub
  4. Kernel hid-multitouch driver
    linux/drivers/hid/hid-multitouch.c at master · torvalds/linux · GitHub
  5. Multitouch events sent to /dev/input/event8
    (use udev to find out which file corresponds to the touchpad, e.g.:
    $ udevadm info --export-db | grep -5 ID_INPUT_TOUCHPAD=1
    … e.g.
    DEVNAME=/dev/input/event8)
  6. mtdev - type A to slotted type B protocol conversion
    mtdev
  7. libinput - “common denominator” for all touchpads
  8. X/Wayland
  9. GTK/KDE etc.
  10. Gesture detection (Touchegg, libinput-gestures, fusuma, gebaar)
  11. Application responds to touch events (movement, clicks, gestures etc.)

If anyone else is interested in learning and / or hardware hacking with me so we can improve the Linux experience on Framework, please DM me or [edit:] join the https://linuxtouchpad.org effort.

Here’s a video of cleartouch looking at kernel multitouch data:

11 Likes

I’ve been having troubles with the touchpad, too (Windows 11). I use an external mouse when I’m at my desk but I’ve been traveling this week and often using the touchpad while in beds or seats where a mouse would be awkward.

I had to disable three-point swipes because if I’m resting my (very small) hand on the edge of the computer it grazes the touchpad and registers as a finger touch, so I would try to scroll and my windows would go haywire.

I’m about to disable tap-to-click too because even though I’ve turned the sensitivity down as low as possible, I’m still getting accidental clicks all over the place when I’m just trying to move the mouse.

Is there any chance the latest set of drivers will help?

1 Like

This is a problem I have had with almost every Windows laptop trackpad forever. Not just random clicks while trying to use the mouse (some do this horrible, some not so much), but also random clicks while typing, which often causes frustration. It’s the main reason I hate the trend towards huge trackpads these days. It just guarantees you will accidentally hit it while typing or whatever. Some are a bit better than others, and maybe there are some out there that would manage to just not cause issues for me. But I’ve never had one that was 100% problem free for me. And one was so sensitive that I ended up abandoning an otherwise fantastic laptop.

So far I haven’t had issues like you are describing on my Framework, but I’m using Linux, not Windows. Plus it’s not my “daily driver” at this point.

If you are okay taking a separate pointing device, consider a trackball. I almost always use a trackball mouse. Chairs, cramped desk, my thigh while standing at a piece of equipment, wherever, it just works. It can just sit or be held in place and I use the trackball rather than having to slide the whole mouse around. I’ve been using a cheap, wireless, Logitech trackball for years. The AA battery lasts for months and I’ve gotten so used to it that I almost never miss a traditional mouse.

2 Likes

This is the worst I’ve had for clicking by accident while actually using the touchpad. I’ve had the issues while typing and such, too, but it seems like they’ve gotten better over time. My last two laptops were an XPS 15 and a Thinkpad W550s (both 2015 models) and neither of them gave me this much trouble.

Yeah, that can be super frustrating. Like I said, I literally got rid of a laptop due to an issue like that. I’d just be moving the cursor across a screen and it would randomly click or click-drag something and cause problems. Often it would close a window or program I was working on because I happened to drag the cursor past the “x”. Undo also became my best friend with that laptop whenever I was typing because there were so many times when I’d be typing and it would suddenly think I clicked a couple times and would therefore “select all.” And since I was still typing, it was all gone in a flash, replaced with the last few letters I typed.

Hopefully it’s just a driver issue and can get sorted out.

2 Likes

I have a T15 for work, I use the touchpad as much as I use the cursor. Never got into trackpoints.

I strongly suspect it’s mostly software issues that make it seem subpar.
For what it’s worth, under linux I’ve found the synaptics driver behavior is still far superior to libinput, even though configuration is relatively stone-aged.

On mint and probably ubuntu-likes:

apt install xserver-xorg-input-synaptics
cd /etc/X11; mkdir xorg.conf.d
cp -a /usr/share/X11/xorg.conf.d/70-*syn* xorg.conf.d/

…that file you then have to edit to add to Identifier "Default clickpad buttons" :

Option "SoftButtonAreas" "66% 0 82% 0 33% 66% 82% 0"

so that you have middle and right button along the bottom. Other fiddling is required if you want different config. The point though is that the feel is far superior. I’d be happy to be wrong as I hear libinput is where all the effort is focused, but I tried it and it felt like I was going back years.

1 Like

This seems like a good place to ask how do I get the thing to sense clicks? All it seems to sense is taps? If I turn that off it doesn’t do anything. Also is there a spec or operating document in english?

I know this thread is ancient but I too find the touchpad to be awful. It’s so bad I can barely use it and have to use a mouse 100% of the time. it seems like it only registers right clicks. if I use two hands with left index finger on the bottom left I can sort of use it.

+1 to this.

I was curious about Framework laptops and wondered if they had finally solved the whole bad touchpad problem that all Windows/Linux laptops have always suffered.

My checklist for the touchpad/trackpad of a laptop before I buy it is this:

  • It has to let me click from anywhere on the touchpad with equal pressure
  • It has to let me customize how much pressure I need to use to click (I like it very, very, very sensitive)
  • It has to let me drag and drop using 3-fingers without physically clicking in just like the MacOS 3-finger drag and drop accessibility feature. I just put the mouse pointer in the ride spot, make contact with 3 fingers, drag, and release.
  • It has to let me disable the double-tap-and-drag feature because this causes every single single tap to be delayed just in case I double tap to drag. And yes, I interchangeably tap and push to click on my MacBook laptops, depending on my mood or the type of task.

I don’t care how accurate the touchpad is. I just want a touchpad that doesn’t cause me physical pain to use after a while.

4 Likes

I got a Framework 12th gen and can confirm that, at least on Ubuntu, the touchpad is still pretty bad compared to Apple. I’m training myself to use it, but a week in and I still do a lot of accidental dragging. I’ve unintentionally moved a folder into another folder several times in Thunderbird, for example.

Can some of this be solved in software? I hope so.

1 Like

Can be solved in humanware…don’t touch the touchpad when you don’t need to. This is regardless of whether the touchpad is from Apple or not.

1 Like

I think the accidental dragging I encountered was due to Ubuntu’s default behavior to initiate a drag on a double-tap. If you prefer using physical clicks with the thumb to initiate drags with the index finger, you can disable double-tap dragging via

gsettings set org.gnome.desktop.peripherals.touchpad tap-and-drag false

I’m still encountering a subtle issue in the other direction: if you like the thumb-physical-click/index-finger-drag combination, you probably like initiating the drag almost concurrently with the click. On macOS, this works fine. In Ubuntu, it seems like there needs to be a slight delay between the thumb click and the index-finger drag. I haven’t investigated a solution to this yet besides waiting to drag. Not the end of the world, but it makes the gesture slower.

If they ever release an updated touchpad that actually has all the things you mentioned I would buy it immediately.

I recently had the opportunity to use a FrameWork and while the touchpad is not too bad, “Not too bad” is the best compliment I can make. It works less badly than my thinkpad t410s but it is also less customizable (the framework for example doesn’t offer at all to tune how fast orizontal scrolling should be).

When comparing the framework, with a macbook pro 15 from 2015 and the t410s, the framework’s touchpad still feels closer to the t410s than the macbook. And that mac will soon be 9 years old.

Side note I actually love just resting 3 fingers on the touchpad to then swiftly select text with 3 fingers and the slightest touch. I also tend to set the click pressure of the mac to the lightest click possible and therefore most windows touchpads feel like I’m punching the touchpad to make it click.