
Linux touchpad like a Macbook: progress and a call for help - wbharding
https://public.amplenote.com/4wdQRLmYVU6wAHo1V9yKgaJK
======
jimrandomh
Apple has put a lot of work and polish into its touchpad drivers, and it makes
a huge difference; it's probably the largest single differentiator Macbooks
have over other manufacturers. Part of it is latency (which will probably also
require some work on the graphics stack), part of it is handling all the
corner cases correctly. (Improving latency probably also requires some work on
the graphics stack, not just the touchpad drivers.)

A simple test which Macbooks pass, but Windows and Linux laptops fail: fling
scroll down a web page, then press Cmd/Ctrl+W to close the tab before the
fling scroll has stopped moving. On Macs this works correctly; everywhere
else, it acts as though you're spinning an old-style wheel mouse while holding
Ctrl, and zooms in repeatedly.

~~~
ak217
I agree 100%, and I also think Force Touch doesn't get the attention it
deserves. To me the 2015 Macbook Pro is the pinnacle of laptop engineering
because it added the Force Touch touchpad. Being able to click anywhere on the
pad and configure the strength of the haptic feedback is huge. Not having
haptic feedback, or having to use a separate button, or having it vary from
top to bottom depending on how far I am from the hinge, is no longer
acceptable to me.

Without Force Touch-like trackpad hardware, other laptops are still too far
behind.

~~~
megy
Force touch is so good I had to switch the laptop off to convince myself it
wasn't actually moving.

~~~
barrkel
It definitely moves - the whole pad is kind of springy - it just doesn't tap
back with an impulse without power.

~~~
leokennis
On the > 2015 MacBooks the touchpad definitely does not move when powered off.
It’s just a piece of glass.

~~~
barrkel
I can only speak for my mid-2015 15" Retina MacBook Pro, and the whole pad is
clearly flexible and very slightly sprung (and yes, it's made of glass - thin
glass is quite flexible). You can see it flex and bend by looking across it
while deflecting it - it's most easily seen by looking at the gap around the
edge of the pad, between the pad and the laptop casing, while deflecting it
close to the edge. The gap varies as the pad is deflected.

What it doesn't do is haptic feedback when it's turned off. There's no click.
I infer that's because the click works by applying a mechanical kick back
close to the point of deflection. Your finger wouldn't feel it as a click if
there was no mechanical movement at all. A bit like a speaker: speakers are
mechanical devices too.

[https://ifixit.org/blog/7084/force-touch-track-
pad/](https://ifixit.org/blog/7084/force-touch-track-pad/)

> _we’re pretty sure the magic pressure sensors in the new Force Touch
> trackpad are tiny strain gauges. Mounted on flexing metal supports, they
> detect the amount of flex on each—and based on that, the force from above._

Flexing = movement.

------
wbharding
Wow, this community is so good. Three hours after posting and I've already got
a few interested emails from experienced devs looking to lend a hand here. So,
it _looks_ like we should have the opp to move forward with something in the
weeks to come. Would still be nice to get a couple more emails from knowledge-
heavy Linux devs, since that's not a strength of mine. (bill -at-
staticobject.com)

I also haven't heard from anyone with connections to OSS projects at
Google/MS. I've assumed (perhaps incorrectly) there are departments at smart
tech cos that selectively contribute to high impact OSS projects (dev
resources or other)? Even if not for contributing resources, would be valuable
to get a bit of talk time from those that have successfully executed a project
like this before.

~~~
joe_the_user
Hi,

Thank you for your efforts. Could you explain what exactly is better about the
MacOS touchpad?

Just to warn I've used Linux on a cheap PC notebook for the last ten years. I
have only very occasionally used a macbook and generally found the touchpad
unpleasant due a relatively slow movement (which also might make it more
accurate but still doesn't enthrall me). I never particularly had a problem
with the touchpad until recently - the current drivers get the location "lost"
and needs a reboot about once a week (unloading and reloading with modprobe
doesn't work. Also, the current touchpad simulates a three button mouse on a
pad with no visible buttons, an effect that generally makes both the center
and right buttons hard to use plus the keyboard has no right click button,
complain-complain, minor stuff altogether and machine remains usable).

Which is to say that you may be confronted with continual Linux desktop
problem the your ideal of UI performance not being everyone's ideal (remember
how everyone hated on the Gnome Shell? I still hate on the Gnome Shell). My
own idiosyncratic UI ideal is more like older-Windows than Mac (I use Ubuntu
Mate).

Still, best of luck.

~~~
techdragon
I find the MacBook precision remains just as good at higher pointer
acceleration settings. In addition the same precision is normally present with
all the various gestures with no loss of precision using multitouch inputs.
Did you adjust any of the MacBooks you used to better fit your preferences?
The slow default is the first setting I adjust because I agree the default
pointer acceleration is far to slow for my tastes.

~~~
bunderbunder
I crank it all the way up, myself.

