<!-- DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN" -->

<!-- Chapter: The GUI -->
<chapter id="thegui">
<title>De Graphical User Interface</title>

<para>
Ja het klopt, Linux heeft, <quote>net als Windows</quote> een GUI, 
zou je kunnen stellen. Het is beslist niet nodig tijdens het gebruik van
Linux te blijven hangen bij de opdrachtregel, je kunt het systeem
zeer effectief gebruiken met een GUI, compleet met themes, desktopbeheer,
slepen en neerzetten, in feite de hele tierelantijn. De GUI heeft
tenslotte een dusdanige fase bereikt dat het nu zelfs mogelijk is om
3D-spellen te spelen, films te kijken, professionele afbeeldingen te maken,
IDE's te gebruiken voor de ontwikkeling van programma's, enz.
Maar je kunt er aardig zeker van zijn dat
je je ook zult voelen aangetrokken tot de krachtige
CLI (dwz, de <firstterm>Command Line Interface</firstterm>) zodra 
je eraan raakt gewend.
</para>

<para>
Hoe dan ook, er is veel meer te doen met de Linux GUI dan alleen een
aanwijzen-en-klikken. Het geheel is gebaseerd op een grote, weloverdachte
architectuur die features verschaft aan de gebruiker die men zich alleen
maar voor had kunnen stellen. Dus we zullen dit stap-voor-stap benaderen.
In dit hoofdstuk gaan we het alleen maar hebben over de basissetup van de
daarmee gepaard gaande hardware en geven een beknopte introductie in het
concept van een Desktop Environment.
<!-- Other
things will be described in later chapters dedicated to those topics. -->
</para>

<!-- Section1: Setting up hardware -->
<sect1 id="hardwaresetup">
<title>Instellen van de hardware</title>
<para>
Een belangrijke beperking in het gebruik van Linux op de desktop was
een blijkbaar gebrek aan ondersteuning voor multimediacomponenten zoals
geluids- en videokaarten. Maar Linux heeft een lange weg afgelegd in
termen van ondersteuning voor deze multimediadevices.
De meeste installaties zullen
je geluids- en videokaarten detecteren en er overeenkomstig de juiste
drivers voor selecteren. Wellicht dat het wel nodig is om de documentatie
van je hardware bij de hand te houden, zoals voor informatie over het merk 
en model van je kaart, diverse specificaties, enz.
</para>

<!-- Section2: Display Settings -->
<sect2 id="display">
<title>Beeldscherminstellingen</title>
<para>
Het weergavesysteem onder Linux wordt beheerd door een grote suite
met externe software genaamd het X-Window systeem. Er is driverondersteuning 
voor een groot aantal apparaten in opgenomen, welke door ontwikkelaars
regelmatig wordt bijgewerkt en aangevuld. De feitelijke configuratie
van beeldschermen is uiterst simpel door middel van configuratietools.
In geval dat niet lukt, kunnen de instellingen zelfs handmatig worden gemaakt.
De gebruiker moet wellicht details zoals het type toetsenbord, de muis,
monitorfrequenties, omvang van het video RAM, enz. opgeven als de hardware
niet automatisch wordt gedetecteerd. Deze gegevens zijn makkelijk terug
te vinden in de hardwarehandleidingen.
</para>

<para>
Wanhoop niet als het display niet tijdens de installatie kan worden
geconfigureerd! Je kunt hoe dan ook het beste de installatie continueren.
De beeldscherminstellingen kunnen altijd later worden aangemaakt met behulp
van de hieronder opgesomde utility's.
Deze kunnen ook worden gebruikt om de 
instellingen van het beeldscherm te herconfigureren, zelfs als de tijdens
de installatie gemaakte instellingen correct werken.
</para>

<sect3>
<title>Xconfigurator</title>
<para>
De Xconfigurator is het simpelst van deze utility's. Voor het instellen
van het beeldscherm, hoeft de gebruiker slechts de opdracht
 <command>Xconfigurator</command> in te tikken achter de superuserprompt.
Dit wordt normaal gesproken tijdens de installatie zelf aangeroepen, maar het
kan ook later worden gebruikt om de instellingen aan te passen.
Het utility probeert de hardware
te detecteren en het te matchen met een reeds bestaande database.
In geval de hardware correct wordt gedetecteerd worden de van toepassing
zijnde instellingen gemaakt. Ook krijgt de gebruiker een aantal dialogen
gepresenteerd, zoals de benodigde schermresolutie, kleurdiepte en of
Linux direct in GUI-modus moet booten.
</para>
</sect3>

<sect3>
<title>xf86config</title>
<para>
Je kunt terugvallen op het utility <command>xf86config</command> wanneer
Xconfigurator niet in staat is de hardware te detecteren, of niet achter
alle juiste instellingen weet te komen. Dit is in feite een script
die de gebruiker voorziet van een interface om alle benodigde
instellingen handmatig op te geven. Er worden vragen gesteld over
de hardware en de gebruiker moet de juiste informatie aanleveren.
 Als alles goed gaat, dan wordt een nieuwe configuratie gegenereerd
