I checked the code of xfce4-screensaver and found that it's likely some hackish check of the existence of the monitor. src/gs-manager.c contains the function static gboolean gs_manager_is_real_monitor (GdkMonitor *monitor) { // avoiding some weird gdk bug // federico> avb: or if you don't care about a little unexplained messiness, // just discard monitors where both fields are null? :) if (gdk_monitor_get_manufacturer(monitor) == NULL && gdk_monitor_get_model(monitor) == NULL) return FALSE; return TRUE; } ... and quite a few stuff are skipped if this function returns false. It includes the creation of the overlay window. This explains why the things got broken with efifb; it doesn't have the monitor information, so it looks as if no monitor is connected. So obviously there is a bug in the fallback code in xfce4-screensaver. Or, we may simply drop this check at all. I tested quickly by commenting out those check and returning always TRUE, and xfce4-screensaver starts working fine with efifb, too.