layer shell
Status: protocol is mostly finalized and only undergoing minor revisions at the moment. There are client and server implementations that have proven everything except for popups, which are still under development/review.
Surface layers is a protocol extension designed to make portable desktop shell components possible. Among the use-cases supported by this protocol are:
- "Background" surfaces like static or animated wallpapers or perhaps some kind of conky deal
- Drawer-style terminal emulators like that old KDE thing
- Panels (taskbars) complete with "start" menus, context menus, etc
- Launchers like dmenu and rofi
- Notification daemons like dunst or Ubuntu's thing
- Lock screens
- On screen keyboards
- Desktop shortcuts
- Tools that select a region of the screen for screenshots
- Android-style notification drawer
- Showing visual feedback on touch-screen touches
- Displaying keypresses visually for presentations, recordings, live streams, or whatever
- Adding decorations to a mouse to make it stick out more during presentations, recordings, etc
- And more...
All of these components could be used on any compositor that supports surface layers.
Note that access to this protocol should be limited to trusted clients. This is entirely feasible but out of scope for this discussion.