[SOLVED] Disappearing mouse pointer

Hi!

I just dist-upgraded my Debian machine from jessie to stretch and now my mouse pointer in fvwm (v2.6.7) sometimes disappear. :frowning:

The pointer is visible as long as it is located over an xterm window (icon is a vertical line, with small curly things at the top and bottom).

But as soon as I move it up to the window’s title or hoover above any border, it disappears.
Same thing on the root background.
Same thing above the entire window of some windows, e.g. Emacs.
Same thing above fvwm menus.

If i click somewhere on the background, the fvwm menu appear, and I can move the invisible mouse pointer to select items.

This is annoying.

If I run ‘xsetroot’, the background color becomes black and the cursor becomes visible, as long as I hoover above the background.
The cursor becomes the big “X-windows cross” (a big X). So now I have a working mouse pointer over the root background.
But when I hoover the mouse over a window title or border, it still disappears.
When above the textbody of an xterm window it is still visible.

Since the mouse is working, and some pointer icons work, I suspect this is a fvwm issue, showing the wrong icon when above window titles/borders/etc.

I’m using the Nouveau Xorg-driver (for my really old Nvidia Geforce4 MX 4000 gfx card).
I’ve tried forcing HW mouse off and SW mouse on - same results.
I’ve removed all my own .fvwm and .xinitrc settings.
With the default fvwm setup, the standard mouse pointer is still missing.

Can somebody help?

/Elof

Additional information:

If I run 'xsetroot -cursor_name ’ and then move the pointer to the root background, then I sometimes see an icon and sometimes I don’t:

Some examples where the root cursor was visible or not (yes/no):

no X_cursor no arrow yes boat yes bogosity no circle yes exchange no hand1 no hand2 yes heart no left_ptr yes man no question_arrow yes spider no target

If I set the cursor to something that works, like “heart”, and then change it to something random, like “foobar123”, the pointer is still a heart.
So non-existing cursor names have no effect.
If I set the cursor to something that works, like “heart”, and then change it to “X_cursor”, no pointer is visible.
This tells me that the “X_cursor” name exists, but for some reason it is empty.

Two strange things:
When I run ‘xsetroot’, I get a working X cursor but when I run ‘xsetroot -cursor_name X_cursor’ I get an invisible pointer.
When I run ‘xsetroot -cursor_name xterm’ I get an invisible pointer. I don’t know why the xterm cursor is working over fvwm xterm windows but not as the root pointer.

PS: Running FvwmForm-RootCursor don’t solve anything either. It can do the same thing as my manual commands above.
X_cursor, left_ptr, xterm, etc don’t work.
heart, man, exchange, etc work, just as in my manual commandline attempts. The only difference is that I can also add inner and outer color before I click [Set Root Cursor].

Thia has nothing to do with FVWM.

You might also want to check you don’t have unclutter(1) running.

– Thomas Adam

No, I don’t use unclutter.

Are you sure?
Since there are different behavior depending on what elements the mouse is currently over, I assume it is FVWM.

Like in /usr/share/fvwm/FvwmForm-Form it looks like configurations for stuff like “Pointer over button” and “Pointer over input”.
To me this sounds like FVWM set different pointers (cursors) depending on what’s beneath it.

Yepp, the manual also states:

[code] CursorStyle context [num | name | None | Tiny | file [x y] [fg bg]]
Defines a new cursor for the specified context. Note that this command can not control the shapes an applications uses, for example, to indicate that it is busy. The various contexts are:

          POSITION (top_left_corner)
              used when initially placing windows

          TITLE (top_left_arrow)
              used in a window title-bar

          DEFAULT (top_left_arrow)
              used in windows that do not set their cursor

          SYS (hand2)
              used in one of the title-bar buttons

          MOVE (fleur)
              used when moving or resizing windows

          RESIZE (sizing)
              used when moving or resizing windows

          WAIT (watch)
              used during certain fvwm commands (see BusyCursor for details)

          MENU (top_left_arrow)
              used in menus

          SELECT (crosshair)
              used when the user is required to select a window
  ...
           The defaults are shown in parentheses above.  If you ever want to restore the default cursor for a specific context you can omit the second argument.

          The second argument is either the numeric value of the cursor as defined in the include file X11/cursorfont.h or its name (without the XC_ prefix).  Alternatively, the xpm file name may be specified.  The name can also be None (no cursor) or Tiny (a single pixel as the cursor).

[/code]

So… Either my cursors font is missing all the vital ones, or fvwm is somehow overwriting the vital ones (in RAM?) with empty data.

Any one have any hints where I should debug this further?

So, I’ve solved this. But I still don’t know what the real issue is.

I tried lots of stuff, like installing “fvwm-icons”, “xcursor-themes”…
I tried replacing /usr/share/icons/default with e.g. /usr/share/icons/Adwaita

Still the same.

Then I found wiki.archlinux.org/index.php/Cu … _resources
I created a ~/.Xresources file:

Xcursor.theme: core
And in the top of my ~/.xinitrc I added the command xrdb ~/.Xresources

Now the mouse cursors are working. When hoovering above a window title I get a pointer, above a border or corner I get the appropriate resizing-pointers, over the root background I get a pointer, over my black Emacs-window I get a white pointer and over my xterm windows I still have the xterm pointer.
So everything is now working as it should. :smiley:

The strange thing is that if I use “Xcursor.theme: handheld” or “redglass” or “whiteglass”, I get no cursors at all. Not even the xterm cursor that previously worked.