Numlock au démarrage d'X Window

De Lea Linux
Aller à la navigation Aller à la recherche


Règler les problèmes d'X Window

NumLock et X Window : La solution définitive

par Fred

Sur ce même site on vous indique un 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

Rappel : si votre distribution contient un paquetage pour numlockx, préférez utiliser ce paquetage plutôt que les sources. Certains puristes prétendrons qu'utiliser les sources c'est l'esprit Linux, mais ce sont surtout des problèmes de dépendances non gérées, des choix par forcément simple à faire sur l'utilisation de telle ou telle fonctionnalité du logiciel que l'on désire compiler.

Pour vérifier que votre distribution contient un paquetage pour numlockx, il faut utiliser l'outil de gestion de paquetage de celle-ci. Par exemple :

  • pour Ubuntu / Debian : apt-cache search numlockx
  • pour Mageia / Mandriva : urpmq numlockx
  • pour Gentoo : emerge -s numlockx
  • pour Slackware : swaret --search numlockx

Votre distribution contient aussi presque surement un outil graphique pour obtenir cette information.

Pour plus d'information sur ces questions, consulter cette documentation.

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

--ALT 28 fév 2008 à 16:33 (CET)
Avec KUbuntu 7.1 & KDE 3, le fichier à modifier est : /etc/kde3/kdm/Xsetup. Et numlockx est un paquetage de la distribution, donc on l'installe simplement avec la commande apt-get install numlockx ou bien un gestionnaire de paquets graphique (exemple : Adept).

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.



@ Retour à la rubrique Environnement graphique

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.

Copyright

© 10/03/2000 Frédéric Bonnaud

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike icon
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique 4.0 :
https://creativecommons.org/licenses/by-sa/4.0/