přejít na obsah přejít na navigaci

Linux E X P R E S, Diamantový desktop Beryl

Diamantový desktop Beryl

Když se na počátku roku 2006 objevilo video demonstrující možnosti Xgl, akcelerovaného X serveru od Novellu, vyvolalo to mezi příznivci linuxových desktopů doslova bouři. Co na tom, že bylo nutné mít dva X servery (normální a Xgl), co na tom, že to bylo nestabilní a trhané, nebo že to na většině grafických karet vůbec nejelo, co na velké závislosti na GNOME. Xgl byl zkrátka hitem, důkazem čehož může být Kororaa, live CD založené na Gentoo, které sloužilo pro otestování schopností hardwaru.


reklama

Beryl se bouřlivě vyvíjí, proto upozorňujeme, že některé informace uvedené v článku již nemusejí být aktuální - článek vyšel v listopadovém čísle našeho časopisu. Poznámka šéfredaktora.

Co je Xgl

Xgl je akcelerovaný X server, který používá rendering pomocí OpenGL a glitz. Neodmyslitelně k němu patří kompozitní správce oken, který má na starosti všemožné grafické efekty. Proto zároveň s ním Novell uvedl správce jménem glxcompmgr, který ovšem vyžadoval spoustu hacků pro integraci se správcem oken. Proto David Reeman, hlavní vývojář Xgl, uvedl nového správce jménem Compiz.

Obrázek: 00.jpg

OpenGL (Open Graphics Library) vzniklo rozšířením starší knihovny IRIS GL (Silicon Graphics IRIS Graphics Library), z čehož logicky plyne, že původním otcem této technologie je SGI. Dnes je OpenGL průmyslovým standardem pro počítačovou grafiku (jak 2D tak 3D), který je zastřešen konsorciem ARB (Architecture Review Board). Technicky jde o platformě nezávislé API, které umožňuje programátorům přistupovat přímo k funkcím grafické karty. Navíc existují i softwarové implementace této technologie (například Mesa), které ovšem umožňují provádět OpenGL funkce, které dostupný hardware přímo nedokáže akcelerovat. Těžko by se dnes hledala platforma bez odpovídající OpenGL implementace, přestože se je Microsoft snaží na Windows vytlačit ve prospěch vlastních, proprietárních řešení.

Už od počátku byl kritizován víceméně uzavřený způsob vývoje dvojice Xgl/Compiz, který se nelíbil mnoha lidem z komunity. Hlavní vývojář byl zavalen požadavky na nové funkce, na odstranění závislosti na gconfu a podobně, které nestačil implementovat.

API (Aplication Programming Interface) je sada definovaných funkcí a datových struktur, pomocí kterých může programátor používat externí knihovny. Oddělení rozhraní od implementace je dobrým zvykem, protože umožňuje implementovat nejrůznější kontroly a navíc je možné průběžně optimalizovat implementaci, přičemž se nemusí měnit aplikace, které danou knihovnu používají. Změny API se obvykle dělají pouze při nové verzi knihovny.

Obrázek: 01.jpg

Situace došla až tak daleko, že byl vytvořen fork Compizu s názvem Compiz-crystal, který se teď jmenuje Beryl. Nedávno (26. září 2006) uvolněná verze 0.1 dokazuje, že vývojáři vykonali ohromné množství práce. Beryl je nyní na GNOME zcela nezávislý, podporuje více pluginů a témat vzhledu. Je ovšem logické, že takové množství nového kódu obsahuje nějaké chyby, ale dá se říct, že při běžném používání nejvíce překáží fakt, že Beryl není více svázán s používaným prostředím.

K dispozici jsou zdrojové kódy, ebuildy pro distribuci Gentoo, balíčky pro Arch Linux nebo Ubuntu Edgy. Podporované grafické karty jsou nVidia s posledními ovladači, ATI a Intel.

Obrázek: 02.jpg

