Linux X Window System VVV

Jan-Willem Smaal <X-VVV@Smaal.Demon.nl>

Revisie: 1.7, 13 Sep 1999


Dit is een lijst van veel voorkomende vragen (VVV's) over het X Window Systeem van Linux gebruikers in de nieuwsgroep nl.comp.os.linux De laatste versie van dit document is te vinden op: http://www.nl.linux.org/doc/HOWTO/X-VVV.html

1. Over deze VVV


Als de ontwerpers van het X Windowing Systeem auto's zouden 
bouwen, waren er niet minder dan vijf sturen verstopt in de 
auto, en geen één werkte op dezelfde manier ... Maar je zou 
kunnen schakelen met je autoradio. Bruikbare feature die 
laatste.

-- Marcus J. Ranum, Digital Equipment Corporation

Dit is een lijst van veel voorkomende vragen (VVV's) met antwoorden in nl.comp.os.linux over het X Window System (kortweg X).

1.1 Met dank aan...

De Nederlandse Linux Gebruikers groep.

J.A. Bezemer < J.A.Bezemer@ITS.TUDelft.NL>, Alrik van den Brom < vdbrom@chem.vu.nl>, A. van Dijk < a.vandijk@unseen.demon.nl>, Jaco de Groot < getfree@dds.nl>, Bart Hanssens < antares@rtfs.net>, Maurice Janssen < maurice@warp.xs4all.nl>, Hugo van der Kooij < hvdkooij@caiw.nl>, Eric Looijengoed < Eric.Looijengoed@net.HCC.nl>, Tom Peters < tpeters@xs4all.nl>, Eric Veltman < eveltman@lycosmail.com> en Andre de Vet < bofh@meanframe.xs4all.nl.

Verder alle mensen welke mij verder tips en suggesties hebben opgestuurd, en de Nederlandse Linux gebruikers welke meestal te vinden zijn in nl.comp.os.linux :-).

1.2 Aanvullingen suggesties enz

Mocht je na het doorlezen van deze VVV, of de andere documentatie nog vragen hebben over X, dan kun je ze natuurlijk stellen op nl.comp.os.linux. Lees wel eerst de aanwijzingen voor het posten in nl.comp.os.linux.

Het is van belang dat meerdere mensen aan deze VVV meewerken om deze up to date te houden. U kunt de vragen + bijbehorende antwoorden over X, welke volgens u veel voorkomen in de groep (kortom VVV) naar J-W toe sturen en ik zorg dat deze dan in de VVV worden opgenomen. Heeft U opmerkingen, verbeteringen (spelfouten ! :), flames over deze VVV stuur ze op.

1.3 De X-VVV is gemaakt met...

Linux natuurlijk ! Om precies te zijn met de SGMLtools, daarom is het heel simpel om meerdere documentformaten te maken. Als je alle formaten wil hebben, is het voldoende om de linuxdoc SGML file te downloaden en dan de andere documenten te maken met de SGMLtools. Uiteraard neem je veel werk van mij uit handen als je je bijdragen in SGML naar mij mailt. Voor meer informatie over de SGMLtools zie: http://www.sgmltools.org/

1.4 Copyrights, Disclaimers

De Linux X-VVV is eigenlijk nooit helemaal af. De X-VVV is geschreven door vrijwilligers er kunnen altijd onjuistheden/fouten instaan.

Om deze VVV zo leesbaar mogelijk te houden kunnen sommige punten simpeler zijn voorgesteld dan ze in werkelijkheid zijn.

Dit document is volledig vrij te verspreiden en te dupliceren indien er geen verdere restricties op verspreiding van dit document toegevoegd worden. Sterker nog het zo veel mogelijk verspreiden en dupliceren van dit document (onder bovengenoemde voorwaarden) wordt aangemoedigd !

Linux is een trademark welke namens de linux gemeenschap gehouden wordt door Linus Benedict Torvalds. X Window System® is een handelsmerk van X Open group. MetroX® is een handelsmerk van Metrolink. Accelerated X® is een handelsmerk van Xi. Alle andere genoemde handelsmerken behoren tot hun respectieve eigenaars.

2. Algemene vragen

2.1 Wat is het X Window systeem; wat is de filosofie achter X?

Ik zal proberen deze vragen te combineren.

Het X Window Systeem ook wel ``X'' genoemd (maar niet XWindows !) is een combinatie van een aantal losse onderdelen:

De X display server is een programma welke op een systeem draait met een ``bitmapped display'' (bijvoorbeeld een PC met een vga kaart en monitor). De server zorgt onder andere dat de input van de gebruiker (muis, toetsenboard, joystick e.d.) wordt doorgeven aan de Xclient (bv. een applicatie).

Xclients zijn de programma's welke gebruik maken van de Xserver om onder andere de output op het scherm te laten zien en input van de gebruiker in te lezen.

Een van de ideeën achter X is dat er standaard library's zijn voor de overeenkomstige eigenschappen (zie boven) welke een grafisch werkstation heeft. Deze library's zijn op bijna elke UNIX (met X) aanwezig.

Het X Window Systeem is ontworpen door het M.I.T.. Zij zijn destijds uitgegaan van een aantal standaardonderdelen van een werkstation: display, keyboard, muis. Vervolgens hebben de ontwerpers proberen te achterhalen wat de primitieve onderdelen zijn van een windowing system bijvoorbeeld: een window maken, tekenen in een window, input van keyboard en muis, en nog meer van zulk soort onderdelen.

Doordat er in X standaard library's zijn voor primitieve functies (keyboard, muis e.d.) is het gemakkelijker om X applicaties voor UNIX te maken omdat de functies op elk systeem hetzelfde zijn.

X zelf is geen ``Graphical User Interface'' (GUI): de makers hebben X zo ontworpen dat wel elke GUI mogelijk is door gebruik te maken van de primitieve library's (Xlib). X dwingt dus geen GUI op aan de gebruiker of programmeur. De window manager + applicaties bepalen het gezicht van X (zie de WindowManager).

X heeft door de modulaire opbouw (de Xserver is bijvoorbeeld apart van de Xclient) mogelijkheden om van een netwerk gebruik te maken. Het is mogelijk om een applicatie op een andere computer (over het netwerk) te draaien en de grafische uitvoer op het eigen scherm te zien. De Xclient (de applicatie) merkt er niets van dat de gebruiker bijvoorbeeld in een totaal ander gebouw zit (of andere stad :). X maakt het netwerk voor de gebruiker dus transparant (hij/zij merkt er niets van). Voor meer informatie over de filosofie van X zie de website van OSF X consortium, en ``man X''.

2.2 Wat hebben de Xclient en Xserver met elkaar te maken?

Om te proberen duidelijk te maken wat een X client en een X server is, zal ik een voorbeeld geven.


server:                              Xterminal(of werkstation)

|---|                                      |========|
|   |                [2]                   |   X    |
|   |  ----->     ----->    ---->          |========|
|   |############### Netwerk ###########|--------------|
|---|  <----      <-----    ---->       |--------------|
Vegas                [1]                     Orbital

Xclients draaien                        De Xserver draait 
   op Vegas                                op Orbital

[1] Toetsaanslagen, muis events enz. [2] Grafische output applicatie enz.

Vegas is een computer zonder monitor, muis, of toetsenbord; Orbital heeft wel een scherm, muis en dergelijke. Stel ik wil een programma draaien op Vegas en ik wil ook nog zien wat het doet (zonder monitor erg lastig). Wat doe ik dan: ik start een programma op Vegas en zeg dat het display Orbital:0 is. De Xclient (het programma op Vegas) stuurt X-protocol verzoeken naar Orbital waar op dat moment een Xserver draait. Als Vegas permissie heeft op Orbital om daar zijn output te laten zien, dan zal er een window op Orbital te voorschijn komen.

Omdat ik geen toetsenbord op Vegas heb, is het erg lastig om commando's aan het programma te geven. Maar ik heb een werkstation met alles erop en eraan: als ik iets typ op Orbital dan wordt dat vervolgens (via het X-protocol) weer verzonden naar de Xclient (het programma op Vegas). Alle commando's (beweging van de muis, toetsenbord klikken enz...) worden dus (via het X-protocol) van de Xserver doorgegeven aan de Xclient [1]. De client stuurt via het X-protocol de grafische output over het netwerk [2] naar de Xserver waar het vervolgens op het scherm te zien is.

Dus om de verwarring nog groter te maken: de Xserver draait op het werkstation (Orbital) en de Xclient op de server (Vegas)!

N.B.: Als je nu een programma op je eigen werkstation start, dan draait natuurlijk zowel de Xserver als de Xclient op jouw eigen systeem.

Je kunt eigenlijk zeggen dat de Xserver iets aan te bieden heeft, namelijk een bitmapped display en user-I/O. De Xclient maakt daar gebruik van. De manier waarop de Xclient met de Xserver communiceert noemt men het X-protocol.

Dus je kunt met X een programma draaien op een ander systeem met het gevoel dat het op je eigen werkstation draait (je gebruikt immers je eigen muis en scherm). Op dit moment is het netwerk voor de gebruiker volledig transparant (hij merkt er niets van).

2.3 Wat is XDM en XDMCP?

XDM (X Display Manager) is zoals de naam al zegt een programma wat verschillende X displays onder controle heeft. Deze displays kunnen lokaal zijn (op je werkstation) of remote (bv. een X terminal). XDM is te vergelijken met ``login'' op de console: het vraagt om een login naam en password (in een window), als deze kloppen worden een aantal init files gerund en kan men werken onder X (dit noemt men een sessie).

XDMCP (X Display Manager Control Protocol) is het protocol waarmee onder andere de login service (login prompt) gevraagd wordt aan een X Display Manager.

In de X Display Manager wordt verder ingegaan op de configuratie van XDM.

2.4 Waar kan ik meer informatie over X krijgen?

Een uitstekende plaats om informatie over X te krijgen is de site van Kenton Lee. De officiële X consortium site is nu http://www.opengroup.org/tech/desktop/x/. Ook de moeite waard is deze (slashdot-achtige) site over X http://www.x11.org/.

Andere sites kun je vinden via http://www.nl.linux.org/.

3. De Xserver

3.1 Weet iemand of mijn grafische kaart met Linux werkt ?

De meeste grafische kaarten op een Intel gebaseerd systeem werken met de Linux kernel, als de fabrikant de nodige gegevens wil verstrekken. De Xservers van XFree86 worden bij de meeste linux distributies meegeleverd. Informatie over nieuwe (ook beta) releases van XFree86 kun je vinden op de site van de XFree86 organisatie, of op een van de Mirrors (Sunsite Europe).

Momenteel (21/01/99) is de laatste versie van de XFree86 distributie 3.3.3.1

Als je een nieuwe grafische kaart wilt gaan kopen, lees dan eerst de lijst van ondersteunde kaarten door http://www.xfree86.org/cardlist.html, dan ben je er 99.99% zeker van dat je kaartje ook met Linux werkt.

XFree86 heeft nog geen Xserver voor mijn grafische kaart wat nu ?

Je zou kunnen kijken of XSuSE een Xserver voor je kaart heeft gemaakt. Verder is het dan meestal wel mogelijk om de XF86_VGA16 Xserver van XFree86 te gebruiken, het zou kunnen dat bepaalde modes dan niet werken. Lees ook de volgende vraag.

3.2 Welke servers zijn er (commercieel of gratis)?

Doorgaand op de vorige vraag: als jouw grafische kaart niet ondersteund wordt door XFree86 dan zou je kunnen uitzoeken of een van de commerciële Xservers deze wel ondersteunt. Sommige commerciële servers hebben een aantal mogelijkheden welke XFree86 (nog) niet heeft, zoals multiheaded displays, 24bpp en 8bpp overlays, hardware gamma color correction enz... Er is een Engelstalige FAQ over dit onderwerp: de X on Intel-based UNIX FAQ.

Gratis cq OpenSource

Commerciële:

Tom Peters vond MetroX van Metrolink over het algemeen de zwakste van de drie. Hij werkt bijv. niet samen met de ``gpm'' mouse driver voor de Linux console (tenminste t/m MetroX v3.1). Maar hij raadt aan om de lijsten met ondersteunde hardware en features te bekijken op de websites, en vervolgens zelf te kijken welke de "beste" is voor jouw hardware.

(aanvulling door: Bart Hanssens < antares@rtfs.net>)

Ook Accelerated-X 4.1 en WordPerfect 8.0 PE zijn niet bepaald goeie maatjes: het kleurenpalet van WP is meestal zwart en WPG-clipart wordt niet goed - of soms zelfs helemaal niet - weergegeven. Daartegenover staat wel dat Accelerated-X heel makkelijk te configureren valt en dat deze server enorm veel kaarten ondersteunt.

3.3 Hoe configureer ik mijn XFree86 Xserver, en welke moet ik nou precies gebruiken?

Lees eerst de lijst van ondersteunde kaarten door http://www.xfree86.org/cardlist.html

Alles wat de XFree86 Xserver moet weten staat in de file XF86Config; volgens de Linux File System Standaard hoort hij thuis in /etc/X11/ .

Hoe die configuratie eruit moet zien is een vraag waar niet zomaar antwoord op te geven is. Voordat je een bepaalde Xserver gaat proberen is het van belang om goed te weten welke hardware er in de PC zit.

Er is een Engelstalige XFree86 QuickStart guide welke naar mijn mening aardig duidelijk is.

Als je een redelijk standaard grafisch kaartje hebt, dan is het meestal voldoende om de opgezochte gegevens (van je eigen hardware !) uit het onderstaande stukje op te schrijven. Daarna kun je één van de setup programma's draaien om de Xserver te configureren.

Dit is een checklist welke je naast de bestaande documentatie zou kunnen gebruiken voordat je X gaat configureren:

Deze gegevens staan meestal in de handleiding van de grafische kaart. Als je niet weet wat voor chipset je grafische kaart gebruikt (kijk eerst in de cardlist van XFree86) dan kun je het programma ``SuperProbe'' gebruiken. Dit programma is onderdeel van de XFree86 distributie. Het programma geeft bijvoorbeeld zo'n output:


 
First video: Super-VGA
        Chipset: S3 Trio64V+ (Port Probed)
        Memory:  2048 Kbytes
        RAMDAC:  Generic 8-bit pseudo-color DAC
                 (with 6-bit wide lookup tables (or in 6-bit mode))

Ik weet nu dus dat mijn kaart (Miro22SD) een S3 Trio64V+ chipset gebruikt en dat deze 2 MB memory heeft. Je kunt hem hierna opzoeken bij de S3 Trio chipset in de files ``Cards'' of ``AccelCards'' (zit bij de XFree86 distributie).

(aanvulling door: Bart Hanssens < antares@rtfs.net>)

Opgelet: bij sommige kaarten mislukt SuperProbe, en het is mogelijk dat je daarna enkel een zwart scherm te zien krijgt: je zal dan je PC moeten herstarten.

Als de handleiding niet duidelijk vermeldt welke chipset er op je grafische kaart zit, dan kijk je indien mogelijk best eens op de grafische kaart zelf. Soms wordt deze informatie ook getoond bij het (her)starten van je PC, snel lezen is dan de boodschap. Neem ook eens een kijkje in de ``/usr/lib/X11/Cards'' file.

Vervolgens is het van belang om deze gegevens van de monitor te weten:

Deze gegevens staan meestal in de handleiding van de monitor. Schrijf al deze gegevens van de checklist op.

XF86Setup

Één van de makkelijkste methoden om X te configuren is via het programma ``XF86Setup''. Met dit programma kun je met een GUI een XF86Config bestand genereren. Meer uitleg over XF86Setup is in het programma zelf te vinden onder ``help''. Het is wel nodig om de X_SVGA server geinstalleerd te hebben op je systeem. ``XF86Setup'' heeft die Xserver nodig. Het zou kunnen zijn dat de X_SVGA server niet werkt met jouw hardware; probeer dan één van de onderstaande manieren.

xf86config

Een andere mogelijkheid is om het scriptje ``xf86config'' te gebruiken. Dit scriptje vraagt een aantal gegevens en maakt daar vervolgens een ``/etc/XF86Config'' file van. Als je dit scriptje gebruikt, dan krijg je de meest complete /etc/XF86Config file, sommige opties worden met de andere scriptjes niet in de file gezet (XIE, pex5 fonts en dergelijke).

Xwrapper.

Let OP !: Als je Xwrapper gebruikt om de Xserver op te starten moet je ``xf86config'' niet zelf de link naar de Xserver laten aanmaken. De symboliclink ``/etc/X11/X'' moet wijzen naar de Xserver die je gebruikt. De link ``/usr/bin/X11R6/X'' moet dan wijzen naar ``Xwrapper''.

Xconfigurator.

Als je RedHat gebruikt, is het ook mogelijk om het programma ``Xconfigurator'' te gebruiken (informatie in de RedHat documentatie).

De /etc/XF86Config file.

Nu een XF86Config file gegenereerd is door één van deze bovenstaande programma's, is het handig om die XF86Config door te lezen. Controleer of de gegevens kloppen (commentaar staat in de file), en maak aanpassingen waar nodig. Helaas is er niet zoiets als een universele XF86Config file (honderden combinaties van grafische kaarten en monitoren), dus het heeft weinig zin om die in deze VVV door te nemen . Zie voor uitleg van de verschillende secties ``man Xserver''.

Na deze stappen heb je hopelijk een werkend X systeem. Mocht het nu nog niet lukken, dan kan het zijn dat je kaart (nog) niet ondersteund wordt door XFree86. Je zou dan waarschijnlijk wel de ``XF86_SVGA'' server kunnen gebruiken, het is dan mogelijk dat bepaalde modes niet werken. Je zou kunnen uitzoeken of de videokaart wel met een van de commerciële servers werkt (zie Welke servers Zijn er).

3.4 Hoe kan ik meer dan de standaard 8 bits kleur in X krijgen?

Dit is wel de meest gestelde vraag. Het simpelste is het toevoegen van een DefaultColorDepth statement in de XF86Config file, als volgt: (DefaultColorDepth mag natuurlijk ook 8 16 24 of 32 zijn).


Section "Screen"
    Driver      "accel"
    Device      "Miro_22SD"
    Monitor     "Nec_multisync"
# Dus na de sectie Screen (ook instellingen voor o.a. DPMS)
    DefaultColorDepth 16
    BlankTime       0
    SuspendTime     0
    OffTime         0
# maar voor de sectie Display
    Subsection "Display"
        Depth       8
        Modes       "1280x1024" "1024x768" "800x600" "640x480"
        ViewPort    0 0
        
        Virtual     1280 1024
    EndSubsection
enz... enz...

Als dit toegevoegd is aan de XF86Config, werkt dit voor elke wijze waarop de Xserver is op te starten (bv. zowel XDM als xinit). Je kunt echter ook op de volgende manieren de kleurdiepte instellen (als je altijd met een standaard kleurdiepte werkt kun je het volgende stukje overslaan).

Als je ``startx'' gebruikt om X op te starten dan kun je een aantal argumenten aan dit scriptje toevoegen. De optie ``--'' (twee - tekens achter elkaar) wil zeggen dat alle argumenten na deze streepjes aan de Xserver doorgegeven moeten worden (voor de mogelijke opties aan de Xserver zie ``man Xserver'').


 
startx -- -bpp 8  
startx -- -bpp 16 
startx -- -bpp 24
startx -- -bpp 32 

Als je moe wordt van drie keer de ``-'' typen dan kun je ``-bpp kleurdiepte'' toevoegen aan de entry serverargs in ``/usr/X11/bin/startx'' (``startx'' is geen programma, het is een scriptje om X op te starten op het lokale display).

Bijvoorbeeld (``startx'' editen met favoriete editor):


 
serverargs="-bpp 16 -logo -v -a 1 -t 15 -s 5 -p 1"

Door de optie -logo heb je gelijk een leuke bewegende X logo screensaver in plaats van het standaard zwarte scherm.

Als de Xserver via XDM op je lokale PC wordt gestart, zorg dan dat ``-bpp kleurdiepte'' in de file ``Xservers'' staat.


 
:0 local /usr/X11R6/bin/X :0 -bpp 16 -logo -v -a 1 -t 15 -s 5 -p 1
#:1 local /usr/X11R6/bin/X -bpp 16
#

Maar ``-bpp 16'' werkt niet!

Dan ondersteunt je Xserver deze mode niet of je XF86Config is niet helemaal compleet.

Zorg dat voor alle kleurdieptes er een entry in je XF86Config staat. Hier een voorbeeld van een stukje uit mijn XF86Config. Neem deze niet over in je eigen XF86Config, maar kijk of de "Depth" statements er wel allemaal staan in de subsectie "Display" !


 
Section "Screen"
    Driver      "accel"
    Device      "Miro 22SD"
    Monitor     "NEC MultiSync 4FGe"
    DefaultColorDepth 16
    BlankTime       0
    SuspendTime     0
    OffTime         0
    Subsection "Display"
        Depth       8
        Modes       "1024x768" "800x600" "640x480"
        ViewPort    0 0
        Virtual     1280 1024
    EndSubsection
    Subsection "Display"
# De Depth statement moet er dus staan voor elke kleurdiepte!
        Depth       16
        Modes      "1024x768" "800x600" "640x480"
        ViewPort    0 0
        Virtual     1024 768
    EndSubsection
    Subsection "Display"
        Depth       32
        Modes      "800x600" "640x480"
        ViewPort    0 0
        Visual     "TrueColor"
        Virtual     800 600
    EndSubsection
EndSection

3.5 Mijn bus-muis loopt vast als ik van de console naar X schakel.

Dit gebeurt vaak met bus muizen (PS/2) in combinatie met gpm (de console mouse server) en X. Zowel gpm als X willen gebruik maken van de muis. Je kunt dit oplossen door een nieuwe versie van gpm te gebruiken en deze als repeater te configureren (dit werkt voor alle typen muizen die GPM ondersteund).

Configuratie details

Pas de manier waarop gpm opstart aan op de volgende manier:

Xserver aanpassen

Daarna de Xserver configureren voor gpm als mouse server.

[ /etc/X11/XF86Config ]


# **********************************************************************
# Pointer section
# **********************************************************************
#Section "Pointer"
     Protocol    "MouseSystems"
     Device      "/dev/gpmdata"

De gpm server gebruikt het device /dev/gpmdata als een FIFO buffer met MouseSystems als protocol.

Nu gpm herstarten en X opstarten met de nieuwe configuratie. Hopelijk bijten GPM en X elkaar nu niet meer.

3.6 Mijn scherm schuift steeds ! Ik zie maar een stukje van het scherm.

Virtual resolution (ook wel Virtual Desktop genoemd) is een feature van de Xserver waardoor je met een kleiner scherm met een schijnbaar grote desktop kan werken. Het geeft een venster welke schuivend over het schijnbaar grotere desktop schuift. Hoewel dit met laptops heel handig kan zijn, vinden sommige mensen deze feature op de desktop systeem "irritant".

Je kunt dit uitzetten door de Virtual resolution statement in de ``/etc/X11/XF86Config'' te verwijderen of deze niet groter te maken dan je maximale echte screen size. De statement staat in de sub-sectie ``Display'' in de sectie ``Screen''.

3.7 Hoe switch ik tussen de verschillende resoluties zonder eerst X af te sluiten ?

De volgorde van resolutie omschakeling hangt af van de volgorde in de ``XF86Config'' file. Het schijnt dat sommige monitors (welke niet multisync zijn) niet geschikt zijn voor deze resolutie omschakelingen en daardoor kunnen beschadigen ( lees de handleiding van je monitor dus goed door ! ).

Hoe schakel ik Ctrl Alt +/- uit ?

door: Bart Hanssens < antares@rtfs.net>

Je kan deze functie uitschakelen door in /etc/X11/XF86Config de hash (#) te verwijderen die voor de optie DontZoom staat (zoek in het "ServerFlags" gedeelte)

3.8 Kan ik van kleurdiepte wisselen als de Xserver draait ?

Nee niet met de XFree86 Xserver, het is wel mogelijk met sommige Xservers van bijvoorbeeld ``Accelerated X'' om een window in een andere kleurdiepte te draaien. Een niet bevredigende oplossing zou kunnen zijn om de Xserver nog een keer op te starten met een andere kleurdiepte als ander display. zie ook X meerdere keren starten.

3.9 Hoe switch ik terug naar X nadat ik naar een console geswitched ben?

Schakelen vanuit X naar een console gaat (in XFree86) als volgt: ctrl-alt-Fx (``Fx'' is functietoets). Om weer terug te komen in X moet je de alt-Fx toets gebruiken, die hoort bij het eerste vrije console (bij mij F7), en dan ben je weer terug in X.

3.10 Hoe sluit ik X af zonder mijn Window Manager menu?

ctrl-alt-backspace . Nu ``kill'' je dus de Xserver. Als er Xclients lopen (ook remote) zullen deze ook stoppen!

De X sessie wordt netjes afgesloten als de laatste client in de .Xsession file wordt gestopt. Meestal is dit de window manager. Als dus de window manager via het window manager menu wordt afgesloten, zal X ook stoppen (tenminste als de window manager de laatste entry in de .Xsession file is).

Hoe schakel ik Ctrl Alt BS uit ?

door: Bart Hanssens < antares@rtfs.net>

Je kan deze functie uitschakelen door in ``/etc/X11/XF86Config'' de hash (#) te verwijderen die voor de optie DontZap staat (zoek in het ``ServerFlags'' gedeelte)

3.11 Mijn console-fonts zijn onleesbaar na het killen van X of na hetswitchen naar de console.

(door Alrik van den Brom)

Bij het switchen van je X-screen naar je console (m.b.v. CTRL-ALT-F[1-6]) en bij het afsluiten van X (hetzij via CTRL-ALT-BS of gewoon via de WM), dus als je weer terug in text-mode komt, kan de volledige karakterset door de war zijn geschopt. Dit uit zich in een niet leesbaar scherm, vol ondefinieerbare tekens. Alle letters, cijfers en andere karakters (zelfs de spaties) zijn omgezet naar rare tekens. Het is zelfs zo dat alle consoles (tty1 t/m tty6) onleesbaar zijn geworden, en niet alleen die vanuit waar je X op hebt gestart. Dit kan weer hersteld worden door in te loggen op een andere console (dat moet dan blind, maar username + password kan je meestal toch blind typen) en dan ``setfont'' in te typen. Dan wordt de juiste karakterset weer geladen, voor alle consoles. Als je X afsluit ipv tijdelijk te switchen naar een console, is inloggen op een andere console uiteraard niet nodig. Een andere mogelijkheid is om `setfont` in het ``startx'' script te zetten. Waarom dit met sommige grafische kaarten gebeurt is mij niet bekend.

(kleine aanvulling door J-W)

Als je het SVGAtextmode programma gebruikt op de linux console kan het waarschijnlijk voldoende zijn om dit programma opnieuw aan te roepen. Uiteraard kun je dit ook in het ``startx'' script zetten. SVGAtexmode roept meestal ook gelijk setfont aan, met het juiste font voor de resolutie waar de console op staat.

3.12 Kan mijn Xserver meerdere keren opstarten als ander display?

Ja, dat is mogelijk. De namen van de lokale server zijn als volgt: :0 :1 :2 (enz...). Als je ``startx'' gebruikt om X te starten kun je deze een argument meegeven welke server het moet zijn:


"startx -- :0"   (dit is bij mij nu alt-F7).  
Switch nu naar een andere console: alt-Fxx .  
Nu kun je nog een keer een Xserver starten:
"startx -- :1"   (dit is bij mij nu alt-F8).
"startx -- :2"   (enz...).
enz...

Je kunt nu op dezelfde manier tussen de displays switchen als tussen de consoles.

Als je X op je lokale display opstart met `xdm` dan zou je normaal gesproken de displays aan de Xservers file moeten toevoegen. Als volgt:


# /etc/X11/xdm/Xservers
:0 local /usr/X11R6/bin/X vt7 :0 
:1 local /usr/X11R6/bin/X vt8 :1

Als je systeem XDM opstart, dan worden nu dus twee Xservers gestart namelijk "jouwmachine:0 en jouwmachine:1".

3.13 Hoe kan ik remote applications draaien ?

Normaal gesproken kan dat met het programma ``xon'' gedaan worden, maar ``xon'' maakt gebruik van ``rsh'' en dit is een erg onveilige manier over een ``untrusted'' netwerk zoals het internet. Het ``xon'' programma geeft de variabelen (DISPLAY, XAUTHORITY en XUSERFILESEARCHPATH) door aan het programma welke remote draait. Het ``xon'' programma is vooral handig als je maar enkele applicaties remote wil draaien.

DISPLAY environment variable

Je kunt ook telnetten naar de remote computer en dan de "DISPLAY" environment variable setten. Als de remote computer gebruik maakt van PAM (Pluggable Authentication Modules), kun je de DISPLAY environment variable door de modules ``pam_env.so'' te gebruiken. Dit doe je als volgt:

In ``/etc/pam.d/login'' moet de volgende regel staan


session    required     /lib/security/pam_env.so

Vervolgens zet je in de ``/etc/security/pam_env.conf'' file dit neer:


# Set the REMOTEHOST variable for any hosts that are remote, default
# to "localhost" rather than not being set at all
REMOTEHOST      DEFAULT=localhost OVERRIDE=@{PAM_RHOST}
#
# Set the DISPLAY variable if it seems reasonable
DISPLAY                DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}

Nu zal bij een binnenkomende telnet connectie de juiste DISPLAY environment geset worden, zodat men ook remote X applicaties kan draaien.

Waarschijnlijk zal de Xserver een "permission denied" zeggen als de Xclient het remote display wil openen. Het voert te ver om de security van X uit te leggen; zie daarvoor de manual page van Xsecurity (1).

Een van de makkelijkere manieren om veilig te werken met X is XDM te gebruiken om `xauth` aan te sturen. Het gebruik van "xhost +hostname" is erg onveilig op een niet te vertrouwen netwerk.

Secure Shell

Een beter alternatief is het programma `ssh` ("Secure Shell"). Dit programma geeft ook de juiste variabelen door aan de applicatie en kan ook X11 connecties "tunnelen" bijvoorbeeld door op te starten met `ssh-agent startx`. Meer informatie over "Secure Shell" kun je vinden op de site van de SSH organisatie.

Meer informatie over het remote draaien van X applicaties is te vinden op de site van Vincent Zweije: How to Run Remote X Applications

Low bandwidth X

Als je X sessies over de modem (of een ander medium met lage bandbreedte) wil starten, kan het handig zijn om "LBX" (Low Bandwidth X) te gebruiken. LBX doet onder andere aan compressie van het Xprotocol waardoor de verbinding een flink stuk zuiniger met de beschikbare bandbreedte omgaat.

(aanvulling door: Bart Hanssens < antares@rtfs.net>)

Meer informatie vind je in de LBX Mini-HOWTO. Een alternatief is het programma dxpc. Het verschil is dat LBX al standaard in de X server zit, terwijl dxpc een apart stukje software is. Dxpc is iets moeilijker te configureren, maar haalt betere resultaten dan LBX. Zie: http://ccwf.cc.utexas.edu/~zvonler/dxpc/.

3.14 X geeft alleen een grijs scherm.

Waarschijnlijk heb je het X Window System met ``X'' opgestart. Een X sessie start je met het script ``startx'' of via ``xdm''. Als je een grijs scherm met een ``X cursor'' op het scherm krijgt, dan ben je in ieder geval zeker dat je Xserver werkt ;^).

Dit is tevens een bewijs van de stelling dat X zelf geen GUI is.

4. De X Display Manager

4.1 Wanneer (of waarom) moet ik XDM gebruiken?

XDM is een display manager dus als je meerdere displays op een server hebt (bijvoorbeeld een aantal Xterminals) zul je XDM moeten gebruiken.

4.2 Waar staan de Config files van XDM en wat doen ze?

De configuratie files voor XDM (X Display Manager) moeten volgens de Linux File System Standaard in ``/etc/X11/xdm'' staan. In die directory staan een aantal files:

4.3 Hoe zorg ik ervoor dat ik standaard in X (met XDM) opstart ?

Een UNIX-systeem zoals Linux werkt met run-levels. Run-levels zorgen ervoor dat alleen bepaalde groepen van programma's opstarten (bijvoorbeeld wel of geen netwerk functionaliteit). De standaard run-levels (van een RedHat distributie) zijn:

De meeste Linux distributies starten meestal in runlevel 3.

Om standaard op te starten met X11 (met behulp van XDM) moet je de configuratie file ``/etc/X11/xdm/Xservers'' aanpassen/controleren of daar de juiste gegevens in staan.


:0 local /usr/X11R6/bin/X

Test altijd eerst of de Xserver goed opstart met ``startx'' anders zal xdm de Xserver steeds respawnen als deze weer afsluit (en dat is niet zo fijn).

Nu kun je (als root user) van runlevel veranderen ``init 5''. Als je zeker weet dat runlevel goed werkt dan kun je standaard in runlevel 5 opstarten door je ``/etc/inittab'' aan te passen (van 3 naar 5 bijvoorbeeld).


id:5:initdefault:

# Run xdm in runlevel 5
x:5:respawn:/usr/bin/X11/xdm -nodaemon

Let vooral op de regel waar ``x:5:respawn:'' staat het nummer achter x geeft aan in welk runlevel dit gestart moet worden.

SuSE

Voor SuSE geldt hetzelfde als RedHat, alleen is runlevel 3 het level waarin XDM opstart en 5 het level zonder XDM.

Debian

(door J.A. Bezemer < J.A.Bezemer@ITS.TUDelft.NL>)

versies tot en met 2.0

Om Debian met XDM te laten opstarten, hoef je bovenstaande handelingen NIET uit te voeren. Daar wordt xdm gestart in runlevel 2,3,4 en 5, maar alleen als er een regeltje ``start-xdm'' in ``/etc/X11/config'' staat (en er wordt gevraagd of je dat wilt bij de installatie van de X-pakketjes).

versie 2.1

Met de grote X reorganisatie in Debian 2.1 is xdm in een eigen pakketje gezet. Dus nu simpel: pakketje xdm installeren om xdm te activeren. Pakketje xdm weghalen dan geen xdm meer. ``/etc/X11/config'' bestaat niet meer.

4.4 Wat is een X terminal?

Een X terminal is een stuk computer hardware speciaal gemaakt om er een X server op te draaien. Meestal hebben deze X terminals geen hard disk en ventilator waardoor ze heel stil zijn. Omdat de meeste X terminals geen hard disk hebben moeten ze via het netwerk opstarten (met behulp van bijvoorbeeld een Linux server).

Verschillende fabrikanten maken X terminals, een lijst van verschillende X terminals wordt regelmatig gepost op comp.terminals.

4.5 Kan ik ook andere hardware/software gebruiken om daar een X terminal van te maken?

Xdenu of Monkey LinuX distributie (voor intel platforms).

Ja, bijvoorbeeld een standaard PC met een vga kaart kun je heel gemakkelijk omtoveren tot een alternatieve X terminal. Er is een Linux distributie welke speciaal daarvoor gemaakt is, namelijk de "Xdenu" distributie. Deze distributie maakt gebruik van UMSDOS filesysteem en is dus zonder "gedoe met fdisk" veilig te installeren op elke PC. De "Xdenu" distributie is ongeveer 6.5 MB groot je kunt deze distributie vanaf je favoriete sunsite mirror downloaden of de primaire site van Xdenu.

Nog een distributie is Monkey, deze is heel eenvoudig op een PC te installeren waar bijvoorbeeld al Win(95)dows/DOS op staat. De distributie bestaat uit vijf 1.44 MB floppies. Deze distributie is niet speciaal gemaakt om een X terminal van een PC te maken. De distributie is echter compleet genoeg om het X Window System te draaien. Meer informatie over Monkey is te vinden op de homebase van Monkey Linux.

Oude Sun3 werkstations

Een computer waar vrij eenvoudig een X terminal van te maken is, zijn de Sun3 series (van Sun Microsystems). Je kunt deze machines via het netwerk laten booten vanaf een Linux server. Een kant en klare distributie voor dit doel is de "Xkernel" distributie, deze is te vinden op je favoriete Sunsite mirror of op de Xkernel homebase. Voordeel van het gebruik van een oude Sun3 is dat deze een groot 19" scherm heeft waardoor het prettig werken is met X. Deze oude machines zijn meestal voor een "prikkie" te koop (ongeveer 25,- tot 150,- afhankelijk van het type). Een nadeel van de Sun3 series is dat je nogal "lange armen" krijgt van het tillen van de monitor+kast. ;-)

Een al bestaande Linux installatie als X terminal gebruiken.

Met een bestaande Linux installatie is het een ``eitje'' om hiervan een X terminal te maken. Hiervoor moet je de Xserver opstarten met een van deze opties:

De `hostname` is de computer welke de X terminal onder controle heeft (met XDM).

OS/2 gebruiken als X terminal met XFree86.

Er bestaat ook een port van XFree86 voor OS/2, zie de vraag Hoe zit het met X en OS/2 ?. De Xserver kan met dezelfde commandline optie's opgestart worden als een Linux installatie van XFree86.

Windows 95/NT of Win3.x gebruiken als X terminal.

Hier zijn verschillende commerciële producten voor te krijgen. Let er op dat de software wel ondersteuning heeft voor XDMCP. De Xservers waarvan J-W Smaal weet dat ze ondersteuning hebben voor XDMCP zijn deze: Exceed van Hummingbird en Xwin32.

(tip van Ivo Clarysse)

Op http://tnt.microimages.com/freestuf/mix/ vind je een gratis X server voor MS-Windows 95, NT 3.51, NT 4.0 en MacOS (zowel 68K als PowerPC). Volgens J-W Smaal heeft deze echter geen ondersteuning voor XDMCP.

4.6 Ik krijg het XDM login screen weer te zien terwijl ik toch goed inlog.

Dit probleem treedt meestal op bij het gebruik van een Xserver onder MS Windows of via een ander UNIX werkstation. Om uit te zoeken waar het probleem ligt kan men na het invoeren van het password ``F1'' indrukken ipv ``Enter'', nu wordt een xterm opgestart (dit noemt men ook wel de failsafe mode). Als dit laatste lukt, dan kan men proberen een window manager op te starten.

Vaak zit het probleem in fout geconfigureerde ``.Xclient'' scripts. Het is niet nodig om een -display 0:0 argument aan X applicaties mee te geven. Als er regels met een -display argument instaan, dan kun je dit argument weglaten.

Als failsafe inloggen niet lukt dan ligt het probleem waarschijnlijk bij de configuratie van de linux PAM (Pluggable Authentication Modules).

4.7 Als ik ctr-alt-backspace doe dan sluit X niet af met XDM. Waarom?

Omdat dat namelijk niet de bedoeling is, het zou te vergelijken zijn als je met ``ctrl-c'' je login getty zou kunnen killen. XDM loopt als een daemon (meestal runlevel 4 of 5) dus zal de server herstarten na een kill. Als je a la ``startx'' met ``xdm'' wil werken, zorg dan dat XDM draait (zonder entry in de Xservers file), en start X op deze manier:

X -indirect mijnhost.domein.nl

5. De Window Manager

5.1 Wat is een Window Manager?

Je kunt de functie van een window manager vergelijken met die van een shell. De shell bepaalt de manier en de commando's hoe er met het systeem gewerkt kan worden. X is een grafisch windowing systeem, dus de shell (de window manager) is ook grafisch. De meeste window managers tekenen een window om de applicatie heen en hebben een mogelijkheid om het window te vergroten, verkleinen, enzovoort. Bijna alle window managers hebben een menu mogelijkheid waardoor je met een muisklik een applicatie op kan starten. De window manager bepaalt dus wat het gezicht is van X. Met linux ben je niet gebonden aan een soort window manager en kun je naar behoefte kiezen uit tal van managers (zie: Welke Window Managers zijn er ?). Nu zal de vraag wel komen "Hoe ziet X er dan uit met een window manager?". Op die vraag is maar een antwoord: Geen idee, het kan van alles zijn bijvoorbeeld van Win95 tot NeXtStEp.

5.2 Heb ik een Window Manager nodig?

Nee, misschien klinkt dit een beetje vreemd na de vorige vraag. Het is niet nodig om een window manager te hebben draaien om met X te kunnen werken. Zoals in hoofdstuk 1 verteld is, is X opgebouwd uit onderdelen. De window-manager is een Xclient maar wel een hele speciale. Als de window manager dus een Xclient is, dan betekent dit dat je elk programma als "window manager" kunt gebruiken. Het is dus mogelijk om bijvoorbeeld "Netscape" meteen te laten opstarten in X: dit kan handig zijn op beurzen en opleidingen (fool en student proof ;-).

Dit kun je als volgt doen in de ``.Xclients'' file in je homedir. Verander de fvwm (of welke WM je gebruikt) nu eens in emacs... start X op et voilá je bent nu gelijk in emacs! Als je emacs afsluit kom je terug op de console of XDM login screen (dan is dus de sessie over).

N.B.: Voor de echte ``emacs religieuze'' is dit natuurlijk de standaard manier om met X te werken :)

