J'utilise une souris à 10 boutons (Logitech M705). Sous X11, j'ai pu configurer l'un des boutons supplémentaires pour qu'il se comporte comme un deuxième clic du milieu en modifiant les fichiers dans etc/X11/xorg.conf.d
.
Sous Wayland, cela ne fonctionne plus. Mes recherches montrent que je dois faire quelque chose avec libinput
. Je pensais que ce serait un problème courant mais je ne trouve aucune réponse nulle part.
Quelqu'un peut-il expliquer comment remapper les boutons de la souris ou expliquer pourquoi cela ne peut pas être fait?
Réponses:
Le remappage des boutons si vous utilisez Wayland pourrait se faire comme ceci:
Exécutez
xev | grep button
pour enregistrer les événements de clic de souris et obtenez le numéro de l'événement en cliquant sur dans la fenêtre. Dans mon cas, le bouton du milieu est:et je veux le mapper sur:
Ensuite, exécutez
xinput --list
et trouvez votre périphérique de pointeur, le mien est:xinput get-button-map 9
Retour:xinput set-button-map:
REMARQUE: remplacez le numéro
9
du numéro renvoyé parid=
Et si le comportement de cette clé est défini, votre événement est mappé. Si ce n'est pas le cas, c'est un problème un peu différent. Sous Wayland TBH, je n'ai pas trouvé de moyen d'exécuter une commande sur un événement (ce qui est assez facile avec Xorg
xbindkeys
) et donc de personnaliser entièrement le comportement de l'événement clé et souris. Je crois que Wayland essaie d'être plus sécurisé et désactive ce comportement .Dans tous les cas, vous avez toujours la possibilité de passer à Xorg assez facilement et de profiter de la fonctionnalité.
la source
xinput set-button-map
pour chaque nouvelle session Wayland ...Option "ButtonMapping" "1 2 3 ..."
J'ai fait un petit script shell + fichier d'unité systemd que j'appelle wayland-mouse-mapper .
extrait mathportillo / wayland-mouse-mapperla source
Essayez de modifier les règles hwdb udev. Cela enregistre les boutons de la souris comme une touche de clavier telle que Launch8 / F16 et désactive leur fonctionnalité dans tous les programmes, wayland ou autre.
puis en tant que root
systemd-hwdb update; udevadm trigger
et débranchez la souris puis rebranchez-la.Vérification de cohérence supplémentaire:,
sudo udevadm info /dev/input/by-path/*-usb-*-mouse | grep -A3 -P3 KEYBOARD_KEY
ou interrogez-la en tant que telle,systemd-hwdb query "evdev:input:v046dp406a*
consultez la source pour plus de détails sur l'extraction de l'ID.Source: https://yulistic.gitlab.io/2017/12/linux-keymapping-with-udev-hwdb/
la source