---
title: 5. Fejezet - Az X Window System
part: I. Rész - Bevezetés
prev: books/handbook/ports
next: books/handbook/partii
---

[[x11]]
= Az X Window System
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:source-highlighter: rouge
:experimental:
:skip-front-matter:
:toc-title: Tartalom
:table-caption: Táblázat
:figure-caption: Ábra
:example-caption: Példa
:xrefstyle: basic
:relfileprefix: ../
:outfilesuffix:
:sectnumoffset: 5

ifeval::["{backend}" == "html5"]
:imagesdir: ../../../images/books/handbook/x11/
endif::[]

ifeval::["{backend}" == "pdf"]
:imagesdir: ../../../../static/images/books/handbook/x11/
endif::[]

ifeval::["{backend}" == "epub3"]
:imagesdir: ../../../../static/images/books/handbook/x11/
endif::[]

include::shared/authors.adoc[]
include::shared/releases.adoc[]
include::shared/hu/mailing-lists.adoc[]
include::shared/hu/teams.adoc[]
include::shared/hu/urls.adoc[]

toc::[]

[[x11-synopsis]]
== Áttekintés

A FreeBSD az X11-en keresztül nyújt a felhasználók számára hatékony grafikus felhasználói felületet. Az X11 az X Window System szabadon elérhetõ változata, melyet az Xorg és az XFree86(TM) egyaránt implementál (valamint más egyéb programcsomagok is, amelyeket itt viszont nem tárgyalunk). A FreeBSD verziói a FreeBSD 5.2.1-RELEASE kiadással bezárólag a The XFree86(TM) Project, Inc. által kiadott X11 szervert, az XFree86(TM)-ot tartalmazzák alapértelmezés szerint. A FreeBSD 5.3-RELEASE kiadástól kezdve az X11 alapértelmezett és hivatalos változata az Xorg, melyet az X.Org alapítvány a FreeBSD-éhez nagyon hasonló licenc alatt fejleszt. A FreeBSD-hez kereskedelmi X szerverek is elérhetõek.

Ebben a fejezetben az X11 telepítését és beállítását járjuk végig, miközben a hangsúlyt az Xorg 7.7 kiadására helyezzük. Az XFree86(TM) (vagyis a FreeBSD olyan régebbi változata, ahol az XFree86(TM) az alapértelmezett X11 rendszer) vagy az Xorg korábbi kiadásainak beállításával kapcsolatban mindig találhatunk információkat a FreeBSD kézikönyv http://docs.FreeBSD.org/doc/[http://docs.FreeBSD.org/doc/] címen található archivált változataiban.

Az X11 által támogatott megjelenítõkrõl bõvebben az http://www.x.org/[Xorg] honlapján olvashatunk.

A fejezet elolvasása során megismerjük:

* az X Window System különbözõ alkotóelemeit, és hogy ezek miként mûködnek együtt;
* hogyan telepítsük és állítsuk be az X11-et;
* hogyan telepítsük és használjuk a különféle ablakkezelõket;
* hogyan használjunk TrueType(R) betûtípusokat az X11-ben;
* hogyan állítsuk be rendszerünkön a grafikus bejelentkezést (XDM).

A fejezet elolvasásához ajánlott:

* külsõ programok telepítésének ismerete (crossref:ports[ports,Alkalmazások telepítése. csomagok és portok]).

[[x-understanding]]
== Az X áttekintése

Az X használata elsõre megdöbbentõ lehet azok számára, akik olyan más grafikus környezetekben járatosak, mint például a Microsoft(R) Windows(R) vagy a Mac OS(R).

Míg az X minden komponensének részleteit és azok kapcsolatát nem szükséges megérteni a használatukhoz, néhány alapvetõ ismeret velük kapcsolatban elõsegíti kiaknázni az X erõsségeit.

=== Miért X?

Az X ugyan nem az elsõ UNIX(R)-ra íródott ablakozó rendszer, de fajtáját tekintve a legnépszerûbb. Az X eredeti fejlesztõcsapata az X elõtt egy másik ablakozó rendszeren dolgozott, aminek a neve "W" (mint "Window", azaz ablak) volt. Az X pedig az arab ábécében pontosan ezt a betût követi.

Az X-et hívhatjuk "X"-nek, "X Window System"-nek, és még sok más néven. Elõfordulhat azonban, hogy az "X Windows" elnevezés sértõ lehet egyes emberek számára. Errõl többet a man:X[7] man oldalon tudhatunk meg többet.

=== Az X kliens-szerver modellje

Az X-et már az elejétõl kezdve hálózatközpontúnak tervezték, és ezért az ún. "kliens-szerver" modellt használja.

Az X modelljében az "X szerver" egy olyan számítógépen fut, amelyhez billentyûzetet, monitort és egeret csatlakoztattunk. A szerver feladatai között találjuk a megjelenítés irányítását az egérrõl és a billentyûzetrõl, valamint a többi bemeneti és kimeneti eszközrõl érkezõ adatok feldolgozását és így tovább (például a digitális táblák is használhatóak beviteli eszközként, illetve egy projektor is lehet megjelenítõ). Mindegyik X alkalmazás (mint például az XTerm vagy a man:getenv[3]) egy kliens. A kliens üzeneteket küld a szervernek, például "Kérlek, rajzolj egy ablakot ezekre a koordinátákra", és a szerver pedig olyan üzeneteket küld, mint például "A felhasználó az OK gombra kattintott".

Az otthoni vagy a kisebb irodai környezetben az X szerver és az X kliensek általában ugyanazon a számítógépen futnak. Emellett azonban nagyon is lehetséges, hogy az X szerver egy kevésbé erõs gépen fusson, miközben az X alkalmazások (a kliensek) az irodát kiszolgáló erõsebb és drágább gépen fussanak. Egy ilyen konfigurációban az X kliensei és szerverei közti kommunikáció a hálózaton keresztül zajlik.

Jegyezzük meg, hogy az X szerver az a számítógép, ahol a monitor és a billentyûzet található, az X kliensek pedig azok a programok, amelyek az ablakokat jelenítik meg.

A protokollban semmi sem várja el, hogy a kliens és a szerver ugyanazon az operációs rendszeren vagy éppen ugyanolyan típusú számítógépen fusson. Ezért akár Microsoft(R) Windows(R)-on vagy Apple(R) Mac OS(R)-en is indíthatunk X szervert, és számos különbözõ szabad valamint kereskedelmi alkalmazás képes pontosan erre.

=== Az ablakkezelõ

Az X kialakításának filozófiája leginkább a UNIX(R) kialakításának filozófiájához hasonlítható, vagyis "eszközöket, ne szabályokat". Ez tehát azt jelenti, hogy az X nem köti meg, miként oldjuk meg vele a feladatokat. Helyette különféle eszközöket ad a felhasználó kezébe, és onnantól a saját felelõssége eldönteni, hogyan használja ki ezeket.

Ez a filozófia az X-ben egészen addig terjed, hogy nem rögzíti, hogyan nézzenek ki a képernyõn megjelenõ ablakok, miként kell ezeket mozgatni az egérrel, milyen billentyûk lenyomásával közlekedhetünk az ablakok között (ami a Microsoft(R) Windows(R) esetén az kbd:[Alt+Tab]), hogyan nézzen ki az ablakok címsora, a bezárás funkciónak legyen-e rajtuk gombja és így tovább.

Ehelyett az X az összes ezzel járó felelõsséget átadja az "ablakkezelõ" (window manager) részére. Tucatnyi ilyen ablakkezelõt találhatunk az X-hez: AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, Window Maker és még sok más. Ezen ablakkezelõk mindegyike más és más kinézetet és hangulatot kínál fel: némelyikük támogatja a "virtuális munkaasztalok" (virtual desktop) létrehozását; néhányuk pedig megengedi, hogy mi magunk állítsuk be az asztal irányításához használt gombkombinációkat; köztük találhatunk olyat is, amelynek van "Start" gombja vagy ehhez hasonló eszköze; némelyek közülük ismerik a "témákat", aminek révén a kinézetük és hangulatuk teljesen megváltoztatható. Az említett ablakkezelõk és társaik a Portgyûjtemény [.filename]#x11-wm# kategóriájában érhetõek el.

