Kapitola 6. X Window Systém

Obsah
xf86config
XF86Setup
Spouštěcí konfigurační soubory (Session Configuration Files)
Servery a Window Managery
Vybíráme si Desktop
Exportování displayů
Shrnutí

X Window System je standardním GUI (grafické uživatelské rozhraní) na všech UNIXových platformách, tedy i na Linuxu. Narozdíl od Windows či MacOS je GUI v Linuxu odděleno od hlavního operačního systému jádra. To systému přidává na stabilitě: Jestliže GUI zhavaruje, nevezme s sebou i celý zbytek systému.

Jedním problémem s X je ten, že už tradičně je poměrně obtížně konfigurovatelný. Proto Slackware 7 uvedl ne-kofigurovací nastavení pro X, které používá ovladač framebufferu. To znamená, že nemusíte procházet procedurami popsanými v sekcích xf86config a XF86Setup. Framebuffer bude pracovat na veškerých video kartách, které splňují standard VESA 2.0. To značí, že všechny moderní video karty budou pod X fungovat. Na druhou stranu je framebuffer znatelně pomalejší než konfigurace X ušitá vašemu systému na míru.

Pokud se rozhodnete používat framebuffer server, budete muset nainstalovat balíček xxfb.tgz ze softwarové skupiny X. Rovněž byste si měli během instalace vybrat rozlišení pro konzoli. Doporučená volba pro X je pro většinu lidí obvykle tou nejlepší.

Rozhodnete-li se konfigurovat X pro váš systém, budet potřebovat projít následující instrukce v sekcích xf86config, nebo XF86Setup. První sekce popisuje používání programu xf86config(1), což je program pro konfiguraci X, pracující v příkazové řádkce. Druhá sekce popisuje program XF86Setup(1), což je grafická verze konfiguračního programu.

xf86config

xf86config je jedním ze dvou programů, které mohou být použity pro nastavování X na vašem systému. Základní idea je jednoduchá: Budete počastováni řadou dotazů a možností jak odpovědět. Vybírejte odpovědi, které vašemu systému padnou nejlépe. Po projití celým programem bude vytvořen soubor /etc/XF86Config(5) a váš systém budete připraven na spuštění X. Pokud se během dotazování někde spletete, budete muset program ukončit použitím control-c a začít znovu od začátku.

Velice pomůže, když si zjistíte maximum informací o vašem monitoru a video kartě ještě dřív, než xf86config spustíte. Získat informace o videokartě vám pomůže rovněž program SuperProbe:


   # SuperProbe

Ten vám nejdříve vypíše varování o možném uzamčení (zatuhnutí) systému. Pokud vás to vyděsí, máte pět vteřin na to, abyste stiskem control-c testování zabránili. V opačném případě se dočkáte informací o nastavení vaší video karty:


        First video: Super-VGA
        Chipset: ATI 264GT3 (3D Rage Pro) (Port Probed)
        Memory: 4096 Kbytes
        RAMDAC: ATI Mach64 integrated 15/16/24/32-bit
                DAC w/ clock
                (with 8-bit wide lookup tables)
                (programmable for 6/8-bit wide lookup tables)
        Attached graphics coprocessor:
                Chipset: ATI Mach64
                Memory: 4096 Kbytes

Tak takhle nějak vypadají informace o kartě ATI Rage Pro. Zapište si tyto informace, a nebo se přepněte na další virtuální terminál (použitím klávesové zkratky alt-Fx) a spuťte xf86config. Informace o videokartě budete později potřebovat. Program xf86config musíte spouštět jako root, protože bude zapisovat soubory a vytvářet symbolické linky v místech, kde je dovoleno zapisovat pouze rootovi:


   # xf86config

Po spuštění vás xf86config uvítá obrazovkou plnou textu popisujícího, co všechno se chystá provádět. Pamatujte, neexistuje možnost vracet se zpět na předchozí obrazovku uděláte-li chybu, takže odpovědi vybírejte pečlivě. Jinak to budete muset dělat několikrát. Takže teď stiskněte enter, jak vás o to žádá.

Protokol myši

