The Silent Disconnection
Ubuntu’s power management system is aggressively configured to maximize battery life on laptops. One of the ways it achieves this is by implementing “autosuspend” on the USB bus. If a connected device sits idle for a few seconds, the operating system cuts power to it. While this works well for USB thumb drives, it is disastrous for internal or external Bluetooth adapters that interface via the USB bus. If you stop moving your Bluetooth mouse or pause a track on your Bluetooth headphones, Ubuntu suspends the adapter. When you try to move the mouse again, there is a massive, frustrating delay—or complete failure—as the adapter struggles to wake up and reconnect.
Blacklisting the Adapter from Suspend
To ensure your Bluetooth peripherals remain instantly responsive, you must instruct the Linux kernel to explicitly exclude the Bluetooth adapter from the autosuspend protocol.
First, you need the ID of your Bluetooth adapter. Open a terminal (Ctrl+Alt+T) and type lsusb. Look for the line mentioning “Bluetooth” and note the ID (e.g., 8087:0aa7). Now, you must create a custom udev rule. Type sudo nano /etc/udev/rules.d/50-bluetooth-autosuspend.rules and press Enter. In the empty file, paste the following line, replacing the ID with your specific numbers: ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="8087", ATTR{idProduct}=="0aa7", ATTR{power/autosuspend}="-1". Press Ctrl+O to save, then Ctrl+X to exit. Finally, apply the new rules without rebooting by typing sudo udevadm control --reload-rules && sudo udevadm trigger. Your Bluetooth adapter is now permanently awake, eliminating the input lag.