Ráadásul a KDE és a GNOME munkakörnyezetek mindegyikének van saját integrált ablakkezelõje.

Az egyes ablakkezelõk mellesleg eltérõ beállítási módszerrel rendelkeznek. Némelyikük kézzel összeállított konfigurációs állományt vár, mások pedig külön grafikus eszközöket tartalmaznak erre a feladatra is. Az egyikük (a Sawfish) konfigurációs állományát például a Lisp programozási nyelv egyik dialektuásban kell megírni.

[NOTE]
.Az irányítás átadása
====
Az ablakkezelõ másik fontos feladata lekezelni, hogy az egérrel miként tudjuk átadni az ablakok között az irányítást, vagyis a fókuszt (focus policy). Minden ablakkezelõ rendszerben el kell tudnunk valahogy dönteni, hogy a beérkezõ billentyûleütések melyik ablakhoz vándoroljanak, valamint az ilyen értelemben aktív ablakot valamilyen módon jeleznünk is kell.

Ennek egyik ismert módszere a "fókusz kattintásra" megoldás, amely modellt a Microsoft(R) Windows(R) rendszerekben találhatjuk meg. Itt az ablakok akkor válnak aktívvá, amikor rájuk kattintunk az egérrel.

Az X viszont nem kötelezi el magát egyik vezérlésátadási módszer mellett sem, helyette az ablakkezelõ fogja majd eldönteni, melyik ablak birtokolja a fókuszt az adott pillanatban. A különbözõ ablakkezelõk különbözõ fókuszvezérlési technikákat ismernek. Mindegyikük ismeri a kattintásos fókuszt, azonban a többségük emellett még sok más megoldást is felkínál.

A legnépszerûbb fókuszvezérlési elvek:

A fókusz az egeret követi (focus-follows-mouse)::
Az egérmutató alatt található ablak kapja meg fókuszt. Az érintett ablaknak nem kell feltétlenül az összes többi felett elhelyezkednie. Ilyenkor a fókuszt egyszerûen úgy vihetjük át egy másik ablakra, ha rámutatunk az egérrel, amihez még kattintanunk sem kell.

Hanyag fókusz (sloppy-focus)::
Ez az elv az elõbbi apró kibõvítése. Amikor a fókusz az egérmutatót követi, és az egeret a leghátsó ablakra (vagy a háttérre) visszük, akkor valójában egyik ablak sem birtokolja az irányítást, ezért a leütött billentyûk elvesznek. A hanyag fókusz használatával azonban az irányítás csak abban az esetben kerül át máshová, amikor egy másik ablakba lépünk be, nem pedig akkor, amikor a jelenlegibõl lépünk ki.

Fókusz kattintásra (click-to-focus)::
Az aktív ablakot egy egérkattintással választjuk ki. Ilyenkor a kiválasztott ablak "felemelkedhet" és a többi elõtt jelenhet meg. Ezt követõen az összes irányítás ebbe az ablakba vándorol, még abban az esetben is, amikor egy másik ablakra visszük az egérmutatót.

Sok ablakkezelõ ismer ezekbõl különbözõ variációikat, valamint rajtuk kívül más egyéb vezérlési elvet is. Ezzel kapcsolatban az adott ablakkezelõ dokumentációjából deríthetünk ki a legtöbbet.
====

=== Widgetek

Az X megközelítése, vagyis az eszközök és nem a szabályok felsorakoztatása, kiterjed az egyes alkalmazásokban látható különféle widgetekre is.

A "widget" (window gadget, vagyis widget, de magyarul sok helyen a "mütyürke") elnevezést azokra a felhasználói felületen megjelenõ elemekre használjuk, amelyekkel valamilyen módon kapcsolatba léphetünk: kattinthatunk rájuk, "piszkálhatjuk" ezeket. Ilyenek többek közt a gombok, jelölõnégyzetek, rádiógombok, ikonok, listák és a többi. A Microsoft(R) Windows(R) nyelvén ezeket "vezérlõknek" (control) nevezzük.

A Microsoft(R) Windows(R) és az Apple(R) Mac OS(R) ezen a téren nagyon merev. Az alkalmazások fejlesztõinek gondoskodniuk kell róla, hogy a programjaik az elterjedt kinézetet és kialakítást kövessék. Az X viszont nem várja az egységes vezérlõeszközök vagy grafikai stílus használatát.

Ennek eredményeképpen az X cseppet sem kívánja meg az alkalmazásoktól, hogy közös kinézetben vagy viselkedésben osztozzanak. Természetesen léteznek népszerû eszközrendszerek és azoknak számos variációja is kialakult, beleértve az MIT Athenaját, a Motif(R)ot (amirõl a Microsoft(R) Windows(R) eszközeit is mintázták, az összes ferde élet és a három szürkeárnyalatot), az OpenLookot és társaikat.

Napjaink X alkalmazásai a KDE fejlesztéséhez használt Qt, esetleg a GNOME-hoz használt GTK+ könyvtárból származó, korszerû kinézetû widgeteket tartalmaznak. Ebbõl a szempontból megfigyelhetõ egyfajta tendencia a grafikus UNIX(R)-alkalmazások felépítésében, ami minden bizonnyal megkönnyíti a kezdõ felhasználók tájékozódását.

[[x-install]]
== Az X11 telepítése

Az X11 FreeBSD-n alapértelmezett implementációja az Xorg. Az Xorg az X.Org alapítvány által kiadott, az X Window Systemet megvalósító nyílt forráskódú X szerver. Az Xorg az XFree86(TM) 4.4RC2 és X11R6.6 kódja alapján készült. A FreeBSD Portgyûjteményében jelenleg az Xorg 7.7 változata érhetõ el.

Az Xorg-ot a Portgyûjteménybõl így tudjuk lefordítani, majd telepíteni:

[source,shell]
....
# cd /usr/ports/x11/xorg
# make install clean
....

[NOTE]
====
Az egész Xorg lefordításához legalább 4 GB szabad helyre van szükségünk.
====

Az X11-et természetesen telepíthetjük közvetlenül csomagok segítségével is. A man:pkg_add[1] használatával telepíthetõ bináris csomagok is elérhetõek az X11-hez. Amikor a man:pkg_add[1] programra bízzuk a csomag letöltését, ne adjunk meg verziószámot, a man:pkg_add[1] ugyanis mindig automatikusan az alkalmazás legfrissebb verzióját tölti le.

Az Xorg csomagjának letöltéséhez és telepítéséhez egyszerûen csak ennyit írjunk be:

[source,shell]
....
# pkg_add -r xorg
....

[NOTE]
====
A fentebb megadott példák a teljes X11 rendszert telepíteni fogják, beleértve a szervereket, klienseket, betûtípusokat stb. Az X11 egyes részeihez külön találhatunk csomagokat és portokat.

Ha csak az X11 legszükségesebb elemeit szeretnénk telepíteni, akkor alternatívaként választhatjuk az package:x11/xorg-minimal[] portot.
====

A fejezet további részében szót ejtünk az X11, valamint egy irodai használatra alkalmas munkakörnyezet beállításáról.

[[x-config]]
== Az X11 beállítása

=== Mielõtt nekilátnánk

Az X11 beállítása elõtt a célrendszer következõ adataira lesz szükségünk:

* A monitor jellemzõi
* A videokártya chipkészlete
* A videokártya memóriájának mérete

Az X11 a monitor jellemzõibõl állapítja meg, hogy milyen felbontásban és frissítési frekvenciával mûködtesse azt. Ezek általában a monitorhoz tartozó dokumentációból vagy a gyártó honlapjáról deríthetõek ki. Igazából két értékre van szükségünk: a függõleges és a vízszintes frissítési frekvenciára.

A videokártya chipkészlete határozza meg, hogy az X11 melyik meghajtóján keresztül kommunikál a grafikus hardverrel. Ez a legtöbb chipkészlet esetén magától megállapítható, de ennek ellenére mégis jó tisztában lenni ezzel arra az esetre, ha az automatikus felismerés mégsem mûködne.

A grafikus kártya memóriájának mérete határozza meg a rendszer által kihasználható felbontást és színmélységet. Ezt fontos tudunk ahhoz, hogy ismerjük a rendszerünk korlátait.

