Heyas! I worked on a touch screen driver, related but obviously not the same thing.
So, consumer hardware, end to end control over every part. This gave us the chance to calibrate our driver to our specific hardware.
Originally myself and another engineer worked on making the touch screen driver work, and it was "ok". After awhile, we did a complete rewrite, and another couple amazing engineers joined in, and it became "pretty good." We had some fancy state machine for gesture detection, and the code was about as good as we were going to be to make it.
Then a team of experts came in and threw a bunch of math and ML at the problem to make the experience amazing. ML was used to fix up gestures so they actually worked properly, reduce latency (motion prediction!), and fix jitter, because touch screens are inherently analog devices and therefore noisy as heck.
Could the two of us on our own have made an amazing touch screen experience? Heck no. No matter how many hours we put into it, we were never going to be able to match what that team of dedicated engineers brought to the table.
And besides that, building an ML model up for the exact hardware we used is something that you just can't do when writing a generic driver that has to work all over the place.
There is a reason Apple gets a better UX out of a hardware stack they own end to end.
> I worked on a touch screen driver (...) consumer hardware, end to end control over every part
But not for which os/kernel ? Was this for a pos-terminal or some similar hw/software bundle with a touch screen - or more like the driver for ipads?
Embedded is awesome, more so if you get to write your own mini-OS from the ground up. 100% recommend it!
That’s what I thought too until I actually started trying to solve the problem. Could you offer a more specific prescription for how you would go about taking the touchpad experience of ChromeOS and getting it shipped in a Linux context, if you were running this project? You seem baffled that this has not been solved yet, which makes me wonder if you know something that we don’t about the specifics of how Google’s source for ChromeOS touchpad could be trivially co-opted?
I use a Magic Trackpad 2 connected to my Linux Dell (work laptop) and it's great. Indistinguishable from using the same device connected to my macOS Macbook (personal laptop).
I do use Touchegg for multitouch on Linux, but the responsiveness & behaviour hasn't changed otherwise with/without Touchegg installed so it's not that piece of software that's improving things. Also, the built-in touchpad on the Dell is ok-ish, but definitively inferior.
It's so much better on Windows. This is a software problem, and right now the Linux ecosystem is doing a pretty poor job.
Though I haven't tried many others in the past 5 years.
Maybe the HP14 was not quite as great as the rest although I think it was fine, while the Pixel experience was exceptional. I don't think it's a matter of a specific one, I think it's generally across the board a very solid to good experience.
I don't code an awful lot but I don't find reaching for the mouse a productivity issue. Also the different motions are good at using the hand/arm muscles in more diverse ways.
However whatever works best for each of course. I love this about open source, everyone can pick what works best for them.