Samsung/Enlightenment Experiment With Wayland In A Widget
Enlightenment / Samsung OSG developers have been experimenting with running Wayland within a tool-kit widget. E.g. running the Weston terminal within an EFL tool-kit widget that in turn could be running on X.Org.
While it may sound just like fun for getting Wayland running within just a tool-kit widget as opposed to a nested Wayland session within a window, they are exploring it for both fun and profit with this offering a means of sandboxing too for security reasons.
Well known Enlightenment developer Mike Blumenkrantz has written a blog post about this effort to get a multi-way Wayland compositor into a tool-kit widget. The work included overcoming challenges about clipboard sharing and drag-n-drop support, bridging between compositors, etc.
Those wishing to learn more about this effort can read this Samsung OSG blog post.
While it may sound just like fun for getting Wayland running within just a tool-kit widget as opposed to a nested Wayland session within a window, they are exploring it for both fun and profit with this offering a means of sandboxing too for security reasons.
Due to Wayland’s philosophy of “build your own compositor,” there is no de-facto implementation of a Wayland display server that is analogous to Xorg for X11. Wayland implementations are written using the libwayland server API, and this is flexible enough to be used even in the case of a widget. Overall, the only noteworthy difference between putting a compositor in a widget and a normal nested compositor is that the output size is set to the size of the widget instead of the size of the window. With this in mind, a compositor widget can be manipulated just like any other widget, as it manages all protocol-related matters internally.
Well known Enlightenment developer Mike Blumenkrantz has written a blog post about this effort to get a multi-way Wayland compositor into a tool-kit widget. The work included overcoming challenges about clipboard sharing and drag-n-drop support, bridging between compositors, etc.
The compositor widget has a number of useful features, but perhaps the most overlooked feature would be the ability to run applications in a sandbox. Any application launched inside has no ability to directly affect anything outside of the widget, meaning that questionable applications can be run in a safe environment from the display server’s perspective. While it has obvious uses in security, the more mundane usage could simply be embedding a web browser into an application without the need to connect to any browser engine’s embedding API.
Adding a compositor widget to an application can allow content to be embedded in isolation. It provides seamless integration with existing desktop interactions and requires no special handling to be placed into a UI layout. It also allows Wayland applications to run under X11, although this is perhaps not as useful since there are very few Wayland-only applications at present.
Those wishing to learn more about this effort can read this Samsung OSG blog post.
6 Comments