=== Az X11 beállítása

Az Xorg 7.3-as változatában gyakran mindenféle konfigurációs állomány használata nélkül egyszerûen csak adjuk ki a következõ parancsot:

[source,shell]
....
% startx
....

A Xorg 7.4 verziójától kezdõdõen a számítógépünkhöz csatlakoztatott egerek és billentyûzetek HAL segítségével automatikusan felismerhetõek. Ennek megfelelõen a package:x11/xorg[] port függõségeként telepítõdni fognak a package:sysutils/hal[] és package:devel/dbus[] portok, viszont az [.filename]#/etc/rc.conf# állományban a következõ sorok hozzáadásával külön engedélyeznünk kell még ezeket:

[.programlisting]
....
hald_enable="YES"
dbus_enable="YES"
....

Ezeket a szolgáltatásokat még az Xorg beállítása elõtt el kell indítanunk (a parancssorból manuálisan vagy a rendszer újraindításával).

Bizonyos hardvereszközök esetén az automatikus felismerés még nem mûködik megbízhatóan vagy nem jól állítja be az értékeket. Ilyen esetekben kézzel kell megadnunk a szükséges beállításokat.

[NOTE]
====
A különbözõ munkakörnyezetek, mint például a GNOME, a KDE vagy éppen az Xfce általában tartalmaznak olyan segédprogramokat, amelyekkel a felhasználó könnyedén be tudja állítani a megjelenítés paramétereit, többek közt a képernyõ felbontását. Tehát ha az alapértelmezések nem megfelelõek, viszont használni akarunk majd valamilyen munkakörnyezetet is, akkor egyszerûen csak telepítsük az adott környezetet és a hozzá tartozó eszközön keresztül állítsuk be a megjelenítést.
====

Az X11 beállítása egy többlépcsõs folyamat. Elsõ lépésünk egy alap konfigurációs állomány összeállítása lesz. Rendszeradminisztrátorként adjuk ki az alábbi parancsot:

[source,shell]
....
# Xorg -configure
....

Ennek segítségével az X11 [.filename]#xorg.conf.new# néven létrehozza a konfigurációs állomány vázát a [.filename]#/root# könyvtárban (akár a man:su[1] parancsot használjuk, akár közvetlenül így jelentkezünk be, az így örökölt rendszeradminisztrátori szerepkör maga után vonja a `$HOME` könyvtár átállítását is). Az X11 megpróbálja megkeresni a célrendszerben elérhetõ grafikus eszközöket, és létrehozni egy olyan konfigurációs állományt, amely az észlelt eszközökhöz tartozó meghajtókat tölti be.

A következõ lépésünk legyen az imént létrehozott beállítás kipróbálása, amin keresztül ellenõrizhetjük, hogy az Xorg tényleg képes mûködni a célrendszer grafikus eszközén. Az Xorg 7.3 és azt megelõzõ változataiban ezt így tehetjük meg:

[source,shell]
....
# Xorg -config xorg.conf.new
....

A Xorg 7.4 és késõbbi változataiban a próba eredménye egy fekete képernyõ lesz, amely meglehetõsen megnehezítheti az X11 helyes mûködésének megállapítását. A `-retro` kapcsoló használatával azonban továbbra is elérhetjük a korábbi verziókban megszokott viselkedési módot:

[source,shell]
....
# Xorg -config xorg.conf.new -retro
....

Ha ezután a képernyõn egy fekete-fehér rácsot látunk egy X alakú egérmutatóval a közepén, akkor jó a beállítás. A próbát úgy szakíthatjuk meg, ha elõször a kbd:[Ctrl+Alt+Fn] billentyûk együttes lenyomásával átváltunk valamelyik virtuális konzolra (például az kbd:[F1] esetén az elsõre), majd megnyomjuk a kbd:[Ctrl+C] gombokat.

[NOTE]
====
Az Xorg korábbi változataiban a 7.3 verzióig bezárólag a kbd:[Ctrl+Alt+Backspace] billentyûkombinációval tudjuk leállítani a mûködését. Amennyiben erre továbbra is szükségünk lenne, a 7.4 és késõbbi változatokban ezt úgy tudjuk engedélyezni, ha a begépeljük a következõ parancsot egy X terminálablakban:

[source,shell]
....
% setxkbmap -option terminate:ctrl_alt_bksp
....

Egy másik lehetséges megoldás, ha a billenytûzet beállításához létrehozunk a [.filename]#/usr/local/etc/hal/fdi/policy# könyvtárban egy konfigurációs állományt [.filename]#x11-input.fdi# néven a hald számára. Ebben az állományban a következõknek kell szerepelnie:

[.programlisting]
....
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keyboard">
	<merge key="input.x11_options.XkbOptions" type="string">terminate:ctrl_alt_bksp</merge>
    </match>
</deviceinfo>
....

A hald a számítógép újraindításával fogja majd beolvasni ezt az állományt.

Ilyenkor az [.filename]#xorg.conf.new# állomány `ServerLayout` vagy `ServerFlags` szekciójához vegyük még hozzá az alábbi sort:

[.programlisting]
....
Option  "DontZap"      "off"
....

====

Ha az egér még nem mûködne, mindenképpen be kell állítanunk a továbblépés elõtt. Ezzel kapcsolatban a FreeBSD telepítésérõl szóló fejezetben levõ crossref:install[mouse,Az egér beállításai]t ajánljuk elolvasásra. Fontos megemlíteni, hogy az Xorg 7.4 változatától kezdõdõen az [.filename]#xorg.conf#`InputDevice` szekcióit az eszközök automatikusan észlelt beállításai felülbírálják. A régebbi változatok viselkedését úgy tudjuk visszanyerni, ha a `ServerLayout` és `ServerFlags` szekciók valamelyikéhez hozzáadjuk az alábbi sort:

[.programlisting]
....
Option "AutoAddDevices" "false"
....

Ezt követõen a beviteli eszközök a lehetséges beállítási opciók (például a billentyûzet-kiosztás váltása) mentén a korábbiakban megszokott módon konfigurálhatóak.

[NOTE]
====
Ahogy arról korábban szó esett, a 7.4 verziótól kezdõdõen a hald magától érzékelni fogja a számítógépre csatlakoztatott billentyûzetet. Elõfordulhat, hogy a billentyûzet típusa vagy éppen kiosztása nem lesz megfelelõ. Ennek beállítására többnyire a népszerûbb munkakörnyezetek, mint például a GNOME, KDE vagy Xfce tartalmaznak külön segédprogramot. A man:setxkbmap[1] vagy a hald konfigurációs szabályával azonban akár közvetlenül is meg tudjuk változtatni a billentyûzethez társított tulajdonságokat.

Például ha egy 102 gombos billentyûzetet szeretnénk használni francia kiosztással, akkor ehhez a [.filename]#/usr/local/etc/hal/fdi/policy# könyvtárban kell létrehoznunk egy [.filename]#x11-input.fdi# nevû állományt a hald részére. Ebben az állományban szerepeljenek az alábbi sorok:

[.programlisting]
....
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keyboard">
	<merge key="input.x11_options.XkbModel" type="string">pc102</merge>
	<merge key="input.x11_options.XkbLayout" type="string">fr</merge>
    </match>
  </device>
</deviceinfo>
....

Ha létezik már ilyen állományunk, akkor a billentyûzet megfelelõ beállításához egyszerûen csak másoljuk ki a fenti sorokat és adjuk hozzá.

Indítsuk újra a számítógépet, hogy a hald beolvassa az állományt.

Ugyanezt egy X terminálból is kényelmesen el tudjuk végezni:

[source,shell]
....
% setxkbmap -model pc102 -layout fr
....

A paraméterként megadható billentyûzettípusokat és -kiosztásokat a [.filename]#/usr/local/shared/X11/xkb/rules/base.lst# állományban találhatjuk meg.
====

Ezután az ízlésünknek megfelelõen hangoljuk be az [.filename]#xorg.conf.new# állományt, nyissuk meg egy szövegszerkesztõben, például az man:emacs[1]-ben vagy az man:ee[1]-ben. Elsõként adjuk meg a célrendszerhez csatlakoztatott monitor frekvenciájára vonatkozó adatokat. Ezek általában a függõleges és a vízszintes frissítés értékei, melyeket az [.filename]#xorg.conf.new# állomány `"Monitor"` szakaszában (Section) kell feltüntetni:

