Défilement du clic central avec ThinkPad / éviter le collage

11

J'ai un clavier USB ThinkPad et je veux pouvoir utiliser le clic du milieu à la fois pour coller et faire défiler.

Cela fonctionne sur mon ordinateur portable ThinkPad. Sur l'ordinateur portable, si le bouton de clic central est maintenu pendant une durée suffisamment courte, il est interprété comme " coller " lorsqu'il est relâché . Lorsqu'il est maintenu plus longtemps, il est interprété comme " défilement ".

Le problème est que, à l'aide du clavier USB, la décision de coller se produit lorsque le bouton du milieu est enfoncé , pas lorsqu'il est relâché , donc si j'essaie de faire défiler avec un clic du milieu, il collera d'abord, puis défilera lorsque je le maintiendrai vers le bas (bien qu'intéressant, ce collage ne se produit pas si je déplace déjà le curseur, ce qui est ma solution de contournement actuelle).

Existe-t-il un moyen de dire à X11 de coller lors du relâchement du bouton central plutôt que d'appuyer (avec la décision de faire défiler plutôt que de coller en fonction de la durée pendant laquelle il a été maintenu)?

Alex
la source
2
Il est surprenant d'entendre que le comportement de X11 serait différent selon la souris utilisée. Je suggère d'utiliser xevpour surveiller les événements ButtonPresset ButtonReleasepour voir si le bouton de votre ordinateur portable envoie vraiment les événements que vous pensez que c'est au moment où vous pensez que c'est. Il est possible qu'il fasse sa propre magie à la place et "ment" à X11 quand les boutons sont enfoncés et relâchés. Soit dit en passant, il semble normal que la pâte se produise immédiatement après avoir appuyé sur le bouton 2, et non relâchée .
Celada
1
J'aimerais également savoir comment procéder, car je suis sur un clavier Bluetooth Bluetooth Trackpoint.
Justin N
Ce clavier USB, quel modèle exact est-ce? At-il un «vrai» pavé tactile ou un soi-disant pavé tactile (sans boutons physiques)? En outre, quel environnement de distribution et de bureau utilisez-vous? Y a-t-il une configuration xorg spéciale en place (/etc/X11/xorg.conf et dans /etc/X11/xorg.conf.d/)? Vous pouvez trouver des conseils ici: askubuntu.com/questions/2557/thinkpad-middle-button-scrolling et pour clickpad ici: askubuntu.com/questions/380825/…
doktor5000
1
Des mises à jour à ce sujet? Je rencontre le même problème avec un clavier Lenovo externe.
languitar
FWIW, j'ai deux modèles de clavier Bluetooth Trackpoint, et l'un a ce problème. xevmontre que le ButtonPressbouton for 2 dès que je clique, puis ButtonReleasequand je commence à faire défiler. Ce qui devrait arriver, c'est qu'aucun de ces événements n'est généré tant que l'action n'est pas ambiguë en déplaçant le trackpoint (auquel cas ni la pression ni la relâche ne sont générées) ou le bouton 2 n'est relâché (dans ce cas, les deux événements sont envoyés lors de la libération).
stewSquared

Réponses:

1

Cela fonctionne bien pour moi dans /etc/X11/xorg.conf.d/20-thinkpad.conf:

Section "InputClass"
    Identifier  "Trackpoint Wheel Emulation"
    MatchProduct    "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"
    MatchDevicePath "/dev/input/event*"
    Option      "EmulateWheel"      "true"
    Option      "EmulateWheelButton"    "2"
    Option      "Emulate3Buttons"   "false"
    Option      "XAxisMapping"      "6 7"
    Option      "YAxisMapping"      "4 5"
EndSection

La section importante est l' MatchProductentrée, qui comprend également le clavier USB. Vous pouvez trouver la chaîne de produit du clavier en /var/log/Xorg.0.logrecherchant (II) evdev:.

corecode
la source
1

Essayez d'activer l'émulation de défilement avec les commandes suivantes, qui fonctionnent bien sur plusieurs modèles de clavier trackpoint:

dev="TPPS/2 IBM TrackPoint"
xinput --set-int-prop "$dev" "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput --set-int-prop "$dev" "Evdev Wheel Emulation Button" 8 2
xinput --set-int-prop "$dev" "Evdev Wheel Emulation" 8 1

Si vous n'aimez pas ça, vous pouvez l'annuler avec

xinput --set-int-prop "$dev" "Evdev Wheel Emulation" 8 0

Vous devrez peut-être ajuster le dev en fonction de votre modèle de clavier. Courir

xinput --list | grep TrackPoint

pour voir comment s'appelle votre périphérique de pointage.

user3188445
la source