die hopelijk correct werkt!
</para>
</sect3>

<sect3>
<title>Wanneer al het andere mislukt ...</title>
<para>
Hierover is reeds een grote hoeveelheid documentatie beschikbaar in de
vorm van HOWTO's, FAQ's enz. De beste manier om hulp te krijgen bij het
instellen van je hardware is het raadplegen van een plaatselijke
 Linux Users Group, waar iemand er nauw bij betrokken is door reeds
geconfronteerd te zijn met een probleem dat jij wellicht hebt.
Het is hierbij handig als je wat informatie kunt aanleveren
over wat de X-server (dwz, het weergavesysteem) rapporteerde voordat het
afsloot, als het in de eerste plaats al startte. Het is ook aan te raden
de FAQ na te gaan als de groep een discussielijst heeft, aangezien dergelijke
onderwerpen veel worden besproken en mensen het gewoonlijk niet prettig
vinden de threads weer helemaal opnieuw te beginnen!
</para>

<para>
De meeste fijnafstemming die het met zich meebrengt heeft betrekking op een
enkel bestand, <filename>/etc/X11/XF86Config</filename>, waarin wellicht een
paar opties moeten worden gewijzigd. Het helpt om de homepage van
<ulink url="http://www.xfree86.org"> XFree86 </ulink> na te gaan voor een
lijst met thans ondersteunde hardware. Een aantal verkopers voorziet wellicht
ook in eigen drivers, zoals die voor de Intel 810 chipset.
</para>
</sect3>
</sect2>

<!-- Section2: sndconfig -->
<sect2 id="sndconfig">
<title>sndconfig - Geluidsinstellingen</title>

<para>
Ondersteuning voor geluid is direct in de Linux kernel gebouwd, het meest
gebruikelijk in de vorm van geluidsmodules die samen met de kernel worden
aangemaakt. Een kernelinstallatie in een Linux distributie bevat 
ondersteuning voor een heleboel algemene geluidsdevices.
Het <command>sndconfig</command> utility voorziet in een wijze om de
module voor het device op de machine van de gebruiker te configureren.
Het utility zal proberen de aanwezige geluidskaart te detecteren, en de
juiste in de kernel te pluggen module selecteren. Als het de geluidskaart
niet kan detecteren, vraagt het de gebruiker om meer informatie aan te
leveren. Nogmaals, het is waarschijnlijker dat de geluidskaart automatisch
zal worden gedetecteerd, maar het is hoe dan ook beter om de documentatie
bij de hand te hebben.
</para>

</sect2>

</sect1>

<!-- Section1: X-Windows -->
<sect1 id="x-windows">
<title>X - Het Window Systeem</title>

<para>
Onder Linux wordt de weergave afgehandeld door een client-server architectuur
genaamd het X Window Systeem. Het is gebaseerd op het X-protocol
ontwikkeld in 1980's om aan de behoefte te voldoen aan een netwerktransparante
grafische gebruikersinterface voor Unix-systemen. X-clients draaien typisch
op een remote machine met een overmaat aan computerkracht, terwijl de
weergaven worden afgehandeld door een X-server die wellicht draait op
een machine met goede grafische mogelijkheden. 
Het X-protocol verbergt de eigenaardigheden van het besturingsysteem
en de onderliggende hardware, zodat een toepassing draaiend op de ene machine 
zijn interface
feitelijk op een andere machine kan weergeven! In geval van een desktop
draaien zowel de server als de clients op dezelfde machine, waardoor
netwerkondersteuning niet zo van belang is.
</para>

<para>
Het X Window Systeem dat het meeste wordt gebruikt op alle Linux systemen is
<ulink url="http://www.xfree86.org">XFree86</ulink>, wat een vrije
implementatie is van X. Zodra de benodigde hardware-instellingen zijn
gemaakt met de Xconfigurator, kan het X-systeem worden opgestart met het
script <command>startx</command>. Bovendien kan de X-GUI de standaardinterface
worden gemaakt van het systeem door het bewerken van een aantal 
initialisatie-opties, die elders worden beschreven.
</para>

</sect1>

<!-- Section1: The DE -->
<sect1 id="thede">
<title>De Desktop Environment</title>

<para>
De feitelijke GUI wordt geleverd in de vorm van een <firstterm>Desktop
Omgeving</firstterm> welk verantwoordelijk is in het voorzien van de
werkelijke functionaliteit van de Linux Desktop. De
Desktop Omgeving levert achtergrondprocessen, standaardlibrary's en een
algemeen framework voor de werking van diverse toepassingen.
De omgeving zal zorgen voor alles wat nodig is door de 
toepassingen voor de uitwisseling met elkaar en te reageren op
door gebruikers gegenereerde acties. Een voorbeeld hiervan is het
slepen-en-neerzetten, waarbij gegevens van de ene naar de andere
toepassing worden doorgegeven door een simpel gebruik van de muis.
Dit kan niet worden bewerkstelligd, tenzij de Desktop omgeving voorziet
in een standaardmanier om gegevens tussen toepassingen uit te wisselen,
en het interpreteren van de acties die de gebruiker via de muis neemt.
</para>