[.programlisting]
....
Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "A monitor gyártója"
        ModelName    "A monitor típusa"
        HorizSync    30-107
        VertRefresh  48-120
EndSection
....

A konfigurációs állományból valószínûleg csak a `HorizSync` és `VertRefresh` kulcsszavak fognak hiányozni. Amennyiben ez tényleg így lenne, a megfelelõ vízszintes frissítés értékét a `HorizSync` kulcsszó után, a hozzá tartozó függõleges frissítés értékét pedig a `VertRefresh` kulcsszó után kell hozzátennünk a szakaszhoz. Az iménti példában már megadtuk a célrendszer monitorának frissítési értékeit.

Az X megengedi, hogy DPMS (Energy Star) energiagazdálkodási szabványt ismerõ monitorok lehetõséget is kihasználjuk. A man:xset[1] program vezérli a monitorok ki- és bekapcsolását, és segítségével készenléti vagy energiatakarékos üzemmódba tudjuk helyezni azokat. Ha engedélyezni kívánjuk a monitorunk DPMS lehetõségeit, egyszerûen csak tegyük hozzá az alábbi sort a monitorunkat leíró szakaszhoz:

[.programlisting]
....

        Option       "DPMS"
....

Ha már a [.filename]#xorg.conf.new# konfigurációs állomány szerkesztésével vagyunk elfoglalva, válasszuk ki számunkra kedvezõ alapértelmezett felbontást és színmélységet is. Ezt a `"Screen"` (Képernyõ) nevû szakaszban tehetjük meg:

[.programlisting]
....
Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth     24
                Modes     "1024x768"
        EndSubSection
EndSection
....

A `DefaultDepth` kulcsszó után adjuk meg a rendszer alapértelmezett színmélységét. Ezt késõbb az man:Xorg[1] `-depth` paraméterével bírálhatjuk felül a parancssorból. A `Modes` kulcsszó után jelennek meg azok a felbontások, amelyekben az adott színmélység elérhetõ. Itt csak olyan VESA szabványú módok jelenhetnek meg, amelyet a célrendszer grafikus eszköze is támogat. A fenti példában az alapértelmezett színmélység képpontonként huszonnégy bit, és ebben a színmélységben az elfogadott felbontás 1024-szer 768 pixel.

Végezetül mentsük el a szerkesztett konfigurációs állományt és próbáljuk ki a korábban leírt módszer szerint.

[NOTE]
====
A hibakeresés során maguk az X11 naplóállományai is hasznos eszköznek bizonyulhatnak, mivel ezek minden olyan eszközrõl tartalmaznak információt, amelyekhez az X11 szervernek sikerült csatlakoznia. Az Xorg naplóit a [.filename]#/var/log/Xorg.0.log# elnevezést követõ állományokban találjuk meg. A konkrét naplók nevei [.filename]#Xorg.0.log#-tól [.filename]#Xorg.8.log#-ig és így tovább terjedhetnek.
====

Ha minden a legnagyobb rendben haladt eddig, a konfigurációs állományt el kell tennünk egy olyan központi helyre, ahol az man:Xorg[1] képes lesz majd megtalálni. Ez a hely általában az [.filename]#/etc/X11/xorg.conf# vagy a [.filename]#/usr/local/etc/X11/xorg.conf#.

[source,shell]
....
# cp xorg.conf.new /etc/X11/xorg.conf
....

Az X11 beállítását ezzel befejeztük. Az Xorg innentõl elindítható a man:startx[1] segédprogram vagy az man:xdm[1] használatával.

=== Témák idõsebbeknek és haladóknak

==== Az i810 grafikus chipkészlet beállítása

Az Intel(R) i810 integrált chipkészletének meghajtásához szükségünk lesz az [.filename]#agpart# nevû AGP programozási felületre az X11-ben. Errõl az man:agp[4] meghajtó man oldalán olvashatuk többet.

Ennek segítségével ezt a hardvert is a többi grafikus kártyához hasonlóan állíthatjuk be. Vegyük figyelembe azonban, hogy az man:agp[4] meghajtót beépítve nem tartalmazó rendszermaggal futó rendszerekben a man:kldload[8] paranccsal utólag már nem tudjuk betölteni! Ezt a meghajtót már a rendszerindítás során be kell tudnunk tölteni: vagy a rendszermagba fordítjuk, vagy pedig a [.filename]#/boot/loader.conf# állományban hivatkozunk rá.

==== Widescreen Flat Panel monitorok használata

Ebben a részben feltételezünk némi tapasztalatot a beállítások terén. Amennyiben a szabványos konfigurációs eszközök csõdöt mondtak a beállítás során, magukból a naplóállományokból is kinyerhetünk elegendõ információt ahhoz, hogy mûködésre bírjuk rendszerünket. Ehhez mindenképpen legyen kéznél egy szövegszerkesztõ!

A jelenlegi szélesvásznú (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+ és társai) formátumok a 16:10-es és 10:9-es képarányokat ismerik, amik néha gondot okozhatnak. Például a 16:10-es képarány felbontásai:

* 2560x1600
* 1920x1200
* 1680x1050
* 1440x900
* 1280x800

Bizonyos szempontból egyszerûen csak a fenti felbontások valamelyikét kell felvenni a `"Screen"` szakasz `Mode` sorába, valahogy így: 

[.programlisting]
....
Section "Screen"
Identifier "Screen0"
Device     "Card0"
Monitor    "Monitor0"
DefaultDepth 24
SubSection "Display"
	Viewport  0 0
	Depth     24
	Modes     "1680x1050"
EndSubSection
EndSection
....

Az Xorg elég intelligens ahhoz, hogy a szélesvásznú megjelenítéssel kapcsolatos információkat lekérje a monitor I2C/DDC adatai közül, ezért meg tudja állapítani, hogy az eszköz milyen frissítési frekvenciákat és felbontásokat bír el.

Ha az alábbi `ModeLine` értékek nem szerepelnének a meghajtókban, akkor velük kapcsolatban egy kicsit súgnunk kell az Xorg-nak. A [.filename]#/var/log/Xorg.0.log# átrágásával elegendõ információt tudunk gyûjteni ahhoz, hogy manuálisan vegyünk fel használható `ModeLine` értékeket. Nem kell mást tennünk, mint ehhez hasonló sorokat keresnünk:

