Fedora 21 bude obsahovat GNOME 3.14, které už velmi slušně podporuje Wayland. Chcete si vyzkoušet, jak GNOME na Waylandu funguje? Je to ve skutečnosti velmi jednoduché. Pojďme se podívat na to, jak GNOME na Waylandu ve Fedoře 21 běží, co už funguje a co hotové ještě není.

(Pozn. redakce: článek původně vyšel v angličtině na fedoramagazine.org, autor jej přeložil a doplnil o několik dalších faktů, které se od té doby objevily)

Abyste mohli GNOME na Waylandu používat, musíte nainstalovat balíček gnome-session-wayland-session (ve Fedoře 21 Beta už bude s největší pravděpodobností předinstalovaný). Potom se odhlašte a na přihlašovací obrazovce vyberte mezi prostředími GNOME na Waylandu. A to je vše! Poté, co kliknete na tlačítko „Přihlásit“, se ocitnete v GNOME, které běží na Waylandu.

gdm-wayland

Do GNOME na Waylandu se dostanete z přihlašovací obrazovky.

Myslím, že dříve, než se podíváme na to, jak GNOME na Waylandu běží, bychom si měli vysvětlit, co Wayland vůbec je. Rozšířeným omylem je, že se jedná o zobrazovací server, vrstvu mezi klienty (aplikacemi) a jádrem, jak je tomu u X nebo Miru. Ve skutečnosti je Wayland pouze protokol, který definuje, jak kompozitor komunituje s klienty. Vývojáři GNOME museli napsat podporu pro Wayland do Mutteru, který v tomto prostředí figuruje jako kompozitor, a nyní díky této práci může fungovat také jako kompozitor Waylandu. Nedá se očekávat, že by se v dohledné době všechny aplikace přeportovaly na Wayland. Některé z nich nebudou portovány asi nikdy. Z tohoto důvodu vznikl XWayland, který spoustí X jako klienta a na nich potom aplikace, která X stále potřebuje, běží.

Architektura Waylandu.

Architektura Waylandu.

Zajímavost: Věděli jste Wayland získal své jméno? Je to malé město v americkém státu Massachusetts. Kristian Høgsberg, zakladatel Waylandu, skrz toto město projížděl, když finalizoval návrh nového zobrazovacího protokolu, a jméno bylo na světě. Weston, referenční kompozitor Waylandu, je zase pojmenovaný po městečku, které leží šest kilometrů východně od Waylandu.

Jak GNOME na Waylandu ve Fedoře 21 funguje? Musím se přiznat, že jsem byl opravdu překvapený, jak daleko se vývojáři GNOME s podporou Waylandu dostali. Téměř všechna funkcionalita, kterou od desktopu očekáváte, už tam je. Dojem na mě udělala stabilita. GNOME na Waylandu jsem používal několik dní a ani jednou nespadlo.

Dnes už téměř všechny aplikace GNOME Wayland podporují. Můžete se podívat na wiki stránku s indikátory, chcete-li vědět, jak na tom jednotlivé aplikace jsou. Wayland zatím nepodporují následující: Terminál, Empathy, Totem, PiTiVi a Sushi. Podle mých zkušeností je ale tento seznam přece jenom delší. Nemohl jsem na Waylandu spustit například. GNOME Software.

Zatím není implementovaný mechanismus, který by dokázal určit, jestli už má aplikace podporu Waylandu a má se spustit přes Wayland, nebo potřebuje X a tedy musí běžet pomocí XWaylandu. Proto se ve Fedoře 21 spouští všechny aplikace preventivně v XWaylandu. Pokud je chcete spustit nad Waylandem, musíte použít následující příkaz: GDK_BACKEND=wayland gedit (za gedit si dosaďte libovolnou aplikaci, kterou chcete spustit). Nicméně téměř všechny aplikace, které dnes v linuxovém desktopu najdete (Firefox, LibreOffice,…), ještě portovány na Wayland nejsou a spustíte je tedy pouze přes XWayland. Aplikace, které se spouští v celoobrázkovém režimu, mi neběžely ani v XWaylandu. Zkoušel jsem několik her ze Steamu a vše skončilo chybovou hláškou, aniž by se hra vůbec spustila.

