Traditional user interfaces can rely on this interface to define the
      foundations of typical desktops. Currently it's possible to set up
      background, panels and locking surfaces.
    
    
      
      
    
    
      
      
    
    
      
    
    
    
      
	The surface set by this request will receive a fake
	pointer.enter event during grabs at position 0, 0 and is
	expected to set an appropriate cursor image as described by
	the grab_cursor event sent just before the enter event.
      
      
    
    
      
	Tell the server, that enough desktop elements have been drawn
	to make the desktop look ready for use. During start-up, the
	server can wait for this request with a black screen before
	starting to fade in the desktop, for instance. If the client
	parts of a desktop take a long time to initialize, we avoid
	showing temporary garbage.
      
    
    
    
      
      
      
      
    
    
      
	Tell the shell we want it to create and set the lock surface, which is
	a GUI asking the user to unlock the screen. The lock surface is
	announced with 'set_lock_surface'. Whether or not the shell actually
	implements locking, it MUST send 'unlock' request to let the normal
        desktop resume.
      
    
    
      
	This event will be sent immediately before a fake enter event on the
	grab surface.
      
      
    
    
      
      
      
      
      
      
      
      
      
      
      
      
    
  
  
    
      Only one client can bind this interface at a time.
    
    
      
	A screensaver surface is normally hidden, and only visible after an
        idle timeout.