UI customization on Wayland

Let’s forget for a second about video drivers, whether it has acceleration or not, and all the related issues with hardware support on Wayland. This is all solved. Let’s talk about the user interface (UI) and ways to customize it all over the computing continuum — from phones, tablets and TV box to desktop PCs, Invehicle Infotainment (IVI), aeroplane systems, among others.

wayland-ui-customization

(I’ve made a cheat sheet here also — Creative Commons Legal Code Attribution 2.0. for both figures)

On customization, the shell plugin comes first: changes in there will impact directly which UI paradigm will be used. Specifically, one implementing the plugin protocol will be defining whether the UI is meant for phones, IVI, desktops, etc.

Probably the most important characteristic of the shell plugin is to give “roles” for surfaces, i.e. define where and how they will be mapped on the screen. For example, if a client wants its surface mapped as a top-level window, or say to resize the dimensions of it, then it’s up to the shell to expose these different surfaces roles, all according the UI paradigm the shell itself is providing.

Worth to note that the shell plugin doesn’t need to rely on any drawing library or graphics toolkit because it doesn’t tackle directly drawing aspects. Also, conceptually it’s mandatory to give roles for surfaces and therefore a shell plugin is a must (or at least a simple implementation of surface::configure).

An special shell client through an special “private” protocol can be used for setting up basic UI elements that require special treatment. For example in the desktop UI, widget elements such as panel, dock, lockscreen and cursors will need special treatments for their positioning, grabbing semantics and so forth.

On customization, different shell clients, exposing different UI elements can be implemented using *the* *same* shell plugin. Some architectures will rather be using one overlay simple client that will take care of spawning and controlling other UI basics applications also.

The special client will probably want to rely on graphics toolkits.

Wayland clients use the Wayland core protocol and the protocol that shell plugin has defined. The corollary is that one client will always know the UI paradigm (due shell plugin) and will *not* work across different paradigms. Though, that doesn’t mean applications will need to know their paradigm necessarily but only the middleware software is connecting to Wayland (like the graphics toolkits).

A footnote about Canonical’s Mir

Canonical announced their new display manager yesterday. There’s a section “Why Not Wayland / Weston?” where they claim:

“we consider the shell integration parts of the protocol as privileged and we’d rather avoid having any sort of shell behavior defined in the client facing protocol.”

and something similar was written here also:

” Wayland .. exposes privileged sections like the shell integration that we planned to handle differently, both for security reasons and as we wanted to decouple the way the shell works on top of the display server from the application-facing protocol”

so they would rather have:

“An outer-shell together with a frontend-firewall that allow us to port our display server to arbitrary graphics stacks and bind it to multiple protocols.”

First of all, there’s nothing privileged about the shell protocol Wayland is exposing. wl_shell and wl_shell_surface (the “shell protocols”) are part of the Wayland core protocol, yes, but as I’ve explained on this post, it’s all customizable for whatever UI needs. Nevertheless, their usage is completely optional and anyone can build a different shell and stack with the rest of Wayland, just like tablet-shell protocol for instance does. Still, this will be Wayland and use the shiny libwayland for IPC.

Therefore I don’t think Canonical should justify their new project because Wayland “does not fulfill .. requirements completely”. There are no technical reasons Ubuntu cannot use Wayland in principle. What they wrote there is a very very mean excuse instead.

About these ads

Tags: , , , , , , ,

9 Responses to “UI customization on Wayland”

  1. Gus Says:

    I agree, in the end they should just have come clean with the real reason: they have a very aggressive time-to-market schedule, and they don’t have the time to gather consensus and fix all issues now.

    It’s a valid business reason, if costly, but it’s better than “the other solutions are broken… maybe”.

  2. Ubuntu Mir: Is This the Future of Linux Everywhere? Says:

    […] isn’t buying it. “There are no technical reasons Ubuntu cannot use Wayland in principle,” he wrote in a blog post. “What they wrote there is a very very mean excuse […]

  3. Ubuntu Mir: Is This the Future of Linux Everywhere? « Online Scoop Magazine Says:

    […] isn’t buying it. “There are no technical reasons Ubuntu cannot use Wayland in principle,” he wrote in a blog post. “What they wrote there is a very very mean excuse […]

  4. Ubuntu Mir: Is This the Future of Linux Everywhere? | Matias Vangsnes Says:

    […] isn’t buying it. “There are no technical reasons Ubuntu cannot use Wayland in principle,” he wrote in a blog post. “What they wrote there is a very very mean excuse […]

  5. Ubuntu Mir: Is This the Future of Linux Everywhere? | Old Click Says:

    […] isn’t shopping it. “There are no technical reasons Ubuntu can't use Wayland in principle,” he wrote in a blog post. “What they wrote there is a unequivocally really meant forgive […]

  6. Ubuntu Mir: Is This the Future of Linux Everywhere? | The Linux Site Says:

    […] isn’t buying it. “There are no technical reasons Ubuntu cannot use Wayland in principle,” he wrote in a blog post. “What they wrote there is a very very mean excuse […]

  7. Ubuntu Mir: Is This the Future of Linux Everywhere? | Install Ubuntu Says:

    […] isn’t buying it. “There are no technical reasons Ubuntu cannot use Wayland in principle,” he wrote in a blog post. “What they wrote there is a very very mean excuse […]

  8. Автор форка Wayland удалён из списка рассылки и заблокирован на IRC-канале Wayland | AllUNIX.ru — Всероссийский портал о UNIX-системах Says:

    […] создание форка неоправдано, так как озвученные идеи можно реализовать в форме плагина и набора компонентов, работающих на […]

  9. Linux Graphics / GPU / X / Wayland Architecture | Life in Linux Kernel Says:

    […] http://vignatti.com/2013/03/05/ui-customization-on-wayland/ […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.

%d bloggers like this: