Apple Magic Trackpad 2 on Ubuntu Linux

The is a guide to installing the Apple Magic TrackPad 2 on Ubuntu Linux. While this guide has been written for Ubuntu 20.04, it should be easy to follow these instructions with minor changes for Fedora.

Plug the TrackPad in to USB. The trackpad should just work via a cabled connection. 2 Finger scrolling will work, a 2-finger tap is right mouse button, and a 3-finger tap is the middle button (or paste).

Enabling Bluetooth

To connect the trackpad via bluetooth, unplug the USB cable and turn the trackpad off, wait a second or two then turn it back on. The trackpad will now appear in bluetooth settings and can be paired.

Enabling Gesures

Add your user to the ‘input’ group. After doing this you will need to completely restart your session – the easiest way to do this is to reboot. Logging in and out will not work.

$ sudo gpasswd -a $USER input

Now you will need to install libinput-gesture – the example below uses the latest from git

$ sudo apt-get install xdotool wmctrl git python3 libinput-tools build-essential
$ mkdir ~/src/
$ cd ~/src/
$ git clone https://github.com/bulletmark/libinput-gestures.git
$ cd libinput-gestures
$ sudo make install
$ libinput-gestures-setup autostart
$ libinput-gestures-setup start

After this, a three finger swipe up and down will switch workscapes. Read /etc/libinput-gestures.conf to see other options that are available.

Issues

Unfortunately, when used over bluetooth, the sensitivity of the touch to click is far too sensitive. I found that text was constantly accidently selected. This issue does not occour when the decice is wired.

Libinput seems to show the same device details as below for both wired and bluetooth – so I’ve not figured out that cause of this yet.

Device:           Apple Inc. Magic Trackpad 2
Kernel:           /dev/input/event25
Group:            6
Seat:             seat0, default
Size:             162x115mm
Capabilities:     pointer gesture
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    button-areas *clickfinger 
Disable-w-typing: n/a
Accel profiles:   none
Rotation:         n/a