Improving the feel of the System76 Galago Pro’s trackpad

You may remember that I had said that the System76 Galago Pro’s trackpad is
garbage
recently.

I still stand by this as I’ve been spoiled by Apple’s Magic Trackpad which for
years now, they’ve nailed the user experience with.

Fortunately running Linux means getting under the hood and being able to control
your own experience a lot more. I know that’s a put off for some people and I
get that, but for me, I’m okay with a small bit of being frustrated and screwing
around to find a solution.

While the trackpad did work out of the box with no additional configuration, I
was saddened by the lack of inertial scrolling.

Researching this ended up being an additional pain because as it turns out,
“inertial scrolling” is known as “coasting” in Synaptics speak.

Speaking of Synaptics, even though it’s no longer being maintained and it’s
recommended to use xf86-input-mtrack or libinput instead, I did opt to use
xf86-input-synaptics.

That’s not to say I didn’t try the alternatives.

libinput which is what came out of the box just doesn’t support coasting at
the moment, making it a bit of a deal breaker to use.

xf86-input-mtrack did support coasting, but for the life of me I couldn’t get
the buttons for the trackpad to work at all. I was able to get tap to click
working but I didn’t necessarily want to have the buttons disabled and have to
rely solely on tap to click which I may end up turning off eventually.

Keep in mind that I’m speaking in the context of Arch Linux and I’m not going to
go into much detail about how to get things installed.

Probably also worth noting that I still run GNOME in Xorg mode instead of
Wayland, mostly because of some theming hacks I do in GNOME that don’t work in
Wayland.

Even though I went with the more dated driver, I’m planning to give libinput
and xf86-input-mtrack another shot occasionally to see if they’ve either
improved or my ability to figure things out has improved 😉

With the inclusion of the Synaptics driver, I lost the ability to configure the
mouse within GNOME and had to rely on a configuration file.

To get things feeling more like an Apple Magic Trackpad I needed to enable
coasting, of course. In addition, I needed natural scrolling palm/thumb
detection and for my own personal preference, a quick speed.

I haven’t quite gotten the speed perfect yet, but again that’s a personal
preference thing and you may want to omit the configuration or tweak it for your
own preference.

The big pain in the ass for me ended up being the palm / thumb detection. I
tweaked things a bit but ultimately anded up disabling the upper right edge of
the trackpad to get things where I was completely satisfied.

My configuration looks like this:

Section "InputClass"
    Identifier "touchpad catchall"
    Driver "synaptics"
    MatchIsTouchpad "on"

    # Natural Scrolling
    Option "HorizScrollDelta" "-111"
    Option "VertScrollDelta" "-111"

    # Tap to Click
    Option "TapButton1" "1"
    Option "TapButton2" "3"
    Option "TapButton3" "2"

    # Mouse Speed
    Option "MinSpeed" "1"
    Option "MaxSpeed" "1.75"
    Option "AccelFactor" "0.033448"

    # Palm Detection
    Option "PalmDetect" "1"
    Option "PalmMinWidth" "4"
    Option "PalmMinZ" "50"

    # Disable upper right corner (additional palm detection)
    Option "AreaRightEdge" "5375"
EndSection

A shitty trackpad experience very well could have resulted in me returning my
Galago Pro, but this configuration has made things completely tolerable even if
it’s not 100% perfect (yet).

Since this is a work in progress, you can always check out the configuration
file
out in my dotfiles.

Even with a decently working trackpad, I’ve been doing some light research on
track and clickpads. Since the System76 Galago Pro is a customer serviceable
machine, I don’t see any reason that I couldn’t just find a better piece of
hardware to swap in.

If anybody’s ever done this, hit me up in the comments below!

Josh Sherman - The Man, The Myth, The Avatar

About Josh

Husband. Father. Pug dad. Musician. Founder of Holiday API, Head of Engineering and Emoji Specialist at Mailshake, and author of the best damn Lorem Ipsum Library for PHP.


If you found this article helpful, please consider buying me a coffee.