Here is how to fix the Bluetooth mouse lag on Linux. If you own a Bluetooth mouse that connects directly to the module built-in to your laptop, without an external transmitter for the USB port, you most likely aware of the cursor lag issue. This issue is very common on Linux, and affects all distros I've tried myself.
Bluetooth hardware can be embedded in your device's motherboard or it can be installed as an internal module inside the device. If your PC or laptop has the Bluetooth hardware installed, you can connect any of your wireless devices to that PC using the Bluetooth protocol. Bluetooth transmitters also exist as an external device which can be connected to a USB port.
Historically, the Bluetooth stack in Linux has been implemented by the BlueZ library. BlueZ provides support for the core Bluetooth layers and protocols. Many modern Linux distros come with BlueZ preinstalled, along with the Blueman frontend software.
When you connect a Bluetooth device to a built-in transmitter, there is high possibility that you will experience a high latency. It causes a delay, which looks like a interrupted connection and causes the cursor to jump. Due to this issue, the mouse is nearly unusable.
Luckily, it is easy to resolve the situation. All you need to do is configure polling interval for your mouse.
How to fix Bluetooth Mouse Lag on Linux
- Open a new terminal as root.
- Navigate to the /var/lib/bluetooth folder.
- Here, you will find one or more subfolders each of which represents a Bluetooh adapter. If you have only one adapter, you will have only one folder named with its address value.
- Under the adapter address folder, you will find subfolders that represent connected Bluetooth devices and named with device's address. For example, I have three device paired, and there are 3 corresponding folders.
- You need to find the folder that represents your Bluetooth mouse. Each of the folders contains the info file that is just a text config file that describes the device and its parameters.
- Open that
infofile with a text editor. Nano, vim, mcedit - any will do. The
General > Namevalue will give you idea what is the device you are editing the info file for.
- Under the ConnectionParameters section, change MinInterval to 6, MaxInterval also to 6.
- Turn off and then turn on your Bluetooth mouse. This should resolve the laggy cursor movement.
The above workaround works for me with two Bluetooth mouses I use with Linux Mint, Ubuntu, and Arch Linux.
Winaero greatly relies on your support. You can help the site keep bringing you interesting and useful content and software by using these options:
I didn’t even have ConnectionParameters section, but it still helped in my case.
It seems to work on fc35.
Good advice; it works until the next restart, when parameters are reset to their original value. Is there a way to make them stick permanently to the new values? Thank you