Ubuntu Version:
Lubuntu 24.10 (fresh install)
Desktop Environment (if applicable):
LXQt
Problem Description:
Occasionally, my mouse pointer disappears. This is universally true across all applications. The desktop is still responsive to mouse input. If I can figure out where the pointer is on the screen, I can even use it. Thanks to a certain amount of feedback from UI elements (e.g. Firefox tabs), this kind of works, but it certainly doesn’t work for everything. I’ve never heard anything like this before and I have no similar problem on any other machine, although this is my only 24.10 install and the first time I’ve had anything other than macOS on this machine.
The events that cause it are a little unknown. Most days I have three things running: Firefox, NoMachine (for work) and Qterminal. It’s happened more than two times but the two times I remember was when interacting with two different webapps in Firefox: Apple Music (most recently) and Google Meet. So perhaps it’s Firefox specific? Or something to do with rather heavyweight webapps? I’m not sure about this because the last time it happened, Bandcamp was playing in a background tab but the current tab wasn’t a very resource intensive one.
I’ve tried almost everything I could find to do, including turning to duck.ai out of desperation. The only thing that fixes it is a reboot, but I just hate doing that. So I’m trying to figure out some more low level solution to my problem. In particular, I was thinking maybe there was some file in /sys
I could modify or some parameter I could use with modprobe
. Or maybe some way to “restart” the pointer or I guess the rendering thereof in X. At worst, removing the device from the device tree and starting again.
Relevant System Information:
-
probably not relevant, but:
iMac11,2 1.0, Intel i3 540 (4) @ 3.059GHz, AMD ATI Mobility Radeon HD 4670 -
what’s not relevant: the mouse. I’ve tried many.
Screenshots or Error Messages:
- I searched
journalctl
pretty darn closely, like line by line, and didn’t find anything. Nothing in Xorg.0.log, either. xlsatoms | grep CURSOR
does indeed return something.
What I’ve Tried:
- Logout and back in
- Restart display manager (basically duplicates 1 anyways)
- Restarting the compositor (this happens on restart anyways)
- Change the pointer style (LXQt requires a session restart, so this is basically a duplicate of 1,2)
- Switch to VT and back
- Switch to VT and then stop the display manager and start it up again, effectively restarting X.
- Unplug and replug the USB receiver
- Turn the wireless (note this is Logitech’s proprietary protocol) mouse on and off
- Use a wired mouse
- Use a Bluetooth mouse
- Toggling hardware acceleration in Firefox. Makes no difference either way.
- Cursor stuff:
xsetroot -cursor_name left_ptr
to force a cursor redrawecho 'Xcursor.theme: default' >> ~/.Xresources && xrdb -merge ~/.Xresources
to make sure the cursor theme is properly setexport XLIB_SKIP_ARGB_VISUALS=1
in ~/.xinitrc to force a hardware cursor
- Xorg stuff:
Section "InputClass" Identifier "mouse" MatchIsPointer "yes" Option "AccelerationProfile" "-1" Option "AccelerationScheme" "none" EndSection
- Use
xinput disable "Virtual core pointer"
in an attempt to turn off all the pointing input in X. The plan was to then reenable it. Unfortunately:X Error of failed request: BadAccess (attempt to access private resource denied)
. - Use
unclutter
to hide the pointer, hoping it will reappear on movement - Use
setxkbpmap -option grab:break_actions; xdotool key XF86Ungrab
. Probably pointless (hah!), as I can still move the pointer, but trying to ensure nothing else is trying to grab the input (like virtual machines often do). - Restart
udev
- Try to restart the
usbhid
module. Wouldn’t work because it was in use, even with all USB devices unplugged, including turning Bluetooth off via turning off thebtusb
module (the name indicates that Bluetooth is implemented through USB) - Use NoMachine to remotely control the machine with another device with a working pointer. This does work, but only on the remote machine and that’s because NoMachine has the ability to show both the local and remote pointer. So I was seeing was the local one. No remote one.
Things to try in the future
- I really think the issue has to do with the rendering of the pointer and not the actual hardware, but that may be something to try. libinput-tools and some lesser known options in
xinput
could prove useful. - Learn the ins and outs of X internals and debug the actual problem.
- Maybe I should just make the assumption that it’s X and file a bug against it.
- I’ve been meaning to look into better video driver support for other reasons. I’ve seen some other reports about of people suggesting their similar experience (not necessarily all the same set of conditions, per se) had to do with the driver.
Notes
FWIW I just noticed my Compose key isn’t working. I have ~/.XCompose
set up so it should be. I feel like I remember using it earlier today. I wonder if this isn’t somehow an X issue. Still, though, it’s not like all input is a problem. I have no issues with the keyboard beyond that, including the cursor. Since posting this originally, it’s happened one other time and that time the Compose key was working, so that may have been a fluke.
P.S. this post would not be possible without the wonderful Vimium for Firefox (which can do almost anything a mouse could do, but with a keyboard) and keynav
. Oh, and the mighty tmux
, too, in terminal. It would be so much harder to copy and paste without it!