Dit artikel is beschikbaar in: English Castellano Deutsch Francais Nederlands Russian Turkce |
door Joel Mccarty Inhoud: |
Kort:
Waarvoor dienen die punt-wat-dan-ook bestanden eigenlijk?
Een artikel over het eenvoudig configureren van het X-window systeem.
Om te beginnen gaat dit artikel er van uit dat het X window systeem reeds is geïnstalleerd en wordt gestart met het startx commando (het instellen van X voor meerdere gebruikers tegelijk via XDM is hopelijk het onderwerp van een volgend artikel). Laten we nu eerst eens kijken naar de belangrijkste bestanden hiervoor en ze kort behandelen...
xinitrc
xinitrc is een shell script wat via het startx commando door wordt gegeven aan
xinit. Dit script stelt meestal algemene grootheden in (screen saver instellingen,
toetsenbord definities enz.). Dit bestand is de lijm tussen de diverse X opstart processen.
Xclients
Dit is een verborgen bestand (punt-naam) in de directory van de gebruiker die client-
processen start die alleen voor die gebruiker van belang zijn. Dit in tegenstelling tot de meer
algemene, die door xinitrc worden opgestart.
Xresources
Dit bestand bevat instellingen en grootheden van widgets, die de standaard
instellingen vervangen. Deze bevat meestal grootheden als grootte van lettertypes,
kleurinstellingen en meer algemene representatieve grootheden. Deze kan echter ook worden
gebruikt voor het bereiken van behoorlijk spectaculaire grafische effecten.
Laten we eens naar de instellingen gaan kijken nu we de primaire bestanden hebben behandeld...
exec()
gebruikt voor het starten van de gegeven window manager.
Een eenvoudig xinitrc bestand zou er als volgt uit kunnen zien...
# /etc/X11/xinit/xinitrc #!/bin/sh exec /usr/X11R6/bin/fvwm2Dit bestand doet niets anders dan alleen het programma F(eeble) Virtual Window Manager 2 uitvoeren. Niet erg bruikbaar maar leuk als je even snel een nieuwe window manager in wilt stellen. Het wordt interessanter als we wat instellingen toevoegen en nog wat extra clients afstarten, iedere keer dat we X opstarten...
#/etc/X11/xinit/xinitrc #!/bin/sh # gedaan met dat vervelende backspace-probleem! xmodmap -e "keycode 22=BackSpace" # stel de achtergrond in xsetroot -solid LightSlateGrey # screen saver na vijf minuten xset s 300 # X clients die altijd moeten worden gestart xterm -g 80x20+150+8 & # start een console venster xterm -g 80x20+150+325 & # start een tweede console onder de eerste xload -g +4+0 & # start een cpu belastings-meter xclock -g +815+0 -digital & # start een digitale klok # Start Window Manager exec fvwm2
We hebben nu een bestand dat eindelijk dat irritante backspace probleem oplost (voor de meeste gevallen), de numlock instelt, die vreselijke moire achtergrond weghaalt en een aantal programma's opstart iedere keer dat we X starten.
Een paar aandachtspunten. Een lokaal bestand in de directory van de gebruiker zal altijd worden gebruikt als die er is (daarbij voorbijgaand aan de globale instellingen). Let ook op de -g optie die de meeste X programma's kennen, dit staat voor geometry. Deze wordt gebruikt om de plaats op het scherm en de grootte van het programma te specificeren, als volgt...
Lengte x Breedte + X coördinaat + Y coördinaatPunt van aandacht hierbij is dat programma's als xterm (en de meeste andere terminal programma's), de lengte en breedte in aantal tekens gespecificeerd willen zien in plaats van beeldschermpunten (als je dus niet uitkijkt kun je met aardig kleine windows komen te zitten). Let verder op het en-teken (&) aan het eind van ieder commando (behalve bij het starten van de window manager). Deze geeft aan dat het programma in de achtergrond moet draaien (anders start het volgende programma niet voordat de vorige is afgelopen - en dat heeft weinig nut). Alleen de window manager wordt dus in de voorgrond gestart en zal dus ook alle programma's eindigen die xinitrc afstart, zodra je de X- sessie eindigt.
We hebben nu dus een bruikbaar script voor algemeen gebruik of voor plaatsing in de directory van een gebruiker voor zijn aanpassingen (we willen wellicht andere dingen opstarten voor gebruikers van de technische dienst dan die van de financiële afdeling). Hoewel deze constructie aardig wat mogelijkheden biedt, wordt het nog steeds niet ten volle benut. Bedenk dat dit een shell script is en dat dus allerlei andere commando's in dit script kunnen worden opgenomen. Laten we eens kijken naar een laatste voorbeeld wat gebruik maakt van xmodmap en xrdb om een privé instelling te combineren met de globale xinitrc instellingen, zodat we niet telkens het xinitrc bestand naar de directory van de gebruiker hoeven te kopiëren voor afwijkende instellingen (aparte instellingen voor Xclients en Xresources worden verderop behandeld). Deze keer staan de commentaren (na de #hekjes#) in het Engels, zoals in het echte bestand:
#/etc/X11/xinit/xinitrc #!/bin/sh # define locations for global and local resources userclients=$HOME/.Xclients userresources=$HOME/.Xresources usermodmap=$HOME/.Xmodmap sysresources=/usr/X11R6/lib/X11/xinit/.Xresources sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap # merge system and user Xdefaults and keyboard maps if [ -f $sysresources ]; then xrdb -merge $sysresources; fi if [ -f $sysmodmap ]; then xmodmap $sysmodmap; fi if [ -f $userresources ]; then xrdb -merge $userresources; fi if [ -f $usermodmap ]; then xmodmap $usermodmap; fi # fix that annoying backspace problem xmodmap -e "keycode 22=BackSpace" # set background xsetroot -solid LightSlateGrey # screen saver after five minutes xset s 300 # check for ~/.Xclients and execute else execute system # default clients ( local and global are NOT merged) if [ -f $userclients ]; then exec $userclients else # start some default clients xterm -g 80x20+150+8 & xterm -g 80x20+150+325 & xload -g +4+0 & xclock -g +815+0 -digital & # start window manager fvwm2 fi
Laten we de bestanden die we hebben genoemd eens nader bekijken...
xv -rmode -noresetroot -quit /usr/local/backgrounds/slate.xpm & kfm & kcontrol -init & kbgndwm & krootwm & kpanel & kvt & kwmZoals je in de vorige figuur kunt zien kun je Xclients aanpassen aan de eigen smaak zonder het centrale bestand xinitrc te veranderen. Merk op dat bovenstaand xinitrc script geen clients start als er een lokale ~/.Xclients aanwezig is. Ik gebruik deze constructie zodat iedere gebruiker zijn eigen window manager kan instellen via .Xclients. Als je centraal clients moet opstarten doe dit dan voordat je de .Xclients van de gebruiker aanroept (als deze een window manager aanroept). Voor diegenen die meer willen weten over mijn configuratie uit het laatste voorbeeld, kijk naar KDE's home page. Versie 3.0 bèta is net uit en heeft een aantal mooie hulpmiddelen voor het instellen van grafische koppelingen (GUI).
Widgets zitten meestal in een hiërarchische opstelling, in een frame widget voor een menu bijvoorbeeld zitten dan diverse widgets voor de diverse knoppen. Om dergelijke widgets individueel te veranderen moet je de volledige naam opgeven in de vorm van het pad in de hiërarchie. Hieronder een voorbeeld van mijn ~/.Xdefaults bestand dat al mijn terminal schermen standaard instelt.
XTerm*Font: -misc-fixed-bold-r-normal-15-140-75-75-c-90-iso8859-1 XTerm*Background: black XTerm*Foreground: cyan XTerm*scrollBar: true XTerm*saveLines: 500 Xterm*VT100.geometry: 80x24Merk op dat wild cards zijn toegestaan in een dergelijk bestand, aldus zal...
*Foreground: cyan *Background: blackeen standaard kleur geven aan alle programma's waarvan de instelling niet expliciet wordt veranderd in een .Xdefaults bestand. Als je net als mij meer flexibiliteit wil dan de wild cards je bieden maar je onmogelijk de hiërarchie kan onthouden... kijk dan eens naar editres. Dit is een hulpmiddel voor grafische koppelingen die je extreem gedetailleerde instellingen laat doen zonder dat je daarvoor .Xdefaults hoeft te veranderen. Kijk eens naar de afbeelding van editres in actie! Zo langzamerhand zul je wel begrijpen dat .Xdefaults interessante mogelijkheden biedt voor centraal gestandaardiseerde instellingen alsook voor zeer toegesneden omgevingen. Kijk eens wat .Xdefaults kan doen met deze eenvoudige xcalc. Bezoek voor een grondige, stapsgewijze inleiding in het gebruik van editres de pagina Isolation's X tips page.
Dat is het zo'n beetje voor deze maand. Ik hoop dat je nu hebt gezien wat voor mogelijkheden tot standaardisatie en instellingen X heeft, zonder dat je voor iedere nieuwe gebruiker uren aan scripts moet gaan zitten prutsen. In het volgende nummer (als de hoofdredacteur Miguel A .Sepulveda het wil) gaan we kijken hoe je meerdere X inlog-sessies kunt hebben op dezelfde machine met behulp van de X display manager. Voor vragen en/of commentaar, stuur maar een berichtje. Tot ziens...
Site onderhouden door het LinuxFocus editors team
© Joel Mccarty LinuxFocus.org 2000 Klik hier om een fout te melden of commentaar te geven |
Translation information:
|
2000-07-25, generated by lfparser version 1.5