Co v GNOME na Waylandu ještě úplně nefunguje:

  • Funkce, které vyžadují zdroje mimo aplikaci, nefungují a obecně ani v budoucnu fungovat nebudou. Wayland je tak navržený. Aplikace se nemůže dostat ke zdrojům někoho jiného. To je změna oproti X serveru, kde se naopak jakákoliv aplikace může dostat prakticky ke všem datům, které přes X server protékají. Proto je tak jednoduché napsat třeba keylogger. Izolace na úrovni zobrazovacího serveru výrazně posílí bezpečnost linuxového desktopu. Nicméně momentálně to má spíše negativní dopad na uživatelskou přívětivost. Aplikace nemůžou dělat například snímky obrazovky (zkoušel jsem Shutter a opravdu to nefungovalo). Nefungují ani takové věci jako výběr barvy kdekoliv na obrazovce. V budoucnu by mělo vzniknout API D-Busu, přes které by si mohly aplikace o data mimo aplikaci požádat a dostat je. Nejčastěji používané funkce pak můžou být implementovány přímo v GTK+ a Mutteru, jako už tomu je u schránky a drag’n’drop.
  • Kurzor myši se v XWaylandu nemění, aby indikoval, jestli jste najeli na webový odkaz, nebo že můžete změnit velikost okna, když najedete na jeho okraj.
  • Změna velikosti oken v XWaylandu je zatím dost trhaná. Naopak nad Waylandem je tato operace plynulejší, než kdy byla nad X serverem.
  • Když se GNOME Shell restartuje (restartoval jsem jej schválně na zkoušku, protože jak jsem říkal, ani jednou mi sám od sebe nespadl), sezení se obnoví, ale přijdete o všechna okna. Je otázkou, jestli bude zachování běžících aplikací jednoduché s Waylandem implementovat, protože nyní Mutter funguje přímo jako zobrazovací server a pokud spadne, už nemá k dispozici X server, který by běžící okna udržel a obnovil.
  • Okna běžící na Waylandu si kolem sebe drží okraje. Když tedy chcete okno tažením do strany roztáhnout na půlku obrazovky, nevyplní celý prostor, ale je kolem okna pruh prázdného místa. To samé můžete zpozorovat i v náhledu Činnosti, kde se podobná mezera objeví mezi náhledem okna a proužkem, který náhled zvýrazní, když na něj najedete.
  • Některá gesta v GNOME Shellu zatím nefungují. Například posouvání myší mezi spouštěči aplikací v Činnostech. Gesta v levém horním rohu pro přepnutí do Činností a na dolní hraně obrazovky pro zobrazení dolní panelu fungují starým způsobem. Od GNOME 3.8 se používá efekt tlaku na hranu obrazovky, kdy nestačí jen najet myší ke hraně, ale musíte opravdu vyvinout tlak na hranu, aby se gesto provedlo. To zamezovalo provádění těchto gest omylem. Nad Waylandem se ale zatím používá jen starý způsob, takže je zase pravděpodobnější, že gesta provedete omylem.
  • Více obrazovek. Když jsem to zkoušel já, externí monitor nebyl ani detekovaný. Nicméně podle některých lidí to spravila jedna spoledních aktualizací.
  • Virtualizace. Zkoušel jsem GNOME na Waylandu zatím jen nad KVM/SPICE, takže nemůžu tak úplně mluvit za jiná virtualizační řešení (VirtualBox, VMware), ale ve virtuálce to prostě nefungovalo vůbec. Určitě potěší, že na železe by člověk neměl mít problém. GNOME na Waylandu už funguje se všemi otevřenými ovladači (intel, radeon, nouveau). Uzavřené ovladače od nVidia by také teoreticky mohly fungovat, protože funkce EGL, které jsou potřeba, podporují, ale jak je to v praxi, netuším. Catalysty s Waylandem nefungují určitě, protože ony funkce EGL prostě nepodporují. S Catalysty ostatně ve Fedoře nefunguje GNOME ani nad X serverem, protože už je zkompilováno s backendem Waylandu a po těch funkcích se ptá.
Když roztáhnete okno na půlku obrazovky, zůstane kolem něj prázdný okraj.

Když roztáhnete okno na půlku obrazovky, zůstane kolem něj prázdný okraj.

A co ostatní prostředí? GNOME je s podporou Waylandu zatím nejdále. Jediným dalším prostředím, které Wayland podporuje, je Enlightenment 0.19, ale netuším, jak dobrá ta podpora je. A E19 ve Fedoře stejně nenajdete.

KDE Plasma musí ještě nějakou cestu k podpoře Waylandu urazit. Zvolili trochu jinou strategii než vývojáři GNOME. Rozhodli se jako kompozitor použít referenční Weston, který úzce provázají s Kwin. Ostatní desktopová prostředí asi nebudou v dohledné době Wayland podporovat (tak podle Martin Gräßlina, hlavního vývojáře Kwinu, nakonec z Kwinu kompositor Waylandu udělají a Weston používat nebudou). U ostatních prostředí podporu Waylandu v dohledné době čekat asi nemůžeme. Především kvůli nedostatku vývojářů. Například Xfce nemá žádné krátkodobé plány Wayland podporovat. Jeden přispěvatel do Xfce na na LinuxDays řekl, že je pro ně nyní prioritní přechod na GTK+ 3, což vzhledem k nedostatku vývojářů může trvat až dva roky, a až potom můžou začít o Waylandu uvažovat.

Každopádně pokud si rádi hrajete se žhavými novinkami, GNOME na Waylandu určitě vyzkoušejte. Je překvapivě stabilní a nabízí téměř kompletní zážitek z desktopu.