Vyberte si ze seznamu typ myši, který máte. V současnosti většina myšek bude PS/2 nebo Microsoft Intellimouse. Starší myši budou pravděpodobně vyžadovat nějaký jiný uvedený typ.

Emulace 3. tlačítka

Pokud máte na myši jen dvě tlačítka, můžete si vyžádat emulaci třetího tlačítka. Kliknutí obou myších tlačítek současně bude interpretováno jako stisk třetího tlačítka. Protože mnoho programů využívá třetího tlačítka, je tato emulace doporučována. Máte-li třítlačítkovou myš, emulaci nepotřebujete.

Jméno zařízení myši

Obvykle vyhoví defaultní /dev/mouse. Ovšem máte-li myš zapojenou do nějakého zvláštního portu, možná budete muset zadat něco jiného. Většině sériových a PS/2 myší defaultní nastavení vyhovuje.

Rozšíření XKEYBOARD (klávesnice v X)

Pravděpodobně budete chtít používat rozšíření X klávesnice. Pokud to nevyberete, dočkáte se podivného chování kláves backspace a delete. Vybráním rozšíření zajistíte, že se tyto klávesy budou chovat tak jak mají.

Vazby na klávesy alt (Bindings for alt keys)

Chcete-li zadávat znaky z jiných jazyků než angličtiny, měli byste vázání kláves alt povolit. Chystáte-li se psát pouze angličtinu, tyto vazby potřebovat nebudete.

Rozsah horizontální synchronizace (Horizontal sync range)

Tohle je první z řady otázek týkajících se monitoru. Je důležité, abyste tady vybírali opravdu moudře. Nezadávejte rozsah, který je mimo specifikace vašeho monitoru. U nových monitorů to tak důležité není, protože ty se nebudou pokoušet dělat nic, co by bylo mimo rozsah jejich specifikací. Ovšem starší monitory se mohou poškodit. Jste-li na pochybách, zvolte konzervativnější rozsah.

Dokumentace k vašemu monitoru bude dobrým referenčním zdrojem pro několik následujících otázek. Pro většinu novějších monitorů můžete nejspíš vybrat 31.5-48.5, nebo 31.5-57.0. Máte-li high-end monitor, můžete vybrat některý z vyšších rozsahů. Nebo si můžete zadat vlastní rozsah horizontální synchronizace, nevidíte-li žádný, který by se vám hodil.

Rozsah vertikální synchronizace (Vertical sync range)

Ještě jednou: Budete potřebovat znát specifikace vašeho monitoru, abyste mohli odpovědět na tuto otázku. Jste-li na pochybách, vyberte menší rozsah. Bezpečnou volbou by měla být 50-90 nebo 50-100. Pokud nevidíte rozsah, který by vyhovoval vašemu monitoru, můžete jej zadat ručně.

Identifikační řetězce

Nyní budete ve třech dotazech požádáni o zadání identifikačních řetězců pro váš monitor. Nejsou nijak strašně důležité. Můžete to jenom odentrovat. A nebo si to můžete pojmenovat jakkoliv chcete. Tyto řetězce budou použity v konfiguračním souboru pro identifikační účely.

Databáze video karet

Následující část konfigurace X se zabývá vaší videokartou. Teď se vám bude velmi hodit dokumentace ke kartě a rovněž informace získané pomocí SuperProbe. Na úvodní otázku odpovězte "y", protože budete potřebovat probrat se databází videokaret, abyste tam našli tu vaši. Pouhé odentrování by prohledávání databáze přeskočilo a vy byste se dostali rovnou do další části konfigurační procedury.

V databázi je přes 800 karet. V levém sloupci je pořadové číslo karty a její název. V pravém sloupci je uveden chipset této karty. Mačkejte enter tak dlouho, dokud v seznamnu nenajdete vaši videokartu. Až ji najdete, napište její číslo a stiskněte enter. Pokud nevíte jaký druh videokarty máte, je tu několik možností co s tím: Zaprvé se můžete podívat na výpis programu SuperProbe, jaký "chipset" tam je uveden a pokusit se najít v databázi kartu s odpovídajícím chipsetem. Nebo můžete použít typ generic SVGA. Mnoho karet, které nemají svůj vlastní server, je podporováno SVGA serverem, takže toto by měla být bezpečná volba.

