J'ai essayé d'utiliser ce tutoriel pour que le commutateur de défilement fonctionne avec mon clavier Microsoft Natural Ergonomic Keyboard 4000. Mais l'erreur suivante est à mon sens:
Sudo: /lib/udev/keymap: command not found
J'ai la version udev 204-5ubuntu20.2
(la version trouvée dans Trusty)
J'ai remarqué que cette version n'inclut pas l'outil keymap
. Mais je remarque que de plus grandes versions de udev
( qui sont disponibles pour Debian, par exemple ) incluent cet outil.
Quelqu'un pourrait-il expliquer ce diff pour moi? =) Et que dois-je faire dans ce cas - installer le paquet à partir du référentiel Debian?
Si vous regardez /lib/udev/rules.d/60-keyboard.rules
, vous verrez que tout a été dérangé. Cela fait partie de la fusion entre udev et systemd.
Toutes les règles matérielles sont compilées dans une base de données matérielle binaire. Celles-ci suivent un format vraiment étrange. Les règles existantes pour les claviers livrés avec udev résident dans /lib/udev/hwdb.d/60-keyboard.hwdb
. Regardez ça mais ne le modifiez pas (les mises à jour le remplaceront probablement).
Pour ajouter vos règles personnalisées, nous allons créer un nouveau fichier dans /etc/udev/hwdb.d/
en exécutant sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb
. Tout ce que vous avez à faire est de coller ce qui suit -
Si vous utilisez le modèle 4000:
keyboard:usb:v045Ep00DB*
KEYBOARD_KEY_0c022d=pageup
KEYBOARD_KEY_0c022e=pagedown
Si vous utilisez le modèle 7000:
keyboard:usb:v045Ep071D*
KEYBOARD_KEY_0c022d=pageup
KEYBOARD_KEY_0c022e=pagedown
Ceci est adapté du tutoriel que vous avez posté, vous devrez donc peut-être modifier en fonction de votre clavier. Regardez lsusb
_ et assurez-vous que le vendor:product
ci-dessus (en tant que v####p####
) est correct. Cela ne fonctionnera pas s'ils ne correspondent pas.
Une fois que vous avez terminé, recompilez le hwdb
utilisé par udev:
Sudo udevadm hwdb --update
Et puis vous pourriez avoir besoin de rebrancher. S'il s'agit d'un clavier PS/2, vous devrez peut-être redémarrer. Dans certains cas, vous devez également redémarrer.
buntu 15.1: Je n'ai pas eu de succès avec les réponses précédentes.
J'ai utilisé avec succès une approche similaire aux précédentes - les instructions ont été mentionnées dans /lib/udev/hwdb.d/60-keyboard.hwdb
.
J'ai créé un nouveau fichier hwdb en utilisant Sudo nano /etc/udev/hwdb.d/70-keyboard.hwdb
contenant:
# Microsoft Natural Ergonomic Keyboard 4000 - remappez le zoom avant/arrière sur la page précédente/suivante .____.]
après que j'ai couru
Sudo udevadm hwdb --update Sudo udevadm control - reload
et rebranché le clavier et cela a fonctionné.
Pour le modèle 7000, utilisez evdev:input:b003v045Ep071D*
La solution originale publiée par Oli ne fonctionnait pas pour moi, mais après que j'ai modifié les numéros de clé "0c022d"
et "0c022e"
en "c022d"
et "c022e"
. J'utilise un modèle 4000, donc je ne peux pas vérifier si le même changement est nécessaire pour le modèle 7000.
Pour répéter la réponse de Oli, voici ce que j’ai fait: créer un nouveau fichier en exécutant Sudo nano /etc/udev/hwdb.d/61-keyboard-local.hwdb
. Collez les lignes suivantes dans le fichier (pour le modèle 4000):
keyboard:usb:v045Ep00DB*
KEYBOARD_KEY_c022d=pageup
KEYBOARD_KEY_c022e=pagedown
Après avoir édité le fichier, recompilez la hwdb utilisée par udev:
Sudo udevadm hwdb --update
Puis rebranchez le clavier.
En ajoutant à la réponse d'Oli, si vous souhaitez un défilement de ligne similaire à celui d'une souris, vous pouvez modifier la mise en page/pagination en haut/bas dans votre règle personnalisée. Comme:
keyboard:usb:v045Ep00DB*
KEYBOARD_KEY_c022d=up
KEYBOARD_KEY_c022e=down
La bonne solution est ici , et je peux seulement ajouter que vous pouvez mapper les clés sur les touches X inutilisées de la sorte:
$ cat /lib/udev/rules.d/95-keymap.rules
...
ENV{ID_VENDOR}=="Microsoft", ENV{ID_MODEL_ID}=="00db", RUN+="keymap $name 0xc022d katakana 0xc022e katakanahiragana
...
Les noms propres à utiliser à la place de katakana
peuvent être trouvés ici .
Après le redémarrage ;-), vous pouvez vérifier que les clés zoomin
et zoomout
sont correctement mappées, et pour rechercher un nom correct pour les clés (à utiliser dans rc.xml
pour OpenBox WM, par exemple) à l'aide de xev
name__:
$ xev
...
KeyRelease event, serial 46, synthetic NO, window 0x3c00001,
root 0x291, subw 0x0, time 1492891, (-261,-61), root:(573,380),
state 0x0, keycode 101 (keysym 0xff27, Hiragana_Katakana), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
...
Maintenant, vous pouvez connecter de nouvelles clés pour une action complètement arbitraire. Dans mon cas de gestionnaire de fenêtres OpenBox, j'ai utilisé quelque chose comme ceci:
$ cat <whatever>/rc.xml
...
<keybind key="Katakana">
<action name="Execute">
<command>volume_up.sh</command>
</action>
</keybind>
<keybind key="Hiragana_Katakana">
<action name="Execute">
<command>volume_down.sh</command>
</action>
</keybind>
...