J'ai une souris que je viens d'utiliser pour les boutons. Je souhaite désactiver uniquement l'entrée de mouvement de la souris. Couvrir physiquement le capteur ne fonctionne pas.
J'ai une souris que je viens d'utiliser pour les boutons. Je souhaite désactiver uniquement l'entrée de mouvement de la souris. Couvrir physiquement le capteur ne fonctionne pas.
Réponses:
Vous pouvez utiliser xinput
.
>xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Mouse0 id=6 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Keyboard0
Là, vous obtenez le nom de la souris dans ce cas Mouse0.
Avec la commande suivante, vous ralentissez la vitesse de votre souris d'un facteur 100000, qui est alors pratiquement nul.
xinput --set-prop 6 'Device Accel Constant Deceleration' 100000
ou
xinput --set-prop Mouse0 'Device Accel Constant Deceleration' 100000
Pour revenir, vous pouvez utiliser le même
xinput --set-prop Mouse0 'Device Accel Constant Deceleration' 1
Ma souris n'a pas la propriété «Device Accel Constant Deceleration». Je pouvais toujours désactiver le mouvement avec
xinput set-prop 9 266 -1
xinput set-prop 9 269 0 1
et le réactiver avec
xinput set-prop 9 269 1 0
input set-prop 9 266 0.0
J'ai également désactivé mes boutons avec
xinput set-button-map 9 0 0 0
Le périphérique 9 étant ma souris optique USB optique Mitsumi Electric Apple .
Liste des périphériques
Device 'Mitsumi Electric Apple Optical USB Mouse':
Device Enabled (132): 1
Coordinate Transformation Matrix (134): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (266): -1.000000
libinput Accel Speed Default (267): 0.000000
libinput Accel Profiles Available (268): 0, 0
libinput Accel Profile Enabled (269): 0, 1
libinput Accel Profile Enabled Default (270): 1, 0
libinput Natural Scrolling Enabled (271): 0
libinput Natural Scrolling Enabled Default (272): 0
libinput Send Events Modes Available (250): 1, 0
libinput Send Events Mode Enabled (251): 0, 0
libinput Send Events Mode Enabled Default (252): 0, 0
libinput Left Handed Enabled (273): 0
libinput Left Handed Enabled Default (274): 0
libinput Scroll Methods Available (275): 0, 0, 1
libinput Scroll Method Enabled (276): 0, 0, 0
libinput Scroll Method Enabled Default (277): 0, 0, 0
libinput Button Scrolling Button (278): 2
libinput Button Scrolling Button Default (279): 274
libinput Middle Emulation Enabled (280): 0
libinput Middle Emulation Enabled Default (281): 0
Device Node (253): "/dev/input/event4"
Device Product ID (254): 1452, 772
libinput Drag Lock Buttons (282): <no items>
libinput Horizonal Scroll Enabled (255): 1
Si je lis man 4 mousedrv
correctement, vous pouvez définir, dans la section CorePointer de votre xorg.conf,
Option "EmulateWheel" true
Option "EmulateWheelButton" 0
Option "EmulateWheelInertia" 10000
ce qui convertirait les mouvements en événements de bouton de la molette de la souris, mais le paramètre d'inertie le rendrait trop insensible pour en enregistrer un. Sur les systèmes modernes, c'est evdev au lieu de mousedrv. Cela peut également être défini lors de l'exécution à l'aide de xinput, par exemple:
xinput --set-prop 17 'Evdev Wheel Emulation' 1
xinput --set-prop 17 'Evdev Wheel Emulation Button' 0
xinput --set-prop 17 'Evdev Wheel Emulation Inertia' 10000
Où 17 devrait être votre propre numéro d'appareil. J'utilise une fonction pour obtenir ce numéro par le nom de l'appareil et le stocker dans $ device-id lors d'un script de démarrage.
set_device_id() {
device_id=$(xinput --list | grep -m 1 "$1")
device_id=${device_id##*id=}
device_id=${device_id%%[[:space:]]*}
}
Cela a malheureusement pour effet secondaire de désactiver l'entrée de la molette de défilement de l'appareil.
xinput list 6
(où se6
trouve l'appareil). La documentation sur les propriétés peut être trouvée ici: x.org/wiki/Development/Documentation/PointerAcceleration