Praktisch gezien is een window manager eigenlijk onmisbaar voor het werken met X.

5.3 Welke window managers zijn er?

Een heleboel... iemand heeft informatie verzameld over alle mogelijke window managers voor linux op deze LinuX Window Managers site.

Een kleine greep uit het assortiment:

Welke de mooiste is ?... Bepaal het zelf op DE LinuX collectie van Window Managers

5.4 Hoe verander ik mijn default windowmanager, of startup programma's?

In je home directory staat (bij de meeste distributies) een ``.Xclients'' file. Dit is een shell script waarin de programma's staan welke X moet opstarten.

Voor zowel de methode ``startx'' als ``xdm'' wordt hetzelfde script gerund. Je kunt de andere files (``.xsession'' en ``.xinitrc'') symlinken naar ``.Xclients''.

Wil je voor alle gebruikers dit veranderen, pas dan de files in ``/etc/X11/xinit/'' aan. (met de file ``.Xclients'' kan een gebruiker zelf zijn Xclients kiezen.

Wil je alleen een ander default window manager? Zet dan een andere window manager in deze file. Dus in plaats van "fvwm95" bijvoorbeeld "afterstep".

Let erop dat programma's welke in de .Xclients (of de andere files) gerund worden, of gelijk exitten of opgestart zijn in de background. Enige uitzondering hierop is de Window manager of de applicatie waarin men standaard wil opstarten. Als de laatste client uit de ``.Xclients'' file "klaar is" stopt de Xserver, of dan is de X sessie over.

Voorbeeld van een `` /.Xclients'' file:


#!/bin/bash

# Hiermee start ik XV welke een achtergrondplaatje op het root window
# plaatst.
/usr/bin/X11/xv +root -rmode 0 \
        /home/U/jw-smaal/pics/exlinux2.jpg -quit &

# Eerst test ik of icewem in het pad staat en dan start ik deze op (let op
# zonder &, anders sluit X meteen weer af).
if [ ! -z $(type -path icewm) ]; then
       exec icewm
fi

# last resort
xterm &
exec twm

5.5 Welke window manager is het snelste?

De snelste window manager, dus welke het minst van resources gebruik maakt, is waarschijnlijk fvwm (laatste versie 1.24r) . Inmiddels verouderd (maar nog steeds zeer bruikbaar) en vervangen door fvwm2, fvwm'95, en de NeXtStEp look-alikes.

De oude versie van fvwm (1.24) heeft overigens wel de vervelende eigenschap om niet meer te kunnen switchen tussen windows als de ``NumLock'' toets aan staat.

Meer informatie over X performance in het algemeen kun je vinden in de Getting more performance out of X FAQ.

6. keyboard configuratie, Xdefaults en Xclients.

6.1 Toetsenbindingen in X of Win95 toetsen in X :-)