But I wanted to point out that this is a spot to be careful about decisions.
The natural choice is to pick a default that you like yourself, but that's
probably a choice that would ultimately hinder adoption of Linux as a desktop
OS.

Geeks like a faster setting, but geeks also universally know that this sort of
thing can be customized, and can easily figure out how to change it. Non-geeks
are more likely to find a fast setting to be frustrating or unusable, and are
also less likely to know that they have an option to slow it down.

------
davidandgoliath
The idea of forking libinput, vs. simply generating ~$95-150k p/annum for the
guy behind libinput to go full-time, is a silly one. He was the same guy
behind synaptics, and understands all of this far better than the OP.

Let's get him some bounties! :)

~~~
opencl
Or just contribute to the project directly, unless the current maintainer has
demonstrated a lack of willingness to cooperate.

~~~
doubleunplussed
My interpretation was that the fork is to be a temporary one, with the results
of this endeavour to be merged back in when the time is right. This allows
them to make mistakes and drastic changes without regard for the release cycle
or backward-compatibility promises of libinput, and if everything is
successful then they can bundle up the results into a mergable form and get it
into libinput.

------
ndarwincorn
> Visual or terminal-based means to configure rudimentary touchpad settings.
> The fewest options I could imagine supporting for v1 would be: scroll
> speed/acceleration, scroll speed, natural scrolling toggle, hopefully
> support for gestures.

You gave up on libinput after an inability to configure scroll speed, but the
rest of those are all configurable with libinput and libinput-gestures[1].

I don't use gestures yet and default scroll speed has always been fine, and
the following tiny libinput configuration hits the rest of your points.

    
    
      $ cat /etc/X11/xorg.conf.d/30-touchpad.conf
    
      Section "InputClass"
          Identifier "touchpad"
          Driver "libinput"
          MatchIsTouchpad "on"
          Option "Tapping" "on"
          Option "TappingButtonMap" "lrm"
          Option "NaturalScrolling" "true"
      EndSection
    

Is there a reason you haven't asked the libinput maintainer about whether
configurable scroll speed would be welcome upstream (in the prior post, it
comes across like your question was far more open ended)? Forking it just to
add scroll speed configuration and replicate work that's already been done
elsewhere seems a little excessive.

[1] [https://github.com/bulletmark/libinput-
gestures](https://github.com/bulletmark/libinput-gestures)

~~~
wbharding
Appreciate the actionable ideas re: config file.

As far as the broader configurability questions, it's not so much that I want
options libinput doesn't have (though that's a little bit of it).

It's more that I want the default behavior to be good enough where accessing
the options aren't necessary (e.g., Macbook). In the event that the default
options aren't that good, I want visual settings to tune the experience. Gnome
3 with libinput currently provides two options. Neither is pointer
acceleration.

Since much of what I hope to improve the "feel" of default behavior, I don't
think this could be as straightforward as "submit a PR to libinput." I think
it could end up being a lot of work to get the default experience feeling
great. The number of folks with interest in this esoteric subject seems to me
like evidence of that.

~~~
nambit
Why not just create a gnome-widget that does libinput configuration under the
hood?

The purpose of the fork cannot be just to provide sane defaults.

------
hedgehog
It would be great to see this happen. Being curious, a couple years ago I read
the ChromeOS touchpad driver ("CMT") to see why it worked so much better than
other Linux distros. I don't have the reference handy but the short version is
they bypass X11 due to the need for high frequency and subpixel scroll events.
The highest fidelity technical answer is probably to bake scrolling into the
UI toolkit and compositor, and you likely have to do this to match Mac / iOS
performance. You can see Apple's approach reflected in the NSScrollview
documentation [1] and elaborated in [2].

