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 client 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 client 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. 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 which side of the screen the panel is located. This is so that new windows do not overlap the panel and maximized windows maximize properly. Only one client can bind this interface at a time. A screensaver surface is normally hidden, and only visible after an idle timeout.