(door A. van Dijk)

In X is de toetsenbordindeling naar eigen believen in te stellen. Hier volgt een beschrijving welke mechanismen gebruikt kunnen worden, met name gericht op het invoeren van letters met accenten en speciale tekens.

Aan elke toets kunnen vier zogenaamde keysyms worden toegekend. Een keysym is dus de logische betekenis van een fysieke toets. Daarnaast kan een toets een van de vijf zogenaamde modifiers produceren. Een toets fungeert bijvoorbeeld als [alt] toets, als de toets de [alt] keysym en ook een modifier produceert.

De vier keysyms die je kunt toekennen aan een toets, zijn verdeeld over twee groepen. De eerste keysym wordt geproduceerd door gewoon op de betreffende toets te drukken, de tweede door [shift] erbij in te houden. De tweede groep werkt hetzelfde, alleen moet daarbij de [Mode Switch] toets worden ingehouden. De toets [Mode Switch] is standaard niet gedefinieerd. Dit moet je dus nog doen. Als je een Win95 toetsenbord hebt kun je mooi één van de win95 toetsen als [Mode Switch] aanmerken. Deze toets moet dan [Mode Switch] keysym produceren en een modifier. Daarna kun je de gewone letter toetsen een derde en vierde keysym toekennen (tweede groep). Bv: de toets ``e'' produceert e E é É.