Jiné způsoby - AIGLX a Beryl

Existuje ještě jiná technologie, která nabízí podobné vlastnosti jako Xgl. Její název je AIGLX (Accelerated indirect GLX). V podstatě existují dva způsoby, jak může správce oken používat OpenGL ke komunikaci s grafickou kartou. Prvním způsobem je vytvořit speciální proud (stream) příkazů, který bude podobně jako kreslicí rutiny X11 pracovat způsobem klient/server. Tato nepřímá cesta znamená, že kreslicí příkazy jsou poslány nejprve X serveru, který je teprve přepošle do grafické karty. Druhým způsobem, použitým v Xgl, je otevřít okno a v něm prostřednictvím OpenGL knihovny posílat příkazy přímo grafické kartě. Nepřímý způsob akcelerace funguje úplně stejně jako X server. Navíc to umožňuje zachytit proud OpenGL příkazů a vytvořit z něj texturu. To umožňuje kompozitním správcům, aby pracovaly s běžným X serverem (pokud má rozšíření GLX).

Protože Xgl i AIGLX dělají v konečném důsledku totéž, lidé se logicky ptají na vztah těchto dvou technologií. Vývojáři Fedory odpovídají, že vzhledem k tomu, že bylo Xgl podstatnou část doby vyvíjeno uzavřeně, nebylo možné, aby vývojáři mohli spolupracovat. Navíc si mnoho vývojářů Xorg myslí, že cesta tvorby speciálního X serveru je špatná. Možná i proto si AIGLX našlo cestu do Xorg 7.1, jehož je součástí. To, co je podstatné pro uživatele, je fakt, že jak s Xgl, tak i s AIGLX je možné vychutnávat efekty, které kompozitní správce nabízí. Následující text se ovšem zabývá výhradně kompozitním správcem Beryl, který používá technologii AIGLX.

Obrázek: 03.jpg

Pokud vás zajímá, kde se vzaly diamanty v názvu tohoto článku, potom vězte, že beryl je nerost, který obsahuje příměs berilia. Z berylu se údajně vyráběla oční skla a údajně tak dal název dnešním brýlím. Vyskytuje se v několika variantách - akvamarín (světlemodrý), heliodor (žlutý), morganit (růžový) a nakonec smaragd (zelený). No a anglicky se smaragd nazývá emerald.

Obrázek: 12.jpg

Co umí kompozitní správce oken

Nejprve si asi všimneme jiné dekorace oken a průhledného titulkového pruhu. Po potáhnutí okna nás čeká "gumový" efekt, kdy se okno začne deformovat, jako by bylo z velice ohebného materiálu. Díky OpenGL akceleraci je posun oken naprosto plynulý, včetně obsahu okna, což je věc, se kterou jsem měl pod X serverem problémy.

Při maximalizaci se navíc efektně "přisaje" k okrajům plochy a pokud je chceme posunout, uvidíme, že se chvíli deformuje a až po nějaké chvilce se pustí. Okno po odtrhnutí zároveň zmenší svojí velikost, což je chování, které mi příliš nevyhovuje.

Rovněž maximalizace a minimalizace oken, jejich vytvoření nebo zavření, případně získání fokusu byla obohaceno o grafické efekty. Můžete si vybrat z následujících:

Obrázek: 04.jpg

  • None - žádný efekt;
  • Magic Lamp 1 - okno se objevuje jako džin z Aladinovy lampy;
  • Magic Lamp 2 - varianta předcházejícího;
  • Zoom - okno se postupně zmenšuje/zvětšuje;
  • Sidekick - okno začne rotovat, jako by někdo vrazil do jeho hrany;
  • Dream - okno se zavlní a postupně průhlední, až nakonec zmizí;
  • Wave - okno se zavlní a potom zmizí (jediný povolený efekt pro fokus).

Obrázek: 05.jpg

