Linux X Window System VVV
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
De laatste versie van dit document is te vinden op:
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 CorporationDit is een lijst van veel voorkomende vragen (VVV's) met antwoorden in
over
het X Window System (kortweg X).
Met dank aan....J.A. Bezemer
<>,
Alrik van den Brom
<>,
A. van Dijk
<>,
Jaco de Groot
<>,
Bart Hanssens
<>,
Maurice Janssen
<>,
Hugo van der Kooij
<>,
Eric Looijengoed
<>,
Tom Peters
<>,
Eric Veltman
<> en
Andre de Vet
<.Verder alle mensen welke mij verder tips en suggesties hebben opgestuurd,
en de Nederlandse Linux gebruikers welke meestal te vinden zijn in
:-). Algemene vragen
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: X Display Server X Clients (waaronder de Window Manager) Xlib routines Het X protocolDe 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 libraries zijn voor de
overeenkomstige eigenschappen (zie boven) welke een grafisch workstation
heeft. Deze libraries zijn op bijna elke UNIX (met X) aanwezig.Het X Window Systeem is ontworpen door het .
Zij zijn destijds uitgegaan van een aantal standaardonderdelen van een
workstation: 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 libraries 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 libraries (Xlib). X dwingt dus geen GUI op aan de gebruiker
of programmeur. De window manager + applicaties bepalen het gezicht van X
(zie ).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 , en ``man X''. De Xserver
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 ,
of op een van de .Momenteel (21/01/99) is de laatse 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 , 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 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
. De X Display Manager
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. De Window Manager
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: ).
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. keyboard configuratie, Xdefaults en Xclients.
Toetsenbindingen in X of Win95 toetsen in X :-)(door )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 (). Alle
standaard keysyms staan in /usr/X11/include/X11/keysymdef.hDe ``.xmodmap'' file welke de auteur gebruikt kun je hier
downloaden. 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:
Wat zijn Motif, Xforms, GTK+, Qt... ?(door Bart Hanssens <>)Het zijn allemaal GUI-libraries, die de "look" van een X-programma bepalen. Motif is de oudste en wellicht de bekendste. Veel commerci¨le
X-software is dan ook geschreven met Motif. Naast de verouderde look is
dit meteen het grootste nadeel: betalen is de boodschap. Er is een free
alternatief, Lesstif genaamd, dat Motif zo goed mogelijk tracht te
benaderen. () Xforms is een tamelijk compacte library met een beperkt aantal fans.
Geen source. Wel een paar leuke vondsten (lightbutton bijvoorbeeld), maar
niet echt mooi. GTK+ is de library waardoor o.a. The GIMP zo mooi oogt. Mooi, klein
en goede documentatie plus het is nog gratis ook (GPL).
(). Qt is de tegenhanger van GTK+. Niet helemaal free, maar (voorlopig)
iets vollediger... en groter ()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. Diversen
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