Efterhand som jag lär mig mer om wayland desto skeptiskare blir jag. Möjligt att jag har missuppfattat saker men det ser inte lovande ut.
En av de största skillnaderna mellan X och wayland är att wayland är säkrare. I X kan alla program som får ansluta till X servern göra allt. Alla program kan läsa all input, injecta input till andra program, läsa alla bitmaps, skriva över andra programs bitmaps med sina egna, osv¹. Xorg är som en bil från 1950-talet. Inga krockkuddar, bälten eller deformationszoner. Wayland är mer som en bil utan motor. Om man inte kan köra bilen är den säker.
Wayland api:t har inte stöd några lågnivå operationer t.ex. byta upplösning, gamma, screenshot eller ens något sätt att bestämma var fönster ska placeras. Allt det hanteras av compositorn. Det är därför omöjligt att skapa program som synergy, redshift, scrot och liknande på ett portabelt sätt så de fungerar med alla wayland compositors.
Vad man kan göra är att implementera all den funktionaliteten som i X sköts av tredjepartsprogram direkt i compositorn. Det betyder att Kwin, Mutter, Sway och alla andra compositors måste implementera sina egna lösningar för saker som synergy, OBS, xbindkeys och de hundratals andra lösningar som använder xlib direkt. Det är något som vi redan ser. Gnome-redshift är en gnome clone av redshift direkt i Mutter eftersom redshift inte funkar i wayland. Detta leder till massa upprepade lösningar för samma funktionalitet och de flesta lösningarna kommer antagligen vara kassa.
En annan lösning är att funktionaliteten implementeras som plugins eller extern api till compositors. Sannolikheten att alla compositors kan komma överens om en standard plugin api utan att wayland api:t fastställer api:n är inte troligt. Det blir som med webbläsare. Vilka plugins som finns varierar stort mellan browsers. Det är inte nog att en webbläsare är en bra browser, om det inte finns ett stort urval av plugins är webbläsaren ändå oanvändbar. Detta är också något vi redan ser. Sway har sin egna externa api för att ändra gamma vilket en patchad version av redshift kan använda. Den versionen av redshift funkar givetvis inte på Kwin eller Mutter.
(1). Det är inte helt sant att X saknar säkerhet. Det finns X extensions som XACE som kan användas för att begränsa vad program får göra så att bara privilegierade program kan göra farliga saker. Men så vitt jag vet finns det ingen distribution som använder den funktionaliteten. Det skulle vara möjligt att göra något liknande för wayland. Det fanns ett förslag för en "Wayland Security Module" som skulle funka på detta sätt men det har inte pratats något om det på ett bra tag. Utvecklaren för mutter sa att han inte tänker lägga till stöd för WSM i mutter för han tycker inte att externa program ska kunna göra något privilegierat. Diskussionen dog ut efter det. Det är möjligt att vi i framtiden kommer få någon lösning men det ser inte ljust ut. Utvecklarna för wayland är ganska fientligt inställa till iden och varje gång någon ger förslaget att externa program borde kunna komma åt lågnivå funktionalitet på ett portabelt sätt blir svaret något i still med detta:
https://lists.freedesktop.org/archives/wayland-devel/2016-Mar...
https://www.reddit.com/r/linux/comments/3uf66w/some_things_im...
Här är en reddit tråd där en användare undrar hur hans egna lösningar skulle funka i wayland. Huvudutvecklaren för kwin, Martin Graesslin (mgraesslin) svara att han kanske kan lösa samma sak med kwin plugins. Användaren undra då hur man kan lösa samma sak på ett portabelt sätt så att han inte målar in sig i ett hörn med vendor lockin i kwin. Martin svara:
"Does it have to be portable? Why would you need your custom scripts to work with multiple Wayland compositors? Yes in theory I agree that this is a drawback, but in practice it just doesn't matter, because one doesn't change the Wayland compositor each day."
No problem alltså eftersom man inte byter desktop varje dag. Martin tycks helt missa poängen eller mer troligt föredrar den nuvarande lösningen just pga. det leder till vendor lockin.
https://bugs.winehq.org/show_bug.cgi?id=42284#c1
Vissa andra är inte lika nöjda. Michael Müller är en av wine utvecklarna:
"IMHO, it is not a good solution to remove features just because an application could abuse them. I can understand this for security relevant features, like grabbing the keyboard and mouse input from another window, but not for things like specifying the window position. It is like removing the possibility to delete files, because the user could accidentally click on the wrong file, instead of implementing a recycle bin. Adding a way to recover from situations in which programs misbehave would be a better solution, but this is just my opinion."