Další výraznou změnou je to, že se počet ploch smrskne na jednu. Na jednu, která je rozprostřena na 4 stranách krychle. To znamená, že správce ploch zobrazuje pouze jednu plochu, na liště programů jsou zobrazeny všechny, i přes nastavení zobrazovat okna z jedné plochy. Krychle je ovšem velice efektním prvkem. Pomocí kolečka myši nebo klávesových zkratek [Ctrl+Alt+šipka] jsme schopni se mezi nimi přepínat. Případně stačí přetáhnout okno na jinou stranu krychle. Pokud stiskneme šipku nahoru nebo dolů, dostaneme se na nevyužitelnou horní či spodní stranu, kde je pouze obrázek diamantu.

Obrázek: 06.jpg

Klávesová zkratka [Ctrl+Alt+PgDn] nás od krychle oddálí a zobrazí v rovině tři její strany a to tak dlouho, dokud budeme držet klávesy [Ctrl+Alt]. Pro přepnutí na jinou plochu pak stačí ještě stisknout šipku doleva, nebo doprava. Zde nefungují šipky nahoru a dolů. Zatím není možné počet stran rozšířit.

Samozřejmostí je také plná podpora průhlednosti. To se netýká pouze poloprůhledných titulkových lišt oken, ale i celých oken. Na rozdíl od pseudoprůhlednosti, se kterou jsme se mohli setkat doteď (příkladem může být aplikace Yakuake), je plná průhlednost něco zcela jiného. Jednak není řešená na aplikační úrovni, chová se realisticky a navíc ji neprovádí procesor, ale GPU grafické karty. Průhlednost se dá nastavit stiskem klávesy [Alt+kolečko myši]. Stiskem klávesy [Ctrl] naopak zmizí barvy a my uvidíme okno černobíle. Přiznám se, že opodstatnění tohoto efektu jsem nepochopil.

Stínování je další výraznou změnou aplikace. Menu, titulky, no prostě všechno má stín, který ovšem vypadá lépe než ten dosavadní.

Obrázek: 07.jpg

Mac OS X přinesl mimo jiného revoluční novinku s názvem Exposé. Jedná se o schopnost přeskládat všechna okna tak, aby se vešla na jednu plochu. Uživatel si pak stiskem vybere, kterou chce používat. Už před akcelerovaným desktopem existovaly náhražky jako třeba Komposé, ale ty rozhodně nedosahovaly rychlosti a použitelnosti originálu. Ovšem dnes je možné si tuto funkci "vychutnat" i na linuxovém desktopu. Existují tři typy této funkce, které se aktivují přesunutím myši do jednoho z rohů aplikace (nebo klávesovou zkratkou).

Zobrazení oken ze všech stran se aktivuje klávesou [F8], nebo v levém dolním rohu.

Okna z aktuální strany zobrazíme najetím do pravého horního rohu, nebo stiskem [F9].

Také si můžeme nechat vycentrovat aktuální okno a ostatní odsunout do pozadí, což zařídíme v levém horním rohu, nebo klávesou [F7].

Obrázek: 08.jpg

Java aplikace. Na kartě Intel se člověk může setkat s tím, že se mu nezobrazují aplikace napsané v Javě. Řešením je nastavit proměnnou AWT_TOOLKIT na hodnotu MToolkit (export AWT_TOOLKIT=MToolkit). GLX_EXT_texture_from_pixmap je další možností, kterou nabízejí ovladače karet nVidia. Jedná se o rozšíření OpenGL, které umožňuje zachycení proudu OpenGL příkazů do textury, která se nakonec renderuje. Technicky umožní použít buffery barev jak pro rendering, tak pro texturování (čímž se podobá WGL_ARB_render_texture). Momentálně se týká pouze karet nVidia s poslední verzí ovladačů.

Obrázek: 10.jpg