[.programlisting]
....
(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 146.2 MHz   Image Size:  433 x 271 mm
(II) MGA(0): h_active: 1680  h_sync: 1784  h_sync_end 1960 h_blank_end 2240 h_border: 0
(II) MGA(0): v_active: 1050  v_sync: 1053  v_sync_end 1059 v_blanking: 1089 v_border: 0
(II) MGA(0): Ranges: V min: 48  V max: 85 Hz, H min: 30  H max: 94 kHz, PixClock max 170 MHz
....

Ezeket nevezik EDID-adatoknak (Extended display identification data, vagyis "bõvített megjelenítési azonosító adatoknak"). Belõlük a megfelelõ `ModeLine` sor létrehozása csupán annyiból áll, hogy a számértékeket a megfelelõ sorrendbe tesszük:

[.programlisting]
....
ModeLine <name> <clock> <4 horiz. timings> <4 vert.  timings>
....

Ezáltal a példában látott `"Monitor"` szakasz `ModeLine` sora így fog kinézni:

[.programlisting]
....
Section "Monitor"
Identifier      "Monitor1"
VendorName      "Bigname"
ModelName       "BestModel"
ModeLine        "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
Option          "DPMS"
EndSection
....

Miután végrehajtottuk ezeket az egyszerû beállítási lépéseket, az X most már valószínûleg el fog indulni az új szélesvásznú monitorunkon.

[[x-fonts]]
== Betûtípusok használata az X11-ben

[[type1]]
=== Type1 betûtípusok

Az X11-hez tartozó alap betûtípusok nem mondhatóak kifejezetten ideálisnak például egy átlagos asztali kiadványszerkesztõ alkalmazás számára. A nagyobb méretû bemutatókon a betûi szögletesen és idétlenül néznek ki, a man:getenv[3]ben megjelenõ kisebb betûk pedig szinte teljességgel olvashatatlanok. Viszont manapság már rengeteg szabad, nagyon jó minõségû és könnyen használható Type1 (PostScript(R)) betûtípus érhetõ el az X11-hez. Például az URW betûtípus-gyûjtemény (package:x11-fonts/urwfonts[]) a szabványos Type1 betûtípusok (Times Roman(TM), Helvetica(TM), Palatino(TM) és még sok más) jó minõségû változatait tartalmazza. A Freefonts nevû gyûjtemény (package:x11-fonts/freefonts[]) is tartalmaz sok más betûtípust, de a legtöbbjüket inkább csak a Gimpben és a hozzá hasonló grafikai alkalmazásokban tudjuk használni, illetve nincsenek is még kellõ mértékben befejezve a hétköznapi munkákhoz. Ezeken felül az X11 minimális ügyeskedéssel beállítható a TrueType(R) betûtípusok használatára is. Errõl részleteket a man:X[7] man oldalon, illetve a <<truetype,TrueType(R) betûtípusokról szóló szakaszban>> olvashatunk.

A Portgyûjteménybõl az imént említett Type1 betûtípusokat az alábbi parancsok segítségével telepíthetjük:

[source,shell]
....
# cd /usr/ports/x11-fonts/urwfonts
# make install clean
....

Ugyanígy járjunk el a freefont és a többi gyûjtemény esetén is. Az X szerver akkor fogja észlelni ezeket a betûtípusokat, ha hozzáadjuk a következõ sort a konfigurációs állományához ([.filename]#/etc/X11/xorg.conf#):

[.programlisting]
....
FontPath "/usr/local/lib/X11/fonts/URW/"
....

Vagy megtehetjük mindezt az X futtatása során is:

[source,shell]
....
% xset fp+ /usr/local/lib/X11/fonts/URW
% xset fp rehash
....

Ez utóbbi beállítás viszont el fog veszni az X leállításával, hacsak nem vesszük hozzá az indítószkriptjéhez (ez az [.filename]#~/.xinitrc# a `startx` használata esetén, illetve az [.filename]#~/.xsession#, amikor egy XDM-szerû grafikus bejelentkezést használunk). Ezek mellett használhatjuk a [.filename]#/usr/local/etc/fonts/local.conf# állományt is: errõl az <<antialias,élsimítással>> foglalkozó szakaszban szólunk részletesebben.

[[truetype]]
=== TrueType(R) betûtípusok

Az Xorg beépített támogatást tartalmaz a TrueType(R) betûtípusok rendereléséhez. Két különbözõ modul valósítja meg ezt a feladatot. Ebben példában a freetype nevû modult használjuk, mivel sokkal jobban illeszkedik a többi betûrenderelõhöz. A freetype modul használatához mindössze az [.filename]#/etc/X11/xorg.conf# állomány `"Module"` szakaszába kell beírnunk a következõ sort:

[.programlisting]
....
Load  "freetype"
....

Most pedig hozzunk létre egy könyvtárat a TrueType(R) betûtípusok számára (ez legyen például a [.filename]#/usr/local/lib/X11/fonts/TrueType#), majd másoljuk az összes TrueType(R) betûtípusunkat ide. Vigyázzunk rá, hogy Macintosh(R)-ról TrueType(R) betûtípusok közvetlenül nem hozhatóak át, az X11 számára UNIX(R)/MS-DOS(R)/Windows(R) formátumban kell lenniük. Miután sikerült átmásolnunk az állományokat ebbe a könyvtárba, használjuk a ttmkfdir parancsot a [.filename]#fonts.dir# állomány létrehozására, aminek révén az X betûrenderelõje tudni fogja, hogy új állományokat telepítettünk. A ``ttmkfdir``package:x11-fonts/ttmkfdir[] néven elérhetõ a FreeBSD Portgyûjteményébõl.

[source,shell]
....
# cd /usr/local/lib/X11/fonts/TrueType
# ttmkfdir -o fonts.dir
....

Ezután adjuk hozzá a TrueType(R) könyvtárat a betûtípusok könyvtáraihoz. Itt is a <<type1,Type1>> betûtípusoknál leírtak szerint kell eljárnunk, vagyis használjunk a

[source,shell]
....
% xset fp+ /usr/local/lib/X11/fonts/TrueType
% xset fp rehash
....

parancsot, vagy adjunk hozzá a [.filename]#xorg.conf# állományhoz egy további `FontPath` sort.

Ezzel végeztünk is. Innentõl kezdve a man:getenv[3], Gimp, a StarOffice(TM) és mindegyik X alkalmazás fel fogja ismerni a frissen telepített TrueType(R) betûtípusokat. A nagyon kicsi betûk (egy honlap megtekintése során, nagyfelbontásban) és a nagyon nagy betûk (a StarOffice(TM) használatakor) most már sokkal jobban fognak mutatni.

[[antialias]]
=== A betûk élsimítása

Az X11 által használt, a [.filename]#/usr/local/lib/X11/fonts/# és a [.filename]#~/.fonts/# könyvtárakban található összes betûtípus élsimítása automatikusan elérhetõ az Xft-re felkészített alkalmazások számára. A mostanság megjelenõ legtöbb alkalmazás, mint például a KDE, GNOME és Firefox, ismeri az Xft-t.

A betûtípusok élsimításának be- és kikapcsolásához, valamint élsimítási jellemzõinek beállításához hozzuk létre (vagy ha már létezne, módosítsuk) a [.filename]#/usr/local/etc/fonts/local.conf# állományt. Az Xft betûrendszer számos kifinomult lehetõsége hangolható ezzel az állománnyal, amelyekbõl ebben a szakaszban csupán rövidke ízelítõt fogunk adni. A pontosabb részletekrõl a man:fonts-conf[5] man oldalon tájékozódhatunk.

Az állománynak XML formátumúnak kell lennie. Különösen ügyeljünk a kis- és nagybetûkre, illetve gyõzõdjünk meg mindig róla, hogy lezártuk-e az összes taget. Az állomány a szokásos XML-fejléccel kezdõdik, amelyet egy DOCTYPE definíció követ, majd a `<fontconfig>` tag:

[.programlisting]
....

      <?xml version="1.0"?>
      <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
      <fontconfig>
....

Ahogy azt már korábban is említettük, a [.filename]#/usr/local/lib/X11/fonts# és a [.filename]#~/.fonts/# könyvtárakban található összes betûtípus élsimítása elérhetõ az Xft-re felkészített alkalmazások számára. Amennyiben ezeken túl még további könyvtárakat is fel kívánunk venni, írjuk bele a [.filename]#/usr/local/etc/fonts/local.conf# állományba, nagyjából ilyen alakban:

[.programlisting]
....
<dir>/az/en/betu/tipusaim</dir>
....

Az új betûtípusok, de legfõképpen az új betûtípusokat tartalmazó könyvtárak hozzáadása után a betûkkel kapcsolatos gyorsítótárak frissítéséhez mindenképpen javasolt lefuttatni az alábbi parancsot:

[source,shell]
....
# fc-cache -f
....

Az élsimítás hatására a betûk kontúrjai egy kissé elmosódnak, aminek köszönhetõen a nagyon kis méretû szövegek sokkal olvashatóbbá válnak és eltûnnek a nagy méretû betûkrõl a "lépcsõk", azonban a normál méretû betûknél megfájdulhat tõle a szemünk. A 14 pontnál kisebb méretû betûk esetén az alábbi sorok hozzáadásával tudjuk kikapcsolni az élsimítást:

[.programlisting]
....
        <match target="font">
            <test name="size" compare="less">
                <double>14</double>
            </test>
            <edit name="antialias" mode="assign">
                <bool>false</bool>
            </edit>
        </match>
        <match target="font">
            <test name="pixelsize" compare="less" qual="any">
                <double>14</double>
            </test>
            <edit mode="assign" name="antialias">
                <bool>false</bool>
            </edit>
        </match>
....

Bizonyos egyenszélességû (monospaced) betûtípusok élsimítása esetén a betûk távolsága nem megfelelõ. Ez leginkább a KDE használata esetén merül fel. Ezt a problémát úgy is orvosolhatjuk, ha az ilyen betûtípusok térközét kézzel 100-ra állítjuk. Ehhez írjuk be a következõ sorokat:

[.programlisting]
....
       <match target="pattern" name="family">
           <test qual="any" name="family">
               <string>fixed</string>
           </test>
           <edit name="family" mode="assign">
               <string>mono</string>
           </edit>
        </match>
        <match target="pattern" name="family">
            <test qual="any" name="family">
                <string>console</string>
            </test>
            <edit name="family" mode="assign">
                <string>mono</string>
            </edit>
        </match>
....

(ezzel lefedjük összes rögzített méretû (fixed) betûtípust `"mono"`-ként), majd vegyük hozzá ezt is:

[.programlisting]
....
         <match target="pattern" name="family">
             <test qual="any" name="family">
                 <string>mono</string>
             </test>
             <edit name="spacing" mode="assign">
                 <int>100</int>
             </edit>
         </match>
....

Egyes betûtípusoknál, mint például a Helveticánál, gondok akadhatnak az élsimítással. Ez általában egy függõlegesen kettévágottnak látszó betû képében jelenik meg. De ami a legrosszabb, hogy emiatt némely alkalmazás képes összeomlani. Ennek elkerülésére tegyük hozzá még az alábbi sorokat a [.filename]#local.conf# állományhoz:

[.programlisting]
....
         <match target="pattern" name="family">
             <test qual="any" name="family">
                 <string>Helvetica</string>
             </test>
             <edit name="family" mode="assign">
                 <string>sans-serif</string>
             </edit>
         </match>
....

Miután befejeztük a [.filename]#local.conf# szerkesztését, ellenõrizzük, hogy szerepel-e az állomány végén a `</fontconfig>` tag. Ha ugyanis nem zárjuk le rendesen, akkor a változtatásaink érvénytelenné válnak.

Végezetül a felhasználók is megadhatják a saját beállításaikat a saját [.filename]#.fonts.conf# állományuk segítségével. Ehhez nem kell mást tenni, mindössze létrehozni egy [.filename]#~/.fonts.conf# XML-állományt.

Még egy utolsó ötlet: LCD képernyõk esetén szükségünk lehet az ún. "sub-pixel sampling" (részképpont mintavételezési) technikára. Ezzel lényegében a (vízszintesen elválasztott) vörös, zöld és kék összetevõket külön-külön kezeljük a horizontális felbontás javítására. Bámulatos eredményeket lehet elérni a segítségével! A bekapcsolásához a következõ sorokat kell beszúrnunk valahova a [.filename]#local.conf# állományba:

[.programlisting]
....

         <match target="font">
             <test qual="all" name="rgba">
                 <const>unknown</const>
             </test>
             <edit name="rgba" mode="assign">
                 <const>rgb</const>
             </edit>
         </match>
....

[NOTE]
====
A megjelenítõ fajtájától függõen lehet, hogy az `rgb` értéket `bgr`-re, `vrgb`-re vagy `vbgr`-re kell cserélnünk. Próbálgassuk és kiderül, hogy melyikkel mûködik jobban.
====

[[x-xdm]]
== Az X bejelentkeztetõ képernyõje

=== Összefoglalás

Az X bejelentkeztetõ képernyõje (az X Display Manager vagy röviden csak XDM) az X Window System egyik kiegészítõ eleme, melyet a bejelentkezések lebonyolítására használunk. Számtalan helyzetben hasznosnak bizonyulhat, beleértve a legkisebb "X terminálokat" és a legnagyobb hálózati szervereket is. Mivel az X Window System független hálózattól és protokolltól, a hálózaton összekapcsolt, X klienseket és szervereket futtató különbözõ számítógépek széles kombinációja elõfordulhat. Az XDM egy grafikus felületen keresztül segít választani az elérhetõ szerverek között, valamint a felhasználók, például felhasználónév és jelszón keresztüli, hitelesítésében.

Az XDM tulajdonképpen a felhasználó számára ugyanazokat a funkciókat nyújtja, mint a man:getty[8] program (errõl bõvebben lásd crossref:serialcomms[term-config,Beállítás]). Tehát: belépteti a felhasználót a szerverre, ahova csatlakozott, illetve elindítja helyette a hozzá tartozó munkamenet kezelõjét (ami általában egy X-es ablakkezelõ). Az XDM megvárja ennek a programnak a befejezõdését, ami egyben jelzi számára, hogy a felhasználó elvégezte a dolgát, és kilépteti a szerverrõl. Ezután az XDM újra várakozni kezd a következõ felhasználóra, miközben a bejelentkezéshez és a szerver kiválasztásához szükséges képernyõket jeleníti meg.

=== Az XDM használata

A XDM használatához elõször telepítenünk kell rendszerünkre a package:x11/xdm[] portot (mivel az Xorg újabb változatai ezt alapértelmezés szerint már nem telepítik). Ezt követõen az XDM démon a [.filename]#/usr/local/bin/xdm# helyen található meg. A programot `root` felhasználóként bármikor tudjuk futtatni, és ez veszi kezelésbe a helyi gépen futó X szervert. Amennyiben az XDM-et a számítógép minden egyes indulása során el akarjuk indítani, egyszerûen csak adjuk hozzá a megfelelõ bejegyzést az [.filename]#/etc/ttys# állományhoz. Ennek a formai szabályairól és használatáról bõvebben lásd crossref:serialcomms[term-etcttys,Egy bejegyzés felvétele az /etc/ttys állományba]. Az [.filename]#/etc/ttys# alapértelmezett változatában az XDM démont ebben a formában találjuk meg a virtuális terminálok között:

[source,shell]
....
ttyv8   "/usr/local/bin/xdm -nodaemon"  xterm   off secure
....

Ez a bejegyzés alapból nem aktív. Az engedélyezéséhez írjuk át az ötödik mezõben szereplõ `off` (kikapcsolva) értéket `on` (bekapcsolvá)-ra, majd indítsuk újra az man:init[8] programot a crossref:serialcomms[term-hup,A init utasítása az /etc/ttys újraolvasására]ban leírtak szerint. Az elsõ mezõben találhatjuk a program által kezelt terminált, ez jelen esetünkben a `ttyv8`. Ennek megfelelõen az XDM a 9. virtuális terminálon kezdi meg a futását.

=== Az XDM beállítása

Az XDM beállításait tartalmazó könyvtár a [.filename]#/usr/local/lib/X11/xdm#. Itt találhatjuk meg azokat az állományokat, amelyek megváltoztatásával befolyásolhatjuk az XDM megjelenését és viselkedését. Általában a következõ állományok bukkannak fel ezen a helyen:

[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| Állomány
| Leírás

|[.filename]#Xaccess#
|A kliens hitelesítésének szabályrendszere.

|[.filename]#Xresources#
|Az X erõforrásainak alapértelmezett értékei.

|[.filename]#Xservers#
|Az ismert távoli és helyi X szerverek listája.

|[.filename]#Xsession#
|A bejelentkezések során lefutó alapértelmezett szkript.

|[.filename]#Xsetup_#*
|A bejelentkezõ felület indítása elõtt indítandó alkalmazásokkal kapcsolatos szkript.

|[.filename]#xdm-config#
|A gépen futó összes X szerver globális beállításai.

|[.filename]#xdm-errors#
|A szerver által jelentett hibák.

|[.filename]#xdm-pid#
|A jelenleg futó XDM-hez tartozó azonosító.
|===

Ebben a könyvtárban találunk még néhány olyan programot és szkriptet, amelyekkel be tudjuk állítani a munkaasztalunkat az XDM futása alatt. Ezen állományok céljait egyenként ismertetni fogjuk. A felépítésükrõl és használatukról az man:xdm[1] man oldala árul el többet.

Az alapértelmezett beállítás egy téglalap alakú bejelentkezõ ablak, aminek tetején nagy betûkkel a gép neve olvasható, valamint alatta a "Login:" (felhasználói név) és "Password:" (jelszó) mezõk várnak kitöltésre. Ez egy remek kiindulási alap az XDM-képernyõ kinézetének megváltoztatásához.

==== Xaccess

Az XDM-mel szabályozott X szerverek által használt protokoll az X Display Manager Connection Protocol (XDMCP). Ez az állomány tartalmazza a távoli számítógépekrõl érkezõ XDMCP-kapcsolatok vezérlésére vonatkozó szabályokat. Ezt a rendszer általában figyelmen kívül hagyja, hacsak az [.filename]#xdm-config# állományban be nem állítottuk a távoli számítógépek csatlakoztathatóságát. Alapértelmezés szerint viszont semmilyen klienst nem enged csatlakozni.

==== Xresources

Ez tartalmazza a szerverválasztó és bejelentkezõ képernyõ alapértelmezéseit. Segítségével a bejelentkeztetést végzõ program kinézetét változtathatjuk meg. Formátuma hasonló az X11 dokumentációjában leírt app-defaults állományhoz.

==== Xservers

A szerverválasztó által felkínálandó távoli X szerverek felsorolását tartalmazza.

==== Xsession

A felhasználó bejelentkezése után ez az XDM-szkript fog lefutni. Általában minden felhasználóhoz tartozik egy saját [.filename]#~/.xsession# szkript, ami ezt felülbírálja.

==== Xsetup_*

Ezek fognak automatikusan lefutni a szerverválasztó vagy bejelentkeztetõ felületek megjelenése elõtt. Minden általunk használt X szerverhez tartozik egy ilyen szkript, amelyek neve [.filename]#Xsetup_#-al kezdõdik és a helyi X szerver sorszámával folytatódik (például [.filename]#Xsetup_0#). Ezek a szkriptek általában egy-két programot, mint például az `xconsole`, indítanak el a háttérben.

==== xdm-config

Az app-defaults nevû állományéhoz hasonló alakban tartalmaz beállításokat a program által kezelt minden egyes X szerverhez.

==== xdm-errors

Ebben található meg az XDM által futtatni próbált X szerverek kimenete. Itt érdemes hibaüzenetek után kutatni, ha az XDM által indított X szerver valamiért megállna. Ezek az üzenetek egyébként a felhasználó [.filename]#~/.xsession-errors# állományába is beíródnak.

=== Hálózati X szerver futtatása

Az X szerverünkhöz csak akkor tudnak kívülrõl más felhasználók is kapcsolódni, ha átírjuk a hozzáférésre vonatkozó szabályokat és engedélyezzük rajta a kapcsolódást. Az alapértelmezett szabályok nagyon óvatosak. Ha tehát engedélyezni akarjuk a kívülrõl érkezõ kapcsolódásokat, akkor ahhoz elõször az [.filename]#xdm-config# állományból vegyük ki az alábbi sort:

[source,shell]
....
! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort:     0
....

Ezután indítsuk újra az XDM-et. Ne felejtsük el, hogy az app-defaults állományokban a megjegyzések "!" (felkiáltó)jellel kezdõdnek, nem pedig a megszokott "#" (kettõskereszt)tel. A fentieknél természetesen szigorúbb hozzáférési szabályok is szükségesek lehetnek - ezzel kapcsolatban nézzük meg [.filename]##Xaccess## állományban szereplõ példákat, illetve lapozzuk fel az man:xdm[1] man oldalt.

=== Az XDM helyett

Az alapértelmezett XDM feladatát számos más program is képes ellátni. Ezek közül az egyik a kdm (a KDE része), amire ebben a fejezetben még vissza fogunk térni. A kdm különféle vizuális effekteket és egyéb kozmetikázást ígér, valamint lehetõvé teszi a felhasználók számára, hogy a bejelentkezés elõtt kiválaszthassák a használni kívánt ablakkezelõt.

[[x11-wm]]
== Munkakörnyezetek

Ebben a szakaszban a FreeBSD-n futó X-hez elérhetõ különbözõ munkakörnyezetekrõl (desktop environment) lesz szó. Maga a "munkakörnyezet" elnevezés sok mindenre utalhat egy mezei ablakkezelõtõl kezdve az asztali alkalmazások teljes garmadájáig, ahogy igaz ez a KDE vagy a GNOME esetében is.

[[x11-wm-gnome]]
=== A GNOME

[[x11-wm-gnome-about]]
==== Röviden a GNOME-ról

A GNOME egy felhasználóbarát munkakörnyezet, aminek segítségével a felhasználók számára gyerekjáték a számítógép használata és beállítása. A GNOME-ban találhatunk egy panelt (az alkalmazások indítására és különféle állapotjelzõk megjelenítéséhez), egy asztalt (ahova az alkalmazások és az adatok kerülnek), szabványos asztali eszközöket és alkalmazásokat, valamint számos konvenciót, aminek mentén az alkalmazások könnyen együtt tudnak mûködni és tartani egymással az összhangot. Más operációs rendszerek vagy környezetek ismerõi otthon érezhetik magukat ebben a GNOME által nyújtott vizuális környezetben. A FreeBSD és a GNOME kapcsolatáról bõvebb információkat a http://www.FreeBSD.org/gnome[FreeBSD GNOME Projekt] honlapján találhatunk. Ezen az oldalon a GNOME telepítésérõl, beállításáról és karbantartásáról egy meglehetõsen átfogó leírást olvashatunk.

[[x11-wm-gnome-install]]
==== A GNOME telepítése

A programot könnyen fel tudjuk telepíteni csomagból vagy a Portgyûjtemény segítségével:

A hálózatról a GNOME csomagját mindössze ennek a sornak a beírásával fel tudjuk telepíteni:

[source,shell]
....
# pkg_add -r gnome2
....

A portfa felhasználásával pedig a GNOME-ot így tudjuk forrásból telepíteni:

[source,shell]
....
# cd /usr/ports/x11/gnome2
# make install clean
....

Miután a GNOME-ot sikerült feltelepítenünk, meg kell mondanunk az X szervernek, hogy az alapértelmezett ablakkezelõ helyett a GNOME-ot indítsa el.

A GNOME-ot legkönnyebben a GDM, vagyis a GNOME Display Manager használatával indíthatjuk el. A GDM a GNOME részeként települ (habár alapból nincs bekapcsolva), és úgy tudjuk aktiválni, ha [.filename]#/etc/rc.conf# állományba beírjuk a `gdm_enable="YES"` sort. Újraindítás után a GDM automatikusan elindul.

Ha a GDM mellett az összes GNOME szolgáltatást is el akarjuk indítani, vegyük fel a `gnome_enable="YES"` sort az [.filename]#/etc/rc.conf# állományba.

A GNOME-ot parancssorból is elindíthatjuk, ha hozzá megfelelõen beállítjuk az [.filename]#.xinitrc# nevû állományt. Ha már van egy saját [.filename]#.xinitrc# állományunk, akkor nincs más teendõnk, mint átírni az aktuális ablakkezelõnket hívó sort a /usr/local/bin/gnome-session sorra. Ha nem csináltunk elõtte semmilyen különleges dolgot az említett konfigurációs állománnyal, akkor elegendõ csak ennyit beírnunk:

[source,shell]
....
% echo "/usr/local/bin/gnome-session" > ~/.xinitrc
....

Ezt követõen írjuk be a `startx` parancsot, és a GNOME munkakörnyezete fog elindulni.

[NOTE]
====
Ha az XDM-hoz hasonló régebbi bejelentkeztetõ képernyõt használunk, ez a módszer nem fog mûködni. Helyette hozzunk létre egy [.filename]#.xsession# nevû futtatható állományt, amely ezt a parancsot tartalmazza. Ehhez nyissuk meg és cseréljük ki benne a korábbi ablakkezelõnk hívását a /usr/local/bin/gnome-session utasításra:
====

[source,shell]
....
% echo "#!/bin/sh" > ~/.xsession
% echo "/usr/local/bin/gnome-session" >> ~/.xsession
% chmod +x ~/.xsession
....

Megcsinálhatjuk azt is, hogy a bejelentkezéskor választható legyen az ablakkezelõ. <<x11-wm-kde-details,A KDE-rõl bõvebben>> címû szakaszban látni fogjuk, hogyan tudjuk ezt a a KDE bejelentkeztetõ képernyõje, a kdm esetén beállítani.

[[x11-wm-kde]]
=== A KDE

[[x11-wm-kde-about]]
==== Röviden a KDE-rõl

A KDE egy könnyen használható modern munkakörnyezet. Ízelítõül a KDE felhasználók számára felkínált lehetõségei közül:

* Gyönyörû, korszerû munkafelület
* Az asztal hálózaton keresztüli transzparens kezelése
* A KDE asztal és alkalmazásainak használatában egy beépített súgórendszer segíti a kényelmes és összefüggõ közlekedést
* A KDE alkalmazásainak összehangolt kinézete és hangulata
* Szabványosított menük és eszköztárak, billentyû-hozzárendelések, színsémák stb.
* Honosítás: a KDE több, mint 40 nyelven elérhetõ
* Központosított, összehangolt, párbeszédablak alapú asztalbeállítás
* Számos hasznos KDE-alkalmazás

A KDE-hez egy Konqueror nevû böngészõ is tartozik, mely a többi UNIX(R)-os böngészõ komoly ellenfelének bizonyul. A KDE-rõl többet a http://www.kde.org/[KDE honlapján] olvashatunk. A KDE FreeBSD-re vonatkozó tudnivalóiról és a hozzá tartozó anyagokról a http://freebsd.kde.org/[FreeBSD KDE csapat] honlapján találhatunk információkat.

FreeBSD alatt a KDE két verziója érhetõ el: a harmadik változat már régóta használható, nagyon megbízható, amely mellett viszont a következõ generációt képviselõ negyedik változat is megtalálható a Portgyûjteményben. Akár egymás mellé is telepíthetõek.

[[x11-wm-kde-install]]
==== A KDE telepítése

Ahogy a GNOME és a többi más munkakörnyezet esetében is, maga a program könnyen telepíthetõ csomagból vagy a Portgyûjtemény segítségével is:

A KDE3 csomagját hálózaton keresztül így tudjuk telepíteni:

[source,shell]
....
# pkg_add -r kde
....

A KDE4 csomagját pedig hálózaton keresztül így tudjuk telepíteni:

[source,shell]
....
# pkg_add -r kde4
....

A man:pkg_add[1] magától letölti az alkalmazás legfrissebb verzióját.

Ha a KDE3 környezetet forrásból akarjuk telepíteni, használjuk a portfát:

[source,shell]
....
# cd /usr/ports/x11/kde3
# make install clean
....

Ha viszont a KDE4 környezetet akarjuk inkább a portfa felhasználásával forrásból telepíteni, akkor ezeket a parancsokat adjuk ki:

[source,shell]
....
# cd /usr/ports/x11/kde4
# make install clean
....

Miután a KDE-t sikeresen telepítettük, tudatnunk kell az X szerverrel, hogy az alapértelmezett ablakkezelõ helyett ezt indítsa el. Ezt az [.filename]#.xinitrc# állomány módosításával érhetjük el.

KDE3 esetén:

[source,shell]
....
% echo "exec startkde" > ~/.xinitrc
....

KDE4 esetén:

[source,shell]
....
% echo "exec /usr/local/kde4/bin/startkde" > ~/.xinitrc
....

Mostantól pedig mindig KDE lesz az asztalunk, amikor az X Window Systemet elindítjuk a `startx` paranccsal.

Ha az XDM-et használjuk bejelentkeztetõ képernyõként, a beállítást némileg máshogyan kell elvégeznünk. Ekkor az iménti helyett az [.filename]#.xsession# állományt kell szerkesztenünk. A kdm-re vonatkozó utasítások a fejezet késõbbi részében találhatóak meg.

[[x11-wm-kde-details]]
=== A KDE-rõl bõvebben

Most, miután telepítettük a KDE-t a rendszerünkre, a dolgok többsége felfedezhetõ a különféle súgók segítségével vagy egyszerûen a menükre történõ kattintással. A Windows(R)-hoz vagy Mac(R)-hez szokott felhasználók itt most már egészen otthonosan érezhetik magukat.

A KDE-hez a legtöbb segítséget a saját internetes dokumentációjából nyerhetjük. A KDE a saját böngészõjét, a Konquerort tartalmazza, valamint tucatnyi ügyes alkalmazást és temérdek mennyiségû dokumentációt. A szakasz további részeiben ezért inkább olyan problémákkal foglalkozunk, amelyek megoldásai céltalan kóborlással már nem fedezhetõek fel olyan egyszerûen.

[[x11-wm-kde-kdm]]
==== A KDE bejelentkeztetõ képernyõje

Egy többfelhasználós rendszer karbantartója minden bizonnyal szeretné üdvözölni rendszere felhasználóit egy grafikus bejelentkezõ képernyõn keresztül. A korábbiakban erre a célra az <<x-xdm,XDM>>-et javasoltuk. Azonban a KDE erre ajánl egy alternatívát, a kdm-et, amely jóval látványosabb és sokoldalúbb. Ez különösen abban merül ki, hogy a felhasználók (egy menün keresztül) ki tudják választani a bejelentkezés után használni kívánt munkakörnyezetet (legyen az KDE, GNOME vagy bármi más).

A kdm használatához a KDE aktuális verziójától függõen különbözõ állományokat kell szerkesztenünk.

KDE3 esetén a [.filename]#/etc/ttys# állományban szereplõ `ttyv8` sort kell az alábbiak szerint módosítanunk:

[.programlisting]
....
ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure
....

KDE4 esetén a következõ sorokat kell felvennünk az [.filename]#/etc/rc.conf# állományba:

[.programlisting]
....
local_startup="${local_startup} /usr/local/kde4/etc/rc.d"
kdm4_enable="YES"
....

[[x11-wm-xfce]]
=== Az Xfce

[[x11-wm-xfce-about]]
==== Röviden az Xfce-rõl

Az Xfce a GNOME által használt GTK+-ra épülõ munkakörnyezet, amely azonban sokkal könnyedebb és azoknak készült, akik egy szimpla, hatékony, mindazonáltal könnyen használható és beállítható munkafelületre vágynak. Látvány szempontjából leginkább a kereskedelmi rendszereken megtalálható CDE-hez hasonlítható. Íme az Xfce néhány jellemzõje:

* Egyszerû, könnyen kezelhetõ munkaasztal
* Tökéletesen konfigurálható egérrel, drag-and-droppal ("vonszolás") stb.
* A menükkel, kisalkalmazásokkal és alkalmazásindítókkal tarkított fõpanelje hasonló a CDE paneljéhez
* Beépített ablak-, állomány- és hangkezelõvel, GNOME kompatibilitási modullal és még sok minden mással rendelkezik
* Használhatunk témákat (mivel GTK+-ra épül)
* Gyors, könnyû és hatékony: ideális régebbi vagy lassabb, esetleg kevés memóriával rendelkezõ számítógépekhez

Az Xfce-rõl részletesebben az http://www.xfce.org/[Xfce honlapján] olvashatunk.

[[x11-wm-xfce-install]]
==== Az Xfce telepítése

Az Xfce-hez tartozik bináris csomag (legalábbis az leírás készítésének pillanatában). Ezt a következõ módon tudjuk telepíteni:

[source,shell]
....
# pkg_add -r xfce4
....

Vagy a Portgyûjtemény használatával forrásból is felrakhatjuk:

[source,shell]
....
# cd /usr/ports/x11-wm/xfce4
# make install clean
....

Ezután világosítsuk fel az X szervert, hogy a következõ indulása során mi már az Xfce-t kívánjuk használni. Ehhez csak ennyit kell tennünk:

[source,shell]
....
% echo "/usr/local/bin/startxfce4" > ~/.xinitrc
....

Így az X következõ indításakor már az Xfce lesz a munkakörnyezetünk. Ahogy azt már korábban is jeleztük, az XDM használata során a <<x11-wm-gnome,GNOME>>ban leírtak szerint létre kell hoznunk az [.filename]#.xsession# állományt, azonban ezúttal a [.filename]#/usr/local/bin/startxfce4# parancs használatával. Vagy a <<x11-wm-kde-kdm,kdm>>-rõl szóló szakaszban tárgyaltak mentén beállíthatjuk úgy a bejelentkeztetõ képernyõt, hogy a bejelentkezés elõtt válasszuk ki a munkakörnyezetet.