Po vybrání karty se vám dostane několika doplňujících informací. Například pro výše zmiňovanou ATI Rage Pro jsou to tyto informace:


   Your selected card definition:

   Identifier: ATI Mach64
   Chipset:    ATI-Mach64
   Server:     XF86_Mach64
   Do NOT probe clocks or use any Clocks line.

V tomto bodě byste měli pro jistotu zkontrolovat, zda máte nainstalovaný serverový balíček. XF86_Mach64 server je v balíčku xma64.tgz. Ověřte si, zda je nainstalovaný správný serverový balíček, protože jinak nebudou X schopna běžet.

Který server provozovat?

Tato otázka nabízí několik serverů, které můžete používat. Pokud jste správně vybrali videokartu, můžete bezpečně stisknout enter. Tím řeknete X-kám, aby používaly ten server, který odpovídá kartě. Jinak si můžete vybrat k používání Mono server, VGA16 server, SVGA server a nebo akcelerovaný server. Nejlepší volbou je používat server odpovídající kartě.

Vytvoření sybolického odkazu

Pro vytvoření sybolického odkazu odpovězte "y". To vytvoří odkaz k příslušnému X serveru.

Video paměť

Vyberte, jakou velikost paměti vaše karta má. K získání této informace může posloužit SuperProbe. Máte-li velikost jinou, než nabízejí vypsané volby, můžete vybrat "Other" a zadat jinou velikost. Dejte pozor, abyste velikost paměti uvedli v kilobajtech.

Identifikační řetězce

Budete vyzváni, abyste zadali další tři identifikační řetězce. Tyto se vztahují k vaší videokartě. Jako u monitoru i zde je zcela v pořádku pouze odentrovat všechny tři otázky, jestliže nechcete svou videokartu nijak pojmenovávat.

RAMDAC
Vybírat nastavení RAMDAC budete potřebovat jedině v případě, pokud používáte servery S3, AGX nebo W32. SuperProbe vám řekne, jaký druh RAMDAC chipu je na vaší videokartě. Projděte seznamem dokud nenajdete správný chip, potom zadejte odpovídající číslo. Pokud nepoužíváte ani jeden ze zmíněných serverů (S3, AGX, W32), zadejte "q", aby se pokračovalo dál bez vybírání RAMDAC.

Nastavení hodinového chipu (Clockchip setting)

Má-li vaše karta programovatelný hodinový chip, budete potřebovat vybrat jeden z následujícího seznamu. Většina karet nemá programovatelný hodinový chip, takže by mělo stačit odpovědět jen stiskem entru. SuperProbe by vám řekl, jestli má vaše karta tento chip.

Clocks line

Další obrazovka plná textu vysvětluje, co to clocks line je. Jak je tu řečeno, nebudete to na většině moderních konfigurací potřebovat. Potom se vás to zeptá, jestli by se měly hodiny testovat. Rovněž vám to řekne, jestli karta otestovnání potřebuje, nebo ne. V případě oné ATI karty xf86config říká:


   The card definition says to NOT probe clocks.

Pokud to říká něco takovéhoto, odpvězte "n" na otázku o testování karty na hodiny. Velmi staré grafické karty potřebují být testovány. xf86config vám řekne, co je potřeba udělat.

Video módy

Nyní přichází čas vybrat video módy, které váš X server bude používat. Uvidíte čtyři různé hloubky barev - 8bpp, 16bpp, 24bpp a 32bpp. Každá bude mít seznam různých videomódů, které mohou být provozovány při dané barevné hloubce. Když startujete X-ka, začne se s defaultní barevnou hloubkou a prvním rozlišením vypsaným u dané hloubky. Pokud chcete startovat X-ka defaultně v jiném rozlišení, máte to teď možnost nastavit.