Velice užitečnou funkcí je zoom. Toto X serveru chybělo poměrně dlouho, protože aplikace xmag se s lupou ze systému Windows nemůže vůbec srovnávat. Dnes ovšem systém nabízí plnou podporu zoomování, a to přes klávesy [Super+kolečko myši]. Klávesa [Super] bývá často namapována na Windows klávesu.

Mezi další zajímavé funkce patří například způsob, jakým jsou neaktivní okna odsunuta do pozadí, různé polohy v kostce (vně a uvnitř) a další spousta grafických "blbinek".

Obrázek: 11.jpg

Emerald

S kompozitním manažerem Beryl je úzce spjat také Emerald theme engine, který má na "svědomí" vykreslování dekorací oken a výrazně se podílí na vzhledu celého desktopu. Ve světě unixu je poněkud nezvyklé mít správce oken rozdělený na dvě aplikace, na druhou stranu vývojářům toto rozdělení pomáhá při vývoji. Navíc je Emerald náhradou za gnome-window-decorator, jedná se o další odstranění závislosti na GNOME, po které mnozí lidé marně volali u Novellu.

Obrázek: 25.jpg

Obrázek: 26.jpg

Obrázek: 27.jpg

Aby to nebylo tak jednoduché, Emerald odděluje vzhled (themes) a frame engine, které je možné libovolně kombinovat. Navíc je vše plně a jednoduše nastavitelné, takže si hračičkové mohou vyhrát do sytosti.

Po přibližně týdnu používání Berylu jsem docela spokojený. Eye-candy efekty sice po čase omrzí a zdržují, ale jsou i věci, které jsou užitečné a na které si člověk zvykne (průhlednost, Exposé nebo plynulé přesuny oken).

Obrázek: 20.jpg

Mezi nevýhody patří přílišná syrovost aplikace, i když od verze 0.1 se nedají čekat zázraky. Nejméně stabilní část programu je pravděpodobně Emerald theme engine, ale ani samotný beryl nedokázal "rozchodit" spoustu nastavení. Navíc bylo nutné přidat Beryl do seznamu aplikací, navíc po spuštění správcem relací KDE se nikdy nerozběhl Emerald a bylo jej nutné spouštět ručně z aplikace beryl-manager. Pochopitelně neexistuje žádná integrace s mým používaným prostředí a Beryl navíc používá některé oblíbené klávesové zkratky (v důsledku čehož např. v Midnight Commanderu nefungují [F7]-[F9], Beryl je odchytne dřív). Další potíž jsem zaznamenal s OpenGL aplikacemi, které pod mojí grafickou kartou nefungovaly a s přehrávání videa, kdy nepracovaly efekty. Také OpenOffice.org je z tohoto hlediska docela problematický software.

Obrázek: 14.jpg

Nicméně, graficky vypadá desktop skvěle. Veškeré efekty zaujmou spoustu uživatelů více než suché vysvětlování systému práv anebo skvělého plánovače v jádře se složitostí O(1), takže jediné, na co se čeká, je integrace do stávajícího prostředí (zde má momentálně GNOME navrch) a také na další užitečné způsoby ovládání desktopu.

Obrázek: 13.jpg

Nahoru

Odkazy

(Jako ve škole)
Průměr: 1,50 | Hodnotilo: 2
 

Top články z OpenOffice.cz

Příspěvky

Re: Diamantový desktop Beryl
16. 04. 2007, 20:57:15
Odpovědět  Odkaz 
Hele fakt díky za super článek, to jsem přesně potřeboval vysvětlit jak si "hračička" přijde na své :)
Diamantový desktop Beryl
austin 11. 07. 2007, 12:32:37
Odpovědět  Odkaz 
Paráda. Díky moc.

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Michal Vyskočil

Vystudoval FIT VUT v Brně. V současné době pracuje jako engineering manager v pražském SUSE. Nadšený uživatel Linuxu a open-source technologií. Autor mnoha článků na českých linuxových webech.


  • Distribuce: openSUSE
  • Hodnocení autora: *


CIO Agenda 2016