1\.
[https://developer.apple.com/documentation/appkit/nsscrollvie...](https://developer.apple.com/documentation/appkit/nsscrollview)

2\.
[https://gist.github.com/zwaldowski/8710fddc8b0b39d2c152#10_9...](https://gist.github.com/zwaldowski/8710fddc8b0b39d2c152#10_9Scrolling)

~~~
mediocrejoker
Which components on a typical (say Ubuntu 16.04 desktop) are the toolkit and
the compositor? GTK and Gnome?

~~~
hedgehog
With the caveat that I don't know a lot about Linux GUI infrastructure but I
would bucket GTK and the X11 client library into "toolkit", and the compositor
would live in the X server and probably to some extent in the display and HID
drivers. If you wanted to dig in I would look at doing an analysis of
everything between physical finger movement and that movement being reflected
on the physical screen, and how to reduce the latency and jitter. Anything
about the Firefox APZ implementation [1] and that John Carmack has written
about VR latency [2] would give a feel for the problem.

1\. [https://hacks.mozilla.org/2016/02/smoother-scrolling-in-
fire...](https://hacks.mozilla.org/2016/02/smoother-scrolling-in-
firefox-46-with-apz/)

2\. Original article is broken but this is good: [https://danluu.com/latency-
mitigation/](https://danluu.com/latency-mitigation/)

------
perl4ever
I remember once upon a time, I had a PC mouse with a PS/2 connector, that was
physically a great mouse, but I preferred using a Mac, which not only had no
PS/2 interface but had a very different acceleration curve than anything else.
So I connected the mouse to a PC running Linux, and made a little program to
communicate with a simple driver on the Mac over an ethernet crossover cable.
I started out with TCP/IP, but then thought, well, I don't really need this
overhead, maybe UDP will work. And then I thought, well, do I really need the
overhead of UDP, maybe raw ethernet will work. It turned out that no error
correction was needed at all. Anyway, it wasn't fundamentally that hard to
emulate the Mac feel, you just had to go to the effort to figure out the
function that maps the movements. It was kind of a sigmoid curve. One of many
things that made me wonder why nobody cared but me about certain things.

------
solomatov
My solution is to use macbook pro as a terminal and editor, and do most of
developments on remotely accessed linux machines. I really tried to transition
to Linux but UX is so inferior, and there's very little hope that it improves.

~~~
corwin7
I find the UX on a Mac to be vastly inferior to Mate or Cinnamon on Linux. The
first thing I do when an employer gives me a Macbook is to install Linux on it
so I have an usable UI.

~~~
solomatov
Another problem which I include in UX is sleep mode. On Mac it works
flawlessly. On XPS13 + Ubuntu/Fedora (I tried both) which I used, there's non
zero probability that when I open laptop again, the battery is almost empty.

~~~
cmurf
Check the logs, is it waking, sleeping, waking, sleeping, waking, sleeping?
Power management bugs are super annoying because they are tedious to dig into.

In my very obscure case, I got lucky in that suspend was working, then stopped
working after a kernel update. Since it was a regression, kernel developers
were more interested in tracking down the problem and I was able to find a
work around: write PWRB to /proc/acpi/wakeup

The gory details are here, which I expect is so obscure it's not your problem,
but shows as tedious as it is, filing bugs with a decently good bug report and
willingness to do the work devs need you to do can be worth it.
[https://bugzilla.kernel.org/show_bug.cgi?id=185521](https://bugzilla.kernel.org/show_bug.cgi?id=185521)

~~~
solomatov
I honestly tried my best to debug it. I installed different tools, and at some
point it seemed to work, but after some time, due to some updates, it broke
down. Some time after this, I just stopped using sleep mode. It was easier to
turn on/off the whole machine.

XPS13 which I have is one of the most widely used linux laptops, and it a
symptomatic that it doesn't work well.

~~~
mverwijs
Known problem. Here's the workarounds I use:

[https://ubuntu-mate.community/t/xps-13-9370-wakes-from-
sleep...](https://ubuntu-mate.community/t/xps-13-9370-wakes-from-sleep-
randomly/17877/2) and

[https://askubuntu.com/questions/1029474/ubuntu-18-04-dell-
xp...](https://askubuntu.com/questions/1029474/ubuntu-18-04-dell-
xps13-9370-no-longer-suspends-on-lid-close)

In addition, I always use a pre-sleep script that disables bluetooth. And
enables it afterwards.

Hope it helps!

------
saverio-murgia
Website seems down. Here is a copy:
[https://web.archive.org/web/20190325183108/https://bill.hard...](https://web.archive.org/web/20190325183108/https://bill.harding.blog/2019/03/25/linux-
touchpad-like-a-macbook-progress-and-a-call-for-help/#content)

------
function_seven
I have a question regarding Apple's touchpad palm rejection. Or, maybe my
question is regarding touchpads in general.

How much raw data is sent from the device to the computer? Or, to what extent
is the information preprocessed before sending?

I could see palm rejection being implemented either in hardware or in
software. When a user's palm is resting on the pad, there's a large area of
slight capacitance change (i.e. hand is either just barely in contact with the
surface, or very very close above it), which is not normal when the user is
intentionally dragging their fingertip across the surface.

Does the touchpad report a real-time capacitance map across the whole surface?
Or does it do some interpretation onboard and send to the machine what it
thinks are the separate touch points and pressure values for each?

~~~
seltzered_
Regarding apple trackpads - For raw data, you get enough to do ellipsoid
tracking, paired with 'state' information to help with palm rejection. This is
my experience from working with the multitouch private framework on macos -
it's generally been enough to good enough work with and arguably prefer it
rather than attempting to do any raw pixel-level tracking (which would tax the
CPU)

See:

[https://github.com/jnordberg/FingerMgmt](https://github.com/jnordberg/FingerMgmt)

[https://web.archive.org/web/20120323025118/http://www.steike...](https://web.archive.org/web/20120323025118/http://www.steike.com/code/multitouch/)

I haven't had time but should try to open-source whatever bits I've had over
the years when I was bootstrapping thimblemac.com

previous hn discussion on this:
[https://news.ycombinator.com/item?id=17547817](https://news.ycombinator.com/item?id=17547817)
(where I also commented here:
[https://news.ycombinator.com/item?id=17551984](https://news.ycombinator.com/item?id=17551984)
)

I haven't kept up with the windows ecosystem to look into the 'precision
touchpad' data, assume it's something similar just delivered ~8 years later.

------
bubblethink
I am too lazy to RTFM and debug things, but does anyone know why libinput does
not have the same behaviour as the old xorg synaptic driver ? I have a *30
thinkpad, and the synaptic driver is great, but libinput is terrible. It's too
imprecise and jumpy. This is a fairly popular generation of thinkpads (the
actual touchpad goes back even further). So I thought that it would eventually
be fixed, but it looks like so far it hasn't. How does one make libinput act
like synaptic ? I don't need gestures or anything fancy. I just want the
pointer to work well, which the synaptic driver does an admirable job of
handling. It's even better than windows.

~~~
cmurf
I'd say it should just work or it's a bug. And I know it's tedious to file
bugs and report required information but that's really the only way it's going
to get fixed. You could start by asking on the list, just to see if this is a
known problem that's already fixed in a later version.

[https://lists.freedesktop.org/mailman/listinfo/wayland-
devel](https://lists.freedesktop.org/mailman/listinfo/wayland-devel)

For testing, you don't have to install if you don't want. I suggest installing
the latest Fedora 30 beta test candidate. It's more reliable than Rawhide, and
yet has the latest libinput so you won't be asked to build a newer version
from git. Download the workstation live file, image to a USB stick, and do the
testing from the live environment. Software installation is supported, it uses
the RAM overlay.

[https://fedoraproject.org/wiki/Test_Results:Fedora_30_Beta_1...](https://fedoraproject.org/wiki/Test_Results:Fedora_30_Beta_1.7_Summary?rd=Test_Results:Current_Summary)

While it's tedious to have to file such detailed bug reports, they make it
pretty straightforward to figure out what is needed and how to get it. The
devs have no way of guessing what the problem is. Plus, the fix eventually
finds its way to all distributions, so people just get the fix rather than you
having to maintain a local hack.

[https://wayland.freedesktop.org/libinput/doc/latest/reportin...](https://wayland.freedesktop.org/libinput/doc/latest/reporting-
bugs.html)

[https://gitlab.freedesktop.org/libinput/libinput/issues](https://gitlab.freedesktop.org/libinput/libinput/issues)

~~~
joncrane
Filing detailed bug reports is still easier than fixing it myself.

I don't have the time or the skill to hack on most open source software, but I
do file detailed bug reports, feature requests, and documentation updates
whenever I run into an issue.

"It ain't much but it's honest work"

------
inamberclad
My XPS-13 9350 does great (Ubuntu 18.04, Xorg). I just got a score of 292
(156+136 bonus) on that mouse accuracy site on small/hard.

Then again, when a relative ordered one of these laptops, the mousepad was
dead on arrival, so ymmv.

~~~
wbharding
Wow, that's impressive! I wonder if screen size impacts score on that test?
Both my test laptops were 15", which probably means more space between the
bubbles.

At any rate, I'd be curious to know if libinput is your driver in use? If you
don't know, `cat /var/log/Xorg.0.log | grep "input driver"` should indicate
the answer

~~~
inamberclad
Yep, looks libinput is the driver in use (it says, "Using input driver
'libinput' for 'SynPS/2 Synaptics TouchPad'").

I caution you against using just my anecdote to determine anything concrete,
of course.

------
bacon_waffle
Does anyone know of a good material to simulate a hand, for objectively
testing a touchpad?

I've got a 2011 MacBook Pro and a logic analyser, which I'd be willing to use
for a bit of touchpad driver testing/development. But, it seems like the
missing link is a way to generate consistent signals that cause problems on
Linux but not MacOS - I cuss my XPS15 w/ Ubuntu daily, but haven't figured out
how to intentionally generate the touchpad issues.

~~~
bradyd
Maybe a pair of gloves that work with touchscreens?

~~~
bacon_waffle
Just tinkering with a pair of those - the glove itself doesn't activate the
XPS 15's touchpad unless my hand is in it. There doesn't appear to be any
conduction between my hand and the contact point on the outside of the glove
according to the resistance measurement function on a good handheld
multimeter, so it's not clear to me how the gloves work. But, I have managed
to get a piece of copper foil, kapton, and some wire to activate it. I guess
the touchpad uses some kind of RF, which makes sense...

Will try to make a test jig that consistently triggers one of the irritating
behaviours, but my touchpad R&D period (aka conference call) is wrapping up,
so it'll be a while.

~~~
MayeulC
Usually capacitive touchscreens sense a capacitance difference, which is set
by the dielectric permittivity (ε) of the material above. Ours is close to
water's, but an insulating layer from another material will yield different
measurements.

I am guessing that touchpads use similar tech.

A fun fact is that capacitive sensors such as the one used on touchscreens are
fully 3D-capable, but that seems to be rarely used (I've seen it once or twice
on Samsung phones, and Sony's "glove mode").

------
eqdw
I finally made the switch over from 11 years of macbooks, and I bought a Dell
XPS and put Manjaro on it. This was a good decision, in every way _except_ for
the touch pad. The touch pad is utter garbage compared to the mac touchpad,
and several nights worth of pouring over linux blog posts and trying
experimental input processing packages has not changed this.

I really, really hope that this project is successful.

------
kilian
On actual macbooks libinput feels like a significant downgrade to synaptics,
the mouse speed + acceleration is way off and not configurable via a gui, and
other things you'd expect to work, like three-finger-click, don't. I actually
downgraded back to Xorg after trying Wayland for a while. Just getting up to
par with synaptics (that has natural scrolling on) would be great.

------
random878
> turns out, a niche OS with a subjective quality issue is -- in this case --
> a topic that's important to thousands

I would argue that it is less a quality issue, and more that experienced
GNU/Linux users tend not have a strong preference for touchpads. There's no
collective desire to improve them.

Away from my desktop (where a touchpad is irrelevant) my X200 doesn't even
have a touchpad. I have an X250 thinkpad with touchpad, but it sees minimal
use and performs just fine. I tend to use it when the laptop is at arms reach
and it's easier to select a file that way than lean over and use the keyboard.

When I'm working I use i3wm (tiling window manager) and most GNU/Linux
application make huge use of keyboard bindings. Using a mouse, or worse a
trackpad, is massively inefficient.

'OMG, I wish my new MacBook Pro enormous trackpad functioned better when I'm
using Ubuntu' is not a phrase I hear often.

~~~
kristofferR
Sounds like you've never used a good trackpad. When the trackpad driver is
abysmal like it is on Linux, of course you prefer using a mouse.

~~~
random878
Yes, as with so many hackers in the GNU/Linux universe I have been painfully
waiting all my life for someone to come along and develop a really nice
trackpad so I can use it with my tiling window manager, Emacs, and CLI tools.

------
macdice
I can report that the touchpad on a Dell XPS 13 under FreeBSD is absolutely
horrendous (at least by default, and I haven't figure out how to tune it
better yet). I hope all this talk about X and libinput really means "the open
source ecosphere" and not really actually "Linux", because I want this too.

------
jwatt
It's probably worth comparing notes with Bingxing Wang, who has a similar
project to provide an open source Apple Touchpad driver for Windows:

[https://github.com/imbushuo/mac-precision-
touchpad/](https://github.com/imbushuo/mac-precision-touchpad/)

------
gayprogrammer
If the author and others haven't seen "BetterTouchTool" for Mac, there might
be some useful code or inspiration to come from it.

It has a "multitouch live view" debug window that displays exact pixel touch
locations and shapes.

The homepage showing this (third screenshot) is here:
[https://blog.boastr.net/](https://blog.boastr.net/)

------
allenu
I'd love to see this happen. I know Windows's support of the touch pad is not
as magical as macOS's when running on a MacBook.

That said, I don't know if your request will be quite fruitful. It comes
across as too "I'd like to run this project if you want to help out and here's
how we will run it". Instead, I think what you need to do (if you could) is
start the technical work yourself and get others to help out.

If I knew how to fix the touch pad issue, I'd probably just do it
independently or else find someone else technical who can help out and we
could do it together. I wouldn't be looking for a PM (and the timeline or
project plans is kind of a turn off for a side project). Anyway, I hope you're
able to find someone who can help you out.

~~~
wbharding
> It comes across as too "I'd like to run this project if you want to help out
> and here's how we will run it". Instead, I think what you need to do (if you
> could) is start the technical work yourself and get others to help out.

I so wish that I had the time to start the technical work myself. But I'm
currently experiencing the misfortune of trying to run three products at the
same time for my day job (as a CEO/developer).

But I care about touchpads (or at least, not relying on Macbook) too much to
do nothing. So even though it sucks that I can't just make time to work on
setting up the project myself, at least this effort holds the possibility that
like-minded folks will join me to make that happen.

------
arghwhat
How do you intend on performing your tests? Just by continuously testing your
own mouse precision performance?

Would it be possible to emulate touchpad input? Maybe see if you can record
enough touchpad data on macOS to be able to make a replay driver on Linux, or
maybe with an arduino emulating a touchpad with synthetic input.

That way, testing could become a set of test cases along the lines of "given
this input and a cursor at position 0,0, the cursor should end up at position
X, Y", and you'd be able to see how big the current error is. A bunch of those
tests with various recorded movements should be a lot more stable than a human
test.

------
pandry
I'm not sure that comparing trackpads on mouseaccuracy.com may be a good
idea... I am using a Dell E7270, and I'm able to get a [244
score]([https://vgy.me/UJ7LW4.png](https://vgy.me/UJ7LW4.png)) on it (and I
never complained about my touchpad). Of course, I would love it to improve
even further, but I don't feel it to be so bad after all, but I see people
complaining when what we (or, at least I) have is pretty good...

------
vondur
Doesn't Apple have some sort of patent on the hardware part of things, such as
the glass in the trackpad? I can't read the site as it's being hugged to
death...

------
mschuster91
So, are there any affordable Windows/Linux laptops not made by Apple that
carry touchpads that are even _remotely_ compareable to a MBP2015 in terms of
hardware?

When I go to the nearest computer store all I see is shitty 4cm-wide black
plastic stuff with a depth of easily 2mm. The plastic will get "shiny" from
fat fingers (dito for the keyboard), and the tiny-ness makes any kind of
gestures ... weird if not impossible at all.

~~~
doubleunplussed
Dell xps15/xps13/precision 5520/5530? The xps15 and precision models have a 4
x 3.1 inch touchpad, the 13 inch might be smaller, I'm not sure. I don't know
what it's made out of but it has a matte finish and is not going shiny with
use. My experience with it has been very nice.

Edit: oh, you said affordable. I think the answer is probably "no" then, but
macbooks are not cheap either. These dells are comparable in price to
macbooks.

------
ggreer
> Linux touchpad scores on par with Macbook touchpad per mouseaccuracy.com
> testing. As of today, I can consistently score twice as high on macOS
> (average score 250 with “Hard” + “Small” options) vs Linux (average score
> ~100).

I've never tried Linux on a MacBook, but those must be some _really_ bad
drivers. I used my trackpoint on the same size/difficulty settings and scored
160. I'd probably do better with practice.

~~~
coldtea
> _I 've never tried Linux on a MacBook, but those must be some really bad
> drivers._

Or a really bad trackpad. It's not just the drivers.

> _I used my trackpoint on the same size /difficulty settings and scored 160._

Still nowhere close to 250.

~~~
seba_dos1
I've scored 345 on my first try ever with xf86-input-synaptics and Lenovo Yoga
2 Pro.

See
[https://news.ycombinator.com/item?id=19486081](https://news.ycombinator.com/item?id=19486081)

------
roryrjb
Seeing as people have mentioned libinput, xorg.conf and other manual things
and seeing as this is Hacker News.. the way I get around this is by using cwm
as a window manager with its rudimentary tiling, tmux in st/alacritty/xterm
and either Firefox or Chromium with vimium. Often I don't reach for the
touchpad or mouse for hours.

------
colonelpopcorn
Honestly, the trackpad is the one thing that a Macbook still has over a laptop
with Ubuntu or Elementary installed on it. IMHO.

~~~
tracker1
I absolutely love the Macbook touchpad, the keyboard has gotten subjectively
worse since around 2010 though imho. The only reason I bought my macbook
(around 2015) is because of the touchpad (and screen) and while some laptops
had equally good screens or mildly better keyboards the touchpad was lacking.
Still hoping for a better hardware alternative in the future (that doesn't
cost an arm and a leg) I don't think I'll throw down $3500 on a laptop again
either.

------
function_seven
Any mirrors for this? Just from the headline, I'd love to see what is being
done to match Apple's touchpad quality.

~~~
ptgloden
[http://archive.is/uxh3z](http://archive.is/uxh3z)

------
tsp
As a long Mac user I am looking at non-Apple laptop computers for a while now
(mainly because of dongle-madness, reduced build quality in the newer MacBook
Pros, and the bad keyboard). The trackpad is the biggest reason for me to keep
using my 2014 MacBook Pro and not buy a Laptop from another manufacturer to
put Linux on.

------
curt15
How much of PC laptops' touchpad quality is due to hardware limitations? I
seem to recall back when I owned an Apple laptop (circa 2010) that its
trackpad was connected internally via USB. Meanwhile, PC touchpads almost
universally used PS/2 which provided far lower bandwidth. Is this still the
case?

~~~
ehntoo
The Microsoft Precision Touchpad[1] devices are interfaced over I2C or USB.
Bandwidth for I2C depends on implementation AFAIK, but should be plenty for a
responsive touchpad.

[1] [https://docs.microsoft.com/en-us/windows-
hardware/design/com...](https://docs.microsoft.com/en-us/windows-
hardware/design/component-guidelines/windows-precision-touchpad-
implementation-guide)

------
wink
When reading stuff like this I wonder if maybe a MacBook would be a cure for
my hate (ok, distaste?) of touchpads or if it's too late or if it would change
anything (so far trying out macs for short amount of time didn't help).

\-- someone carrying a mouse or using the red thinkpad button thingy since
2004.

~~~
stargrazer
Coming from Linux and Windows: the Mac touch pad works well. Once you learn
the strokes and finger combinations, no mouse is needed. It becomes natural in
use. And the control panel has various knobs if you don't like some of the
defaults.

------
dopeboy
It's really cool to see this get legs. Thanks OP for spearheading the effort.
It would go a long way towards getting Linux competitive on desktop.

I can't donate dev time but I'm happy to donate testing time and to throw in
some cash too.

------
seba_dos1
As a exclusive touchpad user for years, "Feels like a Macbook" isn't really
the best idea for me. When it comes to drivers, MacBook gives you an okay
experience. Windows often gives you terrible one ("precision drivers" helped a
lot there - no such drivers for my touchpad though). GNU/Linux can give you
variety depending on configuration, although there are some pitfalls and
compromises. For instance, I definitely wouldn't trade my xf86-input-synaptics
experience with the MacBook one, however, it has a trouble of kinetic
scrolling being implemented very naively and the "thumb detection" is a bit
worse than with libinput (which is actually too aggressive in this regard and
it negatively affects things like two-finger scrolling for me).

I'm using both the integrated touchpad of my Lenovo Yoga 2 Pro (produced in
2014) and Apple Magic Trackpad 2. The former with xf86-input-synaptics driver,
the latter with libinput. My partner has a MacBook Pro which I sometimes lend
to test some stuff on macOS. Overall my touchpads on GNU/Linux feel somewhat
better; macOS however wins when it comes to application support and
integration. I've tried Windows once on my Yoga and it was completely
unbearable.

IMO the main thing GNU/Linux needs in this regard aren't the drivers. libinput
will get there eventually (it improved a lot over past few years; initially it
was pretty much just as unusable as Windows). The main thing that's
dramatically needed is application support. You get an absolutely awful
touchpad experience with Firefox on X11 until you set MOZ_USE_XINPUT2=1
environment variable, for instance. However, if you enable it, there's a bug
somewhere that's triggered by KWin[0] that sometimes makes scrolling
unbearable until you refocus the window. I don't even have to mention missing
out-of-the-box touchpad gestures support and the fact that macOS implements
them smoothly (say, the transition progresses exactly as you move your
fingers), while all of the solutions I've seen on GNU/Linux work as simple
triggers.

Let's back it up with some data. I've never seen mouseaccuracy.com in my life
before, fun stuff. Tried it with the same settings as the author ("hard",
"small"; for 30 seconds):

Yoga 2 Pro touchpad on GNU/Linux (synaptics): "TOTAL SCORE: 345; TARGET
EFFICIENCY: 69%; CLICK ACCURACY: 96%"

Apple Magic Trackpad 2 on GNU/Linux (libinput): "TOTAL SCORE: 299; TARGET
EFFICIENCY: 63%; CLICK ACCURACY: 87%"

MacBook Pro 13 Mid-2012 touchpad on macOS: "TOTAL SCORE: 286; TARGET
EFFICIENCY: 58%; CLICK ACCURACY: 93%"

Apple Magic Trackpad 2 on macOS: "TOTAL SCORE: 262; TARGET EFFICIENCY: 56%;
CLICK ACCURACY: 82%"

It was definitely harder to do those fast clicks on the Magic Trackpad,
because it only emulates a clickpad, while all the other touchpads can be
physically clicked (this is a feature that actually made me buy the Magic
Trackpad as it makes it exceptionally quiet, but it doesn't really help with
accuracy and agility). When it comes to "personal feeling" during the game,
the Yoga touchpad handled by synaptics driver definitely felt the best, while
all the other runs felt kinda similar (libinput won with macOS in numbers, but
I didn't really "feel" it).

[0]
[https://bugs.kde.org/show_bug.cgi?id=348270](https://bugs.kde.org/show_bug.cgi?id=348270)

~~~
koyote
And here is a comparison with an actual mouse (first try on a Logitech Master
MX 2s):

TOTAL SCORE: 386; TARGET EFFICIENCY: 80%; CLICK ACCURACY: 89%

Am I the only one who uses a mouse whenever possible, no matter how 'good' the
trackpad is?

The Logitech Master Anywhere 2s (the smaller version of the mouse I used
above) is very portable, very accurate (even on glass), has excellent battery
life and works well with bluetooth. It really isn't much of a hassle to bring
it along anywhere you go.

~~~
userbinator
I tried it with a "actual mouse" too --- a Microsoft Wheel Mouse Optical (the
"classic" one that apparently a lot of gamers use, but I'm not much of a gamer
myself --- it's just a cheap and comfortable mouse):

TOTAL SCORE: 574; TARGET EFFICIENCY: 91%; CLICK ACCURACY: 98%

I would definitely use a mouse over a trackpad; in fact I have an IBM X60 but
it is not on hand at the moment, and I'd rather use the "clitmouse" on that
than a trackpad. All the trackpads I've tried, including the Macbook ones,
induce an unpleasant sticky feeling on the fingers.

~~~
kkarakk
source on the gamer reference? nearly every tournament i see either razer or
logitech. haven't seen any ms mouses in the past 3 years and i see all the
major tourneys(cs,overwatch,dota etc)

googling returns no results apart from a forum link from 2013 about quake

------
floatboth
libinput works pretty much perfectly for me, both on a Thinkpad X240
(Synaptics PS/2, FreeBSD psm(4)) and a Magic Trackpad 1st gen.

The _only_ issue I have is that it's too conservative about starting to
recognize gestures. On macOS, you can quickly transition from scrolling to
pinching/rotating and it knows what you want. On libinput, you have to very
deliberately stop scrolling, put two fingers into a pinch position, and start
pinching.

~~~
Washuu
I would love that deliberateness. There are so many times I unintentionally do
a gesture using the built in ones on OS X that I had to turn it off.

------
nurettin
My 2017 Hp Omen notebook has linux mint and nvidia drivers installed. Touchpad
feels and works exactly like MacBook pro's. Very satisfied with it.

------
edoceo
I'm using a Logitech one, external and my Asus has an ELAN one. Got them both
to work after a bunch of fiddling, would like better docs.

------
caymanjim
I can't read the article because the site is hosed. I have a Lenovo ThinkPad
X1 Extreme, and the touchpad is as good as any MacBook I've ever owned. It's
the only non-MacBook that I've encountered where the touchpad is even usable.

I don't usually run Linux on it, but I have, and I don't recall it behaving
any differently than it does in Windows. Maybe the pinch gesture doesn't work
in Linux; I'm not going to reboot to test.

~~~
bauerd
How does the X1's trackpad compare in size to a MBP? Trackpad is probably the
showstopper that kept me from switching to some Linux in the past.

~~~
caymanjim
It's a fair bit smaller than the current MBP touchpad. More like older MBP
models. I don't like how gigantic the current MBP one is. Apple does a good
job of ignoring rogue palm touches, via software, but in a way that makes it
unresponsive when you want to do keyboard+touchpad combinations (which are
rare, but important in some drawing apps and some games). Overall I find that
I don't need that much touchpad real estate.

------
deckar01
My current solution is to use a 2013 BMP streaming trackpad events to linux
via Synergy. I have to use a specific old (1.8.8) version that has been
patched for smooth scrolling though. Having a laptop setting in my lap while I
use my desktop is not ideal though.

~~~
05
You can connect a Bluetooth Magic Trackpad 2 to your MBP :)

~~~
seba_dos1
...or to any GNU/Linux PCs since 4.20 kernel.

(spoiler: it a good touchpad, but not really exceptional)

~~~
swiftcoder
Attached to a Linux PC, it's pretty abysmal. Attached to a Mac it's much
better.

~~~
seba_dos1
I'm using it with both and aside of poor touchpad support in applications
(which is of course a big thing, but it applies to every touchpad out there),
there's not much difference. Driver is fine, it's apps and toolkits that need
a lot of work. When the app supports it well, it works really well.

------
asaddhamani
Getting a 404 page

------
chj
Here I am using Macbook with a good old mouse.

------
xmichael999
Please please make this work!

------
wbharding
Looks like a bit of HN was too much for my web host to handle (investigating).
In the meantime, here's the note that I wrote the update in and copy/pasted to
the blog:
[https://public.amplenote.com/4wdQRLmYVU6wAHo1V9yKgaJK](https://public.amplenote.com/4wdQRLmYVU6wAHo1V9yKgaJK)

~~~
wbharding
According to the chat rep at Porkbun (the web host for this site), "it appears
the site may have received spam complaints." Which I think is their way of
saying they can't handle this much traffic. Actively working all possible
angles to get the blog restored with them, but this backup version seems to be
holding up so far.

------
neatcoder
Very good article. Can someone explain me the pop culture reference to
[https://images.amplenote.com/35bd7d80-eabc-11e8-8f1b-0a54dd3...](https://images.amplenote.com/35bd7d80-eabc-11e8-8f1b-0a54dd353f78/1fdc4191-c0ff-4829-aeab-
fe4c7cf561d5) that is present at the end of the article under the hypertext
"pragmatist at heart".

How does the phrase "pragmatist at heart" relate to "Good Old Grateful Dead"
and what is "Good Old Grateful Dead"?

~~~
lsiebert
If you scroll down, it's a jerry garcia quote, "somebody has to do something,
it's just incredibly pathetic that it has to be us."

------
leowoo91
Just use neural networks to train. You're welcome.

edit: this isn't a joke

~~~
kkarakk
be sure to play eye of the tiger while training ;)

------
baybal2
Synaptics touchpads have multiple "APIs." Very likely, linux drivers simply
don't get the same input as Mac's that may use Synaptics non-hid data format.

A task for a logic analyser as much as for software dev.

------
solarkraft
I don't see why you'd need to fork libinput. I'm fine with my cursor
movements, what I want is gestures, and libinput already delivers those. It is
up to the desktop environment to implement them (PROPERLY).

I have taken a look at the libinput-debug sample code and my main DE (Gala,
written in Vala, which is a frontend for C), with the resulting opinion that
for someone decently-experienced it should be fairly easy to do. Unfortunately
I am not that person (yet).

~~~
EpicEng
>I don't see why you'd need to fork libinput. I'm fine with my cursor
movements

You may be (and I agree on gestures), but I'm not. Apple's touch pad is
literally the only thing that keeps me using a Mac.

