How to fix (and adjust!) old Macbook trackpads that are sticky / unresponsive / keep stopping

I’m not sure where it’s best to post this so my apologies if it shouldn’t be here! I recently set up Lubunu 24.04.2 on an old (2012) Macbook Pro. Most things were great out of the box or with a quick driver update, but setting up the trackpad to feel decent took so much digging that I felt I should post the steps somewhere to make it easier for other new users who are trying to use Linux to revive their old intel-based Macbooks. I can’t imagine that everything in this guide is the best way to do it, it’s just what I managed to get to work and I wanted to share it because it took me hours when it could have just been a few minutes if I’d had a guide.

This guide was written with Lubuntu in mind. If you’re using a different Debian or Ubuntu-based distro (such as Mint) then you might only need to do the first few steps (and I imagine it’s easy to tweak the commands to work on other Linux distros like Fedora), but I haven’t tested it.

If you have an old intel Mac and your trackpad keeps on stopping for a few seconds (which makes it feel like it’s “sticking”, “unresponsive”, “losing connection”, etc), you can open a terminal and use this command to install an older trackpad driver:

sudo apt install xserver-xorg-input-synaptics

After it finishes installing, reboot your computer. The trackpad should no longer be sticking, but now you might have a new problem… How do you change the settings?
If you’re not on Lubuntu/LXQt then it’s possible that your regular mouse and trackpad settings menus might still work (again, I’ve only tested with Lubuntu. For more info, see https://wiki.archlinux.org/title/Touchpad_Synaptics 2.2.2: graphical tools). But if you find you can’t adjust the settings like you usually would, here’s how to do it via the terminal:

Put xinput list into the terminal. This will show you a list of input devices connected to your computer. Your Mac’s trackpad will likely have the charming name bcm5974. On the right of the terminal you can see the ID for each device. My bcm5974 has the ID 12.

Now enter

xinput list-props 12

(Replace “12” with your trackpad’s ID).
This will show you all of the settings (AKA “properties”) you can adjust, the ID for each property (shown in brackets), and the current value of the property.

It’s a long list, so if you can’t use your trackpad to scroll then try shift + arrow up/down, or ctrl + shift + arrow up/down.
You might need to do a little googling to figure out exactly which property you want to change.

The format for adjusting the settings is

<your device id> <property id> <value>

(for more examples see https://commandmasters.com/commands/xinput-linux/)
I want to make my trackpad faster, so I’m going to reduce the constant deceleration property to 0.5 (IIRC it was originally 2.5, but I had already changed it by the time I took the above screenshot. Whoops!). There might be other properties you could adjust to change the speed, but this method worked for me. On my computer the ID of this property is 304, so I’m going to enter

xinput set-prop 12 304 0.5

You can also use the name of the setting you want to change instead of its ID number. Here I’m reversing the scroll direction by removing the minus symbols that the numbers originally had:

xinput set-prop 12 'Synaptics Scrolling Distance' 100 243

(Originally the values were “-100” and “-243”.)
To do more than one command at a time you can put a semicolon (“;”) inbetween them. For example:

xinput set-prop 12 304 0.5 ; xinput set-prop 12 'Synaptics Scrolling Distance' 100 243

It might seem unnecessary to combine them right now, but in a moment we’re going to need to turn them into a script.
You see, the problem with these commands is that they aren’t permanent. You would need to enter them every time you reboot your computer. So let’s get those commands to run automatically at startup.

First, you need to make a script that contains your command(s). I’m going to call mine mouse.sh, but you can call it anything you like as long as it ends with .sh
To make and edit this file using the terminal, you can enter
nano mouse.sh
Now copy and paste the xinput command(s) you chose earlier (I recommend using right-click/double-finger-click to copy/paste instead of keyboard shortcuts, as the terminal might use different shortcuts from what you’re used to), press ctrl + o and then enter to save it, and ctrl + x to exit the editor.
Now enter
chmod +x mouse.sh
to make it executable.
If you want to test whether it’s working properly, try rebooting your computer to get rid of your new trackpad settings. Then put ./mouse.sh into the terminal and it should reapply them!
You now have an executable script. But how do you get it to run at startup?

Open the start menu and go to preferences > session settings > autostart. Select “LXQt autostart” and press add. Name it whatever you like, and then in the “command” box put
bash -c ~/mouse.sh
Then click “ok”, and “close”.
Now there’s just one thing to do to check whether it works: reboot! Your settings should now be applied from startup.

1 Like