Als je X start, zal Debian een aantal shell-scripts uitvoeren, die je window manager en andere X-clients opstarten. Standaard zullen een window manager, een xconsole en een xterm voor je worden opgestart.
Als je het opstartscript van X aan wilt passen, moet in het bestand /etc/X11/config een regel voorkomen met allow-user-xsession. Word root en voeg de regel nu toe, als dit niet zo is. Log vervolgens weer in als jezelf en ga verder met de tutorial. [1]
Je maakt een uitvoerbaar shell-script, genaamd .xsession, in je home-directory aan, om de clients van je keuze uit te laten voeren wanneer X wordt opgestart.
Hiermee wordt het bestand aangemaakt.
Maak het bestand uitvoerbaar.
Zodra .xsession is aangemaakt, moet je het met je favoriete teksteditor wijzigen om het iets nuttigs te laten doen. Je kunt in dit script alles doen wat je wilt. Als de processen in het script echter worden beëindigd, zal ook X worden afgesloten.
In praktijk betekent dit vaak dat je het script afsluit met een aanroep naar exec. Het programma dat je met exec laat uitvoeren, zal het script-proces zelf vervangen, dus opdrachten na de regel exec zullen worden genegeerd. Het programma na exec wordt de nieuwe "eigenaar" van het script-proces, wat betekent dat X zal worden afgesloten als het proces van dit nieuwe programma wordt beëindigd.
Stel dat je .xsession eindigt met de regel: exec fvwm. Dit betekent dat de window manager fvwm zal worden uitgevoerd wanneer X wordt opgestart. Als je de window manager fvwm verlaat, zal de X sessie eindigen en zullen alle andere clients worden afgesloten. Je hoeft hier geen window manager te gebruiken; je zou net zo goed exec xterm kunnen gebruiken, in welk geval het intikken van exit in die bepaalde xterm er voor zou zorgen dat de gehele X-sessie tot een einde zou komen.
Als je voor de exec andere clients wilt draaien, zal je ze in de achtergrond uit moeten voeren. Anders pauzeert .xsession totdat iedere client wordt afgesloten, en zal dan pas verder gaan met de volgende regel. Zie de vorige sectie over het in de achtergrond uitvoeren van jobs. (aan het eind plaats je dus een ampersand, b.v. xterm &).
Je kunt echter profijt hebben van dit gedrag. Als je opdrachten aan het einde van je X-sessie wilt draaien, kun je een .xsession laten uitvoeren met een window manager of iets dergelijks en wachten totdat het wordt afgesloten. Dat wil zeggen, het achterwege laten van de exec en de &, er slechts fvwm zelf in plaatsen. Plaats dan de opdrachten van je keuze achter fvwm.
Het zou waarschijnlijk kunnen helpen als je een paar .xsession voorbeeldbestanden bekijkt. In alle voorbeelden, vervang je fvwm door de window manager van je keuze.
De eenvoudigste .xsession draait slechts een window manager:
exec fvwm |
Een wat nuttiger .xsession voert een paar clients uit voordat het de window manager opstart, wellicht wil je bijvoorbeeld een aantal xterms en een xclock als je X start. Geen probleem:
xterm & xterm & xclock & exec fvwm |
Misschien dat je het uit wilt proberen zonder ze in de achtergrond te plaatsen, gewoon om te zien wat er dan gebeurt. Doe het volgende:
xterm xclock exec fvwm |
Je kunt van de gelegenheid gebruik maken door een sequentiële uitvoering te gebruiken. Misschien dat je bij wilt houden wanneer je iedere dag stopt met werken:
xterm & xclock & fvwm date >> ~/logout-time |
Als laatste, kun je een ander programma dan de window manager laten vaststellen wanneer X wordt afgesloten:
xclock & fvwm & exec xterm |
De beste manier om te leren hoe je .xsession kunt gebruiken is door dingen uit te proberen. Nogmaals, weer er zeker van dat je chmod toepast om het uitvoerbaar te maken --- dit is een veelvoorkomende fout.
| [1] | Je kunt zien hoe het opstartscript van X onder Debian werkt in het bestand /etc/X11/Xsession. Merk op dat de werking van /etc/X11/Xsession niet kan worden gewijzigd door het aanpassen van het bestand /etc/X11/config, waarin een paar systeemomvattende voorkeuren worden gespecificeerd. |