<sect2 id="thewm">
<title>Window managers</title>
<para>
De bediening van vensters op het scherm wordt afgehandeld door een aparte
entiteit genaamd de <firstterm>window manager</firstterm>. Dit voorziet
in de individuele besturingselementen en eigenschappen van de vensters,
in combinatie met desktopbeheer. Voorbeelden hiervan zijn Enlightenment, IceWM,
enz. De window manager die je voor je systeem kiest zal bepalen hoe
alle vensters op je scherm er uitzien en functioneren.
Dit verschilt met het concept <quote>themes</quote>, dat slechts
de globale verschijning definieert. De window manager wordt verondersteld
zorg te dragen voor het feitelijke functioneren van de vensters, zoals
de reactie op gebruikersklikken, de minimaliseer en maximaliseer acties
het verplaatsen van de vensters, enz. De themes worden in feite door
beiden ondersteund, door zowel de Desktop omgeving als de window manager;
de gebruiker kan beiden kiezen.
</para>
</sect2>

<sect2 id="thews">
<title>Widgetsets of toolkits</title>
<para>
Een andere belangrijke component is de <firstterm>widgetset</firstterm> of de
<firstterm>toolkit</firstterm> die voorziet in de meest gebruikelijke
widgets voor de GUI, dwz, knoppen, tekstkaders, enz. Dit wordt door de
programmeurs van toepassingen gebruikt om de benodigde interface voor hun
toepassing te cre&euml;ren. GNOME maakt bijvoorbeeld gebruik van de
GIMP Toolkit, genaamd gtk+, terwijl KDE is gebaseerd op de Qt-library.
Aangezien in een bepaalde omgeving een enkele widget wordt gebruikt,
zullen alle toepassingen dezelfde verschijning hebben. Maar dit is
een onderdeel waar de eindgebruiker zich niet mee hoeft bezig te houden,
het zijn de ontwikkelaars die hier meer in zijn ge&iuml;nteresseerd.
Als je van plan bent een op een GUI gebaseerde toepassing te schrijven,
dan moet je waarschijnlijk als eerste beginnen met zoeken naar de
selectie widgetsets die je wilt gebruiken om vensters, formulieren, enz.
te maken.
</para>
</sect2>

<sect2 id="de-options">
<title>Beschikbare opties</title>
<para>
Nu wemelt de wereld van Linux van een heleboel Desktop omgevingen,
maar slechts een paar vertonen zich als de favorieten,
GNOME, KDE, xfce, enz. Hiervan zijn GNOME en KDE de meest
ambitieuze projecten die streven naar een heleboel kracht in
de Linux Desktop. Reeds een groot aantal commerci&euml;le ondernemingen
zijn plotseling ontstaan rondom deze twee omgevingen. Welke omgeving
je ook kiest, ze voorzien in vergelijkbare features in termen van
toepassingen, performance, enz. Maar het enige probleem is dat
ze totaal verschillende richtingen zijn opgegaan, en vandaar is
de samenwerking tussen deze twee erg mager. Dus die prachtige
mailclient die je zo prettig vindt in de ene omgeving werkt simpelweg
wellicht niet in de andere omgeving!
</para>

<para>
KDE was de eerste van de twee, gebaseerd op de Qt widget set
gecre&euml;erd door een bedrijf met de naam TrollTech. Maar het
licentieschema met betrekking tot het project was zodanig dat het geen
volledig vrije software was.
Dus als reactie daarop begon het GNOME project, om een werkelijk
vrije GUI voor het GNU/Linux systeem te maken. Maar de licentieproblemen
zijn sindsdien opgelost, zodat de competitie nu is gebaseerd op technische
details zoals de performances, de features, toepassingen, enz.
</para>

<para>
In plaats van het aanbevelen van een bepaalde omgeving, is het beter als
de gebruiker alle verschillende keuzes die in Linux land beschikbaar zijn
zelf probeert alvorens te besluiten welke ze het prettigst vindt.
Een aantal mensen maakt simpelweg gebruik van een specifieke omgeving 
omdat ze die altijd al hebben gebruikt en de noodzaak er niet van inzien
om naar een ander over te schakelen! 
<!-- We will look at
the features and services available with each one in later
chapters. -->
</para>
</sect2>

</sect1>

</chapter>

<!-- Keep this comment at the end of the file
Local variables:
fill-column:75
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
sgml-parent-document:("NGL.sgml" "book" "chapter")
End:
-->