Naast deze methode kun je ook letters met accenten invoeren door gebruik te maken van het ``Compose'' mechanisme. Hiervoor moet je aan een toets de ``MultiKey'' keysym toekennen. Een Win95 toets komt weer mooi van pas hier. Dit mechanisme werkt als volgt: Je drukt eerst op de [Compose] key, vervolgens op een accent (bv. de [ ` ] [ ' ] en [ " ]), en vervolgens op de letter waarop je het accent wilt hebben. Als er voor die letter geen ``accent-versie'' bestaat gebeurt er niets. Dit mechanisme werkt niet in alle programma's het schijnt een verouderd mechanisme te zijn.

Daarnaast kun je ook nog gebruik maken van zogenaamde ``dead keys''. Bij deze methode ken je aan de accenttekens (bv. de [ ` ] [ ' ] en [ " ]) de keysym toe met dead als voorvoegsel. Bv: [ ` ] = dead_grave [ ' ] = dead_acute [ " ] = dead_diaeresis. Druk je nu op het accentteken en vervolgens op een letter dan levert dit de letter op met het betreffende accent. Om het accent zelf te verkrijgen tik je na het accent een spatie. Ook dit mechanisme werkt niet in alle X programma's .

Voor het instellen van je toetsen gebruik je het programma xmodmap. Ik verwijs naar de man page van xmodmap voor het gebruik hiervan. Om je toetsenbord visueel ``op te maken'' verwijs ik naar het programma ( xkeycaps). Alle standaard keysyms staan in /usr/X11/include/X11/keysymdef.h

De ``.xmodmap'' file welke de auteur gebruikt kun je hier .xmodmap-unseen downloaden.

6.2 Quickstart toetsenbindingen

(door Jaco de Groot)

Dit stukje is voor gebruikers die geen zin hebben om zich te verdiepen in de werking van toetsenbindingen in X, maar wel graag alle ISO-8859-1 characters ter beschikking hebben. Hiervoor worden, na een aantal inleidende opmerkingen, twee stappen gegeven die moeten worden uitgevoerd.

Opmerkingen:

Stap 1 (Een configuratie bestand maken)

Download dit configuratie bestand naar je home directory en geef het bestand de naam ``.xmodmap-<naam van je pc>''. Als je niet weet wat de naam van je pc is gebruik dan het commando: ``uname -n''.

Stap 2 (Het bestand ``.Xclients'' aanpassen)

Open het bestand ``.Xclients'' in je homedirectory met een editor en voeg de volgende regel toe (bijvoorbeeld na #!/bin/bash):

xmodmap ~/.xmodmap-`uname -n`

Let op dit zijn backquotes en geen quotes.

6.3 Netscape snapt mijn backspace toets niet.

Zorg dat je de ``XKeysymDB'' file welke bij Netscape geleverd is op de juiste locatie in ``/usr/X11R6/lib/X11'' zet. Zie verder de keyboard HOWTO en de site van Anne Baretta.

6.4 Xdefaults.

Voor commandline programma's zoals ``grep'' is het wel te doen om op de commandline de optie's aan het programma mee te geven. X applicaties (Xclients) kunnen werkelijk honderden variabelen hebben. Meestal zijn deze defaults vrij aardig gekozen door de programmeur, alleen X zou niet X zijn, als dit niet aan te passen is. Als een programma goed geschreven is, dan maakt deze gebruik van het Xresource mechanisme. Bij een bepaalde X applicatie zit dan ook meestal een bijbehorende Xdefaults file. Meestal staan deze files in de directory: ``/usr/X11/lib/X11/app-defaults''.

Ik geef een voorbeeld van een simpele  /.Xdefaults file (in je home-dir).


.rxvt.background: black
.rxvt.foreground: white
.xterm.background: black
.xterm.foreground: white
.xterm-color.background: black
.xterm-color.foreground: white
.netscape.Navigator.geometry: 1000x700
.netscape.News.geometry: 1000x700
.netscape.Mail.geometry: 1000x700
.netscape.Navigator.form.topArea.topLeftArea.toolBar.home.labelString: Thuis
.netscape-communicator.Navigator.geometry: 1000x700
.netscape-communicator.MailFolder.geometry: 1000x700
.netscape-communicator.MailThread.geometry: 1000x700
.netscape-communicator.Navigator.form.mainForm.toolBox.toolBarFrame.toolBarForm.toolBar.home.labelString: Thuis

Het 1e deel geeft aan om welke Xclient het gaat, het 2e deel is weer een sub-deel van de Xclient, na dit subdeel kan weer een subdeel komen [1]. Als laatste deel voor de dubbele-punt komt het programma onderdeel wat je aan kunt passen. Zo heb ik geconfigureerd dat netscape altijd met 1000x700 als resolutie opstart en dat mijn xterm ``black'' als achtergrondkleur heeft.

Je kunt heel ver gaan met resources, zoals te zien is bij de laatste regel. Deze regel zorgt ervoor dat in Netscape Navigator de ``home'' knop nu ``Thuis'' als label heeft voor de taalpuristen onder ons ;-).

6.5 Is er een simpele manier om Xresources in te stellen?

Gelukkig wel, je kunt hiervoor het programma ``editres'' gebruiken. Kies uit het menu: Commands-->Get tree, klik met de muis op de draaiende applicatie welke je wilt aanpassen. Als het goed is, staat er nu een ``resource-tree'' op je scherm (klik bv op netscape als die draait). De volledige tree past meestal niet op het scherm. Je kunt door de tree rollen door op de balk te klikken met de muis. Je kunt nu bijvoorbeeld de kleur van Mozilla's (Netscape) bookmarks aanpassen: Selecteer de widget ``bookmark'' uit de tree, kies Commands-->Show resource box, verander ``background'' in ``red'', klik op Apply... et voilá de kleur van de bookmark button is nu rood.

Het Xresource mechanisme werkt niet bij alle X applicaties. Dit komt omdat de programmeur zelf kan bepalen of hij/zij wel of niet gebruik maakt van het mechanisme (misschien komt het ook omdat sommige X toolkits er geen voorzieningen voor hebben gemaakt).

7. X Window System programmeren.

Dit hoofdstuk is nog behoorlijk "vers". Programmeer je Xclients en heb je handige tips voor in de X-VVV stuur ze dan op naar: J-W Smaal

7.1 Wat zijn Motif, Xforms, GTK+, Qt... ?

(door Bart Hanssens < antares@rtfs.net>)

Het zijn allemaal GUI-library's, die de "look" van een X-programma bepalen.

Motif heeft zijn beste tijd gehad, de strijd tussen GTK+ en Qt is in alle hevigheid losgebarsten. Welke van beide nu "de beste" is, is eigenlijk een kwestie van smaak.

8. Diversen

8.1 Plaatje in de root window?

Een plaatje op de achtergrond van X geeft een wat leuker gezicht dan die saaie grijze achtergrond. De Xserver gebruikt meer memory door het plaatje, kies daarom het plaatje niet te groot (een jpeg van 2 MB is erg groot :).

Het programma ``xview'' kan allerlei formaten inlezen en converteren, dit programma kan ook gebruikt worden om een plaatje in de root window te zetten. Je kunt bijvoorbeeld op de volgende manier een plaatje in de background krijgen (zet dit in de ``.Xsession file'' voor de window manager):

exec /usr/bin/X11/xv +root -rmode 0 /home/ftp/pics/linux-ball.gif -quit
rmode (nummer) geeft aan of het plaatje "getiled", "gespiegeld" enz... moet worden in de root.

Dit kan ook met het programma ``xloadimage'', dit programma is meer geoptimaliseerd om snel het plaatje te laden bv.:

xloadimage -inroot -quiet /home/U/jw/bg.jpg
Een achtergrondkleur instellen kan met het programma `xsetroot`:
xsetroot -solid SteelBlue

8.2 Wat is KDE eigenlijk ?

KDE is de "K Desktop Environment". Dit bestaat uit een windowmanager (kwm), een filemanager (kfm) en andere programma's. Applicaties welke gebruik maken van de KDE library's kunnen "transparant" (je merkt geen verschil) files benaderen over het netwerk. Het maakt voor de applicatie dus niet uit of de file via FTP, HTTP of iets anders benaderd wordt. De library's van KDE maken het mogelijk om alle applicaties dezelfde "look en feel" te geven.

KDE is ontworpen voor de linux newbie maar ook de gevorderde gebruiker kan het nut van een consistente desktop inzien. De configuratie van de window manager en desktop gaat via een GUI. Van KDE gebruik maken, betekent niet dat (IMHO) je geen kennis van de basis UNIX-commando's nodig hebt. Sommige dingen kunnen alleen met de UNIX-prompt (daarom is er ook kvt).

Voor meer informatie over KDE zie de website van de KDE organisatie of een Nederlandse mirror.

8.3 Wat is GNOME eigenlijk ?

(door Bart Hanssens < antares@rtfs.net>)

GNOME is de rechtstreekse concurrent van KDE, met het verschil dat GNOME werkt rond de GTK+-toolkit (waaraan o.a. GIMP zijn uiterlijk ontleent) en KDE de Qt-library gebruikt. ( http://www.gnome.org).

8.4 Hoe zit het met X en OS/2?

(door Maurice Janssen)

Er bestaat ook een port van XFree86 voor OS/2. Naast het gebruik als X-terminal kun je ook X-applicaties onder OS/2 draaien. Net geschreven UNIX-software is eenvoudig te porten, en er zijn dan ook al flink wat programma's en window-managers geport. Het X-scherm draait apart van het OS/2 scherm, vergelijkbaar met een full-screen Winos2-sessie. Heen en terug schakelen tussen X en OS/2 is geen probleem. De resolutie en het aantal kleuren is onafhankelijk van de resolutie van het OS/2 scherm. Voor ieder type grafische kaart is er een aparte X-server nodig, de meest gebruikte kaarten worden allemaal ondersteund.

Holger Veit heeft deze port gemaakt en meer informatie is te vinden op zijn pagina, http://www-set.gmd.de/~veit/os2/ Laatste versie is 3.3.3 (7/6/1998) en te downloaden vanaf bovenstaande site. Ook is hier een overzicht te vinden van geporte software. Uiteraard met source-code.

Daarnaast bestaat er nog commerciële software, bijvoorbeeld PMX van IBM of Exceed van Hummingbird.

8.5 Netscape crasht steeds.

Zie hiervoor de Linux en Netscape help site. Aangezien Netscape zijn sources heeft vrijgegeven (TOF !) zullen binnenkort de kleine problemen met Netscape en Linux de wereld wel uit zijn. Zie ook Mozilla.

8.6 Virtual "Network-Computer" applicatie

Er is één applicatie welke zeker geplugt mag worden in de X-VVV en dat is VNC van "The Olivetti & Oracle Research Lab" http://www.orl.co.uk/vnc/. Met deze gratis software is het onder andere mogelijk om een Windows desktop te bedienen vanaf een UNIX werkstation (zoals Linux) onder X.

8.7 posten in nl.comp.os.linux.installatie over X problemen.

Het is mogelijk dat ondanks alle HOWTO's documentatie FAQ/VVV je er toch niet uitkomt om bijvoorbeeld de Xserver te configureren. Geen probleem, dan kun je hulp vragen in nl.comp.os.linux.installatie.

Xserver problemen.

Geef in je posting aan wat voor soort videokaart en monitor je hebt. Geef aan wat je geprobeerd hebt en met welke tools. Ook van belang is om te weten wat de versie van je Xserver is. Hier kun je als volgt achter komen:


 
[smaal@HeliuM ~]$ X -version

XFree86 Version 3.3.2 / X Window System
(protocol Version 11, revision 0, vendor release 6300)
Release Date: March 2 1998
        If the server is older than 6-12 months, or if your card is newer
        than the above date, look for a newer version before reporting
        problems.  (see http://www.XFree86.Org/FAQ)
Operating System: Linux 2.0.33 i686 [ELF]
Configured drivers:
  S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
      newmmio, mmio_928, s3_generic

Deze informatie kun je eventueel knippen en plakken op de Linux console door met de linker muis te selecteren en op een andere console te plakken met de rechter muisknop (zo kun je de output in een usenet posting plakken).

 
[smaal@HeliuM ~]$ startx 2>&1|tee debug.txt

[ Hier staat een hele hoop informatie, wees niet bang om dit te posten. Het
  is allemaal relevant. ]

De output van het commando staat in de file ``debug.txt''.

Andere problemen.

Geef zoveel mogelijk relevante informatie mee in je posting, geef foutmelding exact weer zoals ze verschijnen. Geef aan wat je allemaal geprobeerd hebt.

8.8 Relevante HOWTO's

Howto's staan vrijwel altijd op je Linux CD. Verder zijn ze online te vinden bij het LDP project http://ldp.nllgg.nl.


3-Button-Mouse mini-HOWTO       (drieknopsmuizen configureren)
Custom-X-Tips                   (allerlei tips)
GUI-Development mini-HOWTO      (overzicht GUI-library's)
LBX mini-HOWTO                  (Low Bandwidth X)
Remote-X-Apps mini-HOWTO        (X apps remote runnen)
X-Big-Cursor mini-HOWTO         (grote muiscursors in X)
X-Notebook mini-HOWTO           (X draaien op een notebook)
XFree86 HOWTO                   (hoe krijg ik XFree86 aan de praat)
XFree86-Video-Timings HOWTO     (voor doe-het-zelvers met exotische monitors)
XFree-to-Xinside mini-HOWTO     (omzetten van XFree86 modeline -> AccelX)
XTerminal HOWTO                 (met X terminal connecten naar een Linux-box)

8.9 Lijst van Xserver utils

Dit is een lijstje van verschillende X programma's om de Xserver te manipuleren en om informatie te krijgen over de Xserver. Meer informatie over deze programma's staat in de manual pages.

Resource


xrdb       - X server resource database utility
xcmsdb     - Device Color Characterization utility for X Color Management System
xset       - user preference utility for X
xsetroot   - root window parameter setting utility for X
xstdcmap   - X standard colormap utility
xmodmap    - utility for modifying keymaps and pointer button mappings in X

Fonts


xlsfonts   - server font list displayer for X
xwininfo   - window information utility for X
xlsclients - list client applications running on a display
xdpyinfo   - display information utility for X
xlsatoms   - list interned atoms defined on server
xprop      - property displayer for X

Keyboard


xkbcomp    - compile XKB keyboard description
xkbprint   - print an XKB keyboard description 
xkbevd     - XKB event daemon

(Einde van de X-VVV/FAQ, suggesties, verbeteringen en aanvullingen op de VVV/FAQ zijn van harte welkom, graag sturen naar X-VVV@Smaal.Demon.NL.)