The Fixings Of Wayland
(numbered to match-up with the failings of X.)
I) The entire protocol is versioned. Every listener gets exactly
the version they support, nothing more. No more randomness.
II) The input system in Wayland looks a lot like Xinput 2.2,
minus all the legacy cruft and minus the Master/Slave relationship between inputs.
Everything gets one virtual keyboard, one virtual mouse, and one non-virtual tablet
interface. The nightmare called multitouch will finally be sorted out. Note from
Daniel: As one of the authors of multitouch, I feel pretty qualified to say that
III) Wayland HAS no drawing API to mess around with. Wayland
wants buffers filled with pixels from clients and, aside from the security hooks
to make sure clients aren't messing with eachother's buffers, it doesn't care
how those pixels got there. Clients control what pixels those buffers hold, this
way what gets displayed on screen is EXACTLY what the client wants.
IV) Wayland is minimal. There's no over-arching Psuedo-OS
controlling your graphics display. There's no 26yr old API “Getting in the
way.” Clients carry the brunt of the work, which is okay because clients
don't have to maintain extreme-backwards-compatibility. Qt5 dropped Qt3 support.
X still has to maintain things that were written 26yrs ago. And things from 26yrs
ago, are getting in the way of fixing things TODAY.
A) Note from Daniel: Wayland is
also non-blocking, so your entire desktop doesn't stop rendering just because
one client hangs or is going through an expensive operation. Only THAT client
V) Composition is mandatory under Wayland. That isn't to say
that everything has to have 3D effects or wobbly windows. By composition we mean
that everything is tear-free, flicker-free and flash-free. Wayland's motto is
“Every frame is perfect.” Every pixel is exactly WHAT it should be,
WHERE it should be, and be there WHEN its supposed to be there-- as dictated by
VI) Clients handle fonts, like they do now anyway.
VII) Multi-monitors is a client problem. Same with multiple
graphics cards (Optimus). Wayland only wants buffers filled with pixel and to
be told where to display them. It doesn't care how they got there.
VIII) Unlike X which had everything as its own window at first,
Wayland supports 2 types of windows. Top-level windows, which are essentially
wrappers around multiple buffers. And sub-surface windows, which is mainly targeted
at video playback.
A) They are kept coherent though,
unlike X, so no tearing or thrashing of the window just because you scrolled down
the YouTube comments section while the video was playing.
IX) Wayland doesn't deal in global coordinates, at least not
publicly. It deal's in surface-relative coordinates. Wayland's coordinate counter
is 31-bits, which means each SURFACE (read: window) can be 2,147,483,648 pixels
X) As a security precaution...your screensaver and locker are
apart of the compositor. This has an added benefit because your compositor (Eg:
kwin) DOES understand your media keys, so even while your screen is locked you
can still mute your media.