web-dev-qa-db-fra.com

Comment configurer Ubuntu pour activer automatiquement NumLock quand un clavier externe est connecté et éteint quand il ne l'est pas?

Activer NumLock est pratique lorsque vous utilisez un clavier externe de taille normale (avec un clavier) et très gênant lorsque vous utilisez le clavier intégré de l'ordinateur portable (qui place des chiffres au lieu de lettres sur le côté droit du clavier, sauf si vous appuyez sur Fn).

Je dois donc activer NumLock à chaque fois que j'attache un clavier externe (ou démarrer avec ce dernier) et à chaque fois que je détache un clavier externe (ou que je démarre avec ce dernier). Et je le fais fréquemment parce que je préfère utiliser un clavier externe de taille normale, mais que je n’ai pas assez (seulement 3) ports USB pour le brancher à côté d’une souris, d’un modem 3G et d’un lecteur externe dur/flash.

Puis-je automatiser cela? Semblable à une tâche très formalisable et logiquement simple: si un clavier USB est connecté (un périphérique dans/dev est présent?) - NumLock est activé, sinon - NumLock est désactivé. Le clavier intégré de mon ordinateur portable est connecté à PS/2, le port externe est USB.

Peut-être que je devrais le coder moi-même, mais où le mettre dans ce cas?

J'utilise Ubuntu 10.10.

12
Ivan

Tout d’abord, installez numlockx ( cliquez ici pour installer numlockx ). En gros, cela vous permet d’écrire des scripts pour définir l’état de Num Lock - voir le page de manuel numlockx pour plus de détails.

Nous devons ensuite commencer à nous plonger dans le plaisir des règles udev. Nous devons d’abord déterminer comment le clavier est identifié. Vous pouvez le faire en

ls /dev/input/by-id/

Cela devrait vous donner des noms de fichiers lisibles par l’homme (ce sont des liens symboliques vers le vrai nom, non lisible). Mon clavier était

/dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd

Nous devons donc trouver toutes les informations sur le clavier. J'ai fait

udevadm info -a -p $(udevadm info -q path -n /dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd)

Mais insérez votre propre chemin là bien sûr. Vous aurez beaucoup d'informations, mais vous voulez regarder le premier bloc qui nomme le clavier et a SUBSYSTEMS=="usb". (Plutôt que le contrôleur USB ou autre). Dans mon cas c'était:

  looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.3':
    KERNELS=="3-2.3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 2"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="a0"
    ATTRS{bMaxPower}==" 50mA"
    ATTRS{urbnum}=="6284"
    ATTRS{idVendor}=="058f"
    ATTRS{idProduct}=="9410"
    ATTRS{bcdDevice}=="0122"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{speed}=="1.5"
    ATTRS{busnum}=="3"
    ATTRS{devnum}=="3"
    ATTRS{devpath}=="2.3"
    ATTRS{version}==" 1.10"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="KINESIS FREESTYLE KB700"
    ATTRS{product}=="KB700 Kinesis Freestyle"

Nous avons donc assez d’informations pour écrire certaines règles. Utilisez votre éditeur favori pour créer /etc/udev/rules.d/10-local.rules et insérez:

BUS=="usb",ATTRS{product}=="KB700 Kinesis Freestyle",ACTION=="add",RUN+="/usr/bin/numlockx on"
BUS=="usb",ATTRS{product}=="KB700 Kinesis Freestyle",ACTION=="remove",RUN+="/usr/bin/numlockx off"

Encore une fois, mettez le nom de votre clavier ici, et l'ATTRS s'il est différent. Alors ça devrait marcher :)

Remarque Je n'ai pas pu tester cela, bien que j'ai exécuté toutes les commandes jusqu'à la création du fichier de règles. Et les sources au cas où vous auriez besoin de mener une enquête plus approfondie sont:

13
Hamish Downer

Si vous utilisez Gnome3 Shell.

Installer numlockx

puis lancez les préférences de l'application de démarrage gnome-session-properties

Image (les nouveaux utilisateurs ne peuvent pas publier d'images:))

Cliquez sur Ajouter

Écrivez n'importe quoi dans le champ de nom et copiez le dans le champ de commande: numlockx on

Image

1
Lukas Ignatavičius

Je ne suis pas sûr de ce que je fais différemment, car mon pavé numérique sur ce clavier est activé par défaut (il s'agit d'un clavier Mac Pro Aluminium). Il y a quelques instructions ici qui devraient faire l'affaire.

J'espère que cela t'aides!

0
Craig Maloney

Si vous utilisez gnome-Shell, vous pouvez installer le statut Numlock & Capslock sur l'extension "Verrouiller les touches" du panneau. S'il vous plaît, trouvé ici

0
Tatui1969