Even after stubbing out all the calls to XDefineCursor() in the system (using /etc/ld.so.preload to override the system's XDefineCursor), I would still get the cursor showing up in between GDM and the user session.
commit e02f864fdf19a5ab1682336be343c57fdb69ef43 says:
Suppress cursor display until the first XDefineCursor() request.
It will actually only suppress it until the first XFixesCursor call.
1) Start Xorg server
2) Hide the cursor using XFixesHideCursor()
3) Show it again using XFixesShowCursor()
The cursor will be shown.
This is currently stopping https://bugzilla.gnome.org/show_bug.cgi?id=688499 from working correctly when transitioning from gdm to the user session.
Patch seems to work as advertised, thanks.
Author: Peter Hutterer <firstname.lastname@example.org>
Date: Tue Dec 18 14:12:40 2012 +1000
dix: only show the cursor if a window defines one (#58398)