Verder Terug Inhoud

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).


Verder Terug Inhoud