Když je pořadí videomódů v pořádku, můžete vybrat "OK" a pokračovat v procesu nastavování. V opačném případě vyberte barevnou hloubku, kterou chcete změnit. Například předpokládejme, že vám byly nabídnuty následující možnosti:


   "640x480" "800x600" "1024x768" "1280x1024" for 8bpp
   "640x480" "800x600" "1024x768" "1280x1024" for 16bpp
   "640x480" "800x600" "1024x768" "1280x1024" for 24bpp
   "640x480" "800x600" "1024x768" for 32bpp

Chcete-li startovat X-ka defaultně v jiném rozlišení, vyberte nejdřív barevnou hloubku, kterou změnit. Potom se řiďte pokyny, které vám dává xf86config. Vyzve vás k zadání číslic, které odpovídají pořadí oněch rozlišení. Pokud byste třeba chěli jen jednoduše otočit pořadí rozlišení, mohli byste odpovědět:


   Which modes? 5432

Rovněž máte možnost nějaké rozlišení vynechat. Pokud vaše videokarta nemůže běžet na 1280x1024, není důvod proč ho tam mít. Pak byste odpověděli:


   Which modes? 432

Po vybrání módů a barevné hlouby budete dotázáni, jestli chcete mít virtuální obrazovku větší, než fyzickou. Virtuální obrazovka je obrazovka, která je větší než samotný monitor. Když pohybujete myší po virtuální obrazovce, ta bude rolovat o trochu dřív, než dojedete ke kraji. To vám dává možnost mít na monitoru více oken. Jenže protože nebudete moci vidět vše současně, může vás virtuální obrazovka trochu zlobit. Je to jistě hezká věc na hraní, takže ji možná budete chtít vyzkoušet.

Pak se dostanete zpět do seznamu videomódů. Po změnění videomódů u 24bpp barevné hloubky by to mělo vypadat nějak takhle:


   "640x480" "800x600" "1024x768" "1280x1024" for 8bpp
   "640x480" "800x600" "1024x768" "1280x1024" for 16bpp
   "1280x1024" "1024x768" "800x600" "640x480" for 24bpp
   "640x480" "800x600" "1024x768" for 32bpp

Pokračujete ve změnách videomódu, dokud s tím nebudete spokojeni. Až budete s touto částí hotovi, zadejte "OK" a bude se pokračovat dál.

Zapsat konfigurační soubor

V tuto chvíli je nastavování X úplné.xf86config se vás zeptá, jestli má zapsat konfigurační soubor do /etc/XF86Config. Pokud chcete být schopni provozovat X-ka, měli byste na tuto otázku odpovědět "y". Do tohoto souboru se budou X-ka dívat na svoji konfiguraci.

Pokud jste odpověděli správně na všechny otázky a máte nainstalovaný balíček s X serverem, měli byste být schopni spustit X-ka. Takto:


   $ startx

Pokud jste si nainstalovali KDE, nebo GNOME, mělo by teď naběhnout. Jinak možná budete potřebovat spoustit xwmconfig a vybrat si správce oken (window manager), který chcete, aby se používal jako výchozí. Správci oken budou popsáni dále v této kapitole. xwmconfig nastavuje defaultního okenního správce pouze pro uživatele, který jej spustil. Pokud na vašem systému pracuje více uživatelů, každý si bude muset vybrat svůj vlastní okenní manažer.

Je několik zvláštních klávesových kombinací, které se při práci v X můžou hodit. Například, pokud potřebujete ukončit X-ka v určitém bodě a nemůžete je zavřít korektním způsobem, je tu kobninace kláves pro násilné ukončení. control-alt-backspace zabije X-ka a smete vás zpět do příkazové řádky.
Do příkazové řádky se můžet přepnout i za běhu X, když stisknete kombinaci kláves CTRL-ALT-Fx (x=číslo terminálu), což je obdoba přepínání mezi virtuálními terminály v konzolovém režimu. Běžící X jsou umístěna na terminálu č. 7, takže zpět se do nich z konzole dostanete stiskem alt-F7.
A nakonec: Můžete měnit videomódy za běhu X. CTRL-ALT-+ (+ na num.klávesnici) přepne do vyššího rozlišení, zatímco totéž s mínusem přepne do nižšího rozlišení.