Numlock au démarrage d'X Window

De Lea Linux
Révision datée du 2 septembre 2005 à 19:11 par PingouinMigrateur (discussion | contributions) (conversion de la documentation originale de Léa par HTML::WikiConverter)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

NumLock et X Window : La solution définitive

NumLock et X Window : La solution définitive
par Fred
Sur ce même site on vous indique un [../trucs/lire.php3?id=60 truc] pour permettre l'activation de Num Lock au démarrage de X Window, mais cette astuce présente l'inconvénient de désactiver les fonctionnalités de cette touche. Heureusement, au royaume de Linux, il existe une solution.

La solution

La solution à ce problème est pourtant simple (en théorie), il suffit de forcer X Window à "taper" lui-même virtuellement sur la touche Num Lock. Seulement, si la théorie est simple, la réalisation demande un peu programmation de X, ce qui n'est pas donné à tout le monde. Vous y avez pensé, Lubos Lunak <l.lunak@email.cz> l'a fait.

Note : Depuis la version 7.2 de la Mandrake (au moins), un équivalent de numlockx est fourni en standard (dans le package nommé : numlock-xxx.rpm). Le programme à utiliser s'appelle : enable_X11_numlock. Il fonctionne de la même manière que numlockx pour la bonne raison que c'est le programme de Lubos qui est utilisé.

Installation du programme

Téléchargez le source sur le site de numlockx. Puis décompressez-le :

$ tar xzf numlockx-1.0.tar.gz

Puis compilez le :

$ cd numlockx-0.2
$ ./configure
$ make
$ su -c "make install"

Et voilà c'est tout ! Si la compilation se termine par une erreur, c'est qu'il vous manque certains paquetages de développement (XFree86-devel-*). Installez les et recommencez.

Syntaxe de numlockx

Pour activer le verrouillage du pavé numérique il suffit de taper :

numlockx on

ou :

numlockx

Pour désactiver le verrouillage, vous taperez :

numlockx off

Et pour changer (off devient on, et on devient off) le verrouillage, vous taperez :

numlockx switch

C'est tout simple.

Activation au démarrage

Avec xdm et kdm

Pour activer au démarrage de X la touche Num Lock, il suffit Si vous utilisez [x|k]dm pour lancer X, il faut ajouter, au script /etc/X11/xdm/Xsetup_0, les lignes suivantes :

if [ -x /usr/X11R6/bin/numlockx ]; then
        /usr/X11R6/bin/numlockx on
fi

puis relancer X en appuyant en même temps sur <CTRL>+<ALT>+<BackSpace>. Normalement votre touche Num Lock doit être activée.

Sur votre distribution, numlockx peut s'appeler enable_X11_numlock (Mandrake par exemple, avec le package numlock->version<.i586.rpm).

Avec gdm

Il faut ajouter les même lignes au script /etc/X11/gdm/Init/Default. Puis relancer X en appuyant en même temps sur <CTRL>+<ALT>+<BackSpace>. Normalement votre touche Num Lock doit être activée.

Avec startx

Vous lancez X en tapant startx, il faut ajouter ces mêmes lignes au script ~/.xinitrc.

Pour les curieux

Voici ci-dessous le source de la première version de numlockx, qui donne le principe de fonctionnement de ce programme, somme toute simple pour qui connaît un peu la programmation de X Window.

numlockx.c
-------------Copier à partir de là---------------
#include <X11/extensions/XTest.h>
#include <X11/keysym.h>

int main()
    {
    Display* disp = XOpenDisplay( NULL );
    if( disp == NULL )
        return 1;
    XTestFakeKeyEvent( disp,
       XKeysymToKeycode( disp, XK_Num_Lock ),
       True, CurrentTime );
    XTestFakeKeyEvent( disp,
       XKeysymToKeycode( disp, XK_Num_Lock ),
       False, CurrentTime );
    XCloseDisplay( disp );
    return 0;
    }
-------------Copier jusque là--------------------

Pour compiler, tapez (sur une seule ligne) :

gcc numlockx.c -o numlockx -lX11 -lXtst -I/usr/X11R6/include -L/usr/X11R6/lib

Puis vous pouvez lancer par ./numlockx pour activer le pavé numérique. (Cette version simplifiée ne dispose pas des arguments on, off et switch).

Remarque : le verrouillage de numlockx est maintenant configuré automatiquement chez Debian lors du lancement de X.

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Frédéric Bonnaud le 10/03/2000.