web-dev-qa-db-fra.com

Ubuntu MATE 17.04 - la désactivation de l'accélération de la souris arrête complètement le mouvement du pointeur

Depuis quelque temps, le comportement de ma souris me gênait, mais je le blâmais sur la surface utilisée, pas sur la souris. Aujourd'hui, j'ai une meilleure surface pour le tapis de souris et j'ai constaté que je ne pouvais pas utiliser ma souris avec précision, en n'utilisant ni souris connectées ni fil. Après quelques recherches, j'ai constaté que l'accélération de la souris est activée par défaut pour une raison quelconque, et la plupart des solutions suggérées sont les suivantes:
1) Utilisation de la commande _xset m 0 0_ (celle-ci semble fonctionner, mais ne semble pas être une solution solide et permanente)
2) Créer un fichier .conf dans / usr/share/X11/xorg.conf.d / avec un contenu comme celui-ci:

_Section "InputClass"
           Identifier "My Mouse"
           Driver "libinput"
           MatchIsPointer "yes"
           Option "AccelProfile" "flat"
EndSection
_

3) Utilisation de _xinput set-prop [device-id] [Accel Profile Enabled id] 0,1_

Mais le problème, c’est que, une fois le profil d’accélération réglé à "plat" avec ces méthodes, le pointeur de la souris s’arrête complètement. La souris fonctionne, clic gauche\clic droit, elle est connectée et listée. Mais tout mouvement est ignoré.

Par exemple, nous avons cette propriété:
libinput Accel Profile Enabled (278): 1, 0
Après avoir exécuté la commande xinput set-prop 11 278 0, 1 tout mouvement de la souris est ignoré. Après avoir exécuté xinput set-prop 11 278 1, 0 tout est revenu à la normale.

Cela se produit sur les deux souris que j'ai.
Question: Comment désactiver correctement l'accélération de la souris dans Ubuntu MATE 17.04 et définir le profil "à plat", et qu'est-ce qui peut causer des problèmes dans mon cas?

1
Ethuil UI

Après avoir cherché autour de moi, j'ai réussi à trouver le cœur de ce problème.

Pourquoi le mouvement de la souris peut-il être ignoré après avoir défini un profil plat (sans accélération)?

La réponse à cette question était simple et le problème se trouvait dans libinput ​​paramètre de pointeur appelé Accel Speed. Aussi déroutant soit-il, lorsque vous utilisez un profil plat sans accélération, ce paramètre agira en quelque sorte comme un paramètre de "sensibilité" auquel la plupart des utilisateurs sont habitués, mais dans une plage de 0% à 200%, correspondant à la vitesse du curseur. -1 serait 0%, 0 serait 100%, 1 serait 200% pour la vitesse du curseur.
D'après ce que j'ai compris, lorsque vous déplacez votre souris, votre pointeur (curseur) se déplace sur une distance de X + X*As, où X est la valeur de base de beaucoup de curseur doit être déplacé et As est la valeur de l'option Accel Speed. Ce qui signifie que si, pour une raison quelconque, la valeur de ce paramètre est -1, ce qui peut arriver pendant que vous essayez de régler la sensibilité à l'aide d'une interface graphique pour le contrôle de la souris ou en la configurant manuellement, les mouvements de votre souris seront calculés comme suit "X + X * -1 ", qui est fondamentalement" XX ", ce qui signifie que votre curseur ne bougera pas du tout.

Donc, si vous avez un problème similaire, la première chose à faire est de regarder la valeur de cette option.

1) Lister les périphériques avec la commande:
_xinput list_

2) Recherchez l’ID de votre souris et utilisez cette commande pour voir les valeurs actuelles de ses options:
_xinput list-props 12_
Où '12' serait l'ID de votre périphérique à partir de la sortie "xinput list".

3) Si "libinput Accel Speed" est égal à -1 et que vous utilisez un profil plat, vous pouvez le modifier avec la commande suivante:
_xinput --set-prop 12 'libinput Accel Speed' 0_

Donc, si votre souris est bloquée après avoir activé le profil plat, il vous suffit de passer à console\terminal et d'exécuter ces 3 étapes pour résoudre le problème.

J'ajoute la solution que j'ai utilisée pour désactiver l'accélération et régler Accel Speed ​​au cas où quelqu'un tomberait sur cette recherche de réponse.

Comment définir un profil plat\Désactiver l'accélération de la souris de façon permanente

Pour définir de manière permanente libinput sur un profil plat et ne pas modifier la sensibilité de base, vous pouvez simplement éditer ce fichier:
_/usr/share/X11/xorg.conf.d/40-libinput.conf_
Il devrait avoir une section avec l’identifiant "libinput pointer catchall". Par défaut, le mien ressemblait à ceci:

_[...]
Section "InputClass"
        Identifier "libinput pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection
[...]
_

Vous pouvez le forcer à utiliser les paramètres spécifiques dont nous avons besoin en ajoutant deux lignes après la ligne "Pilote":

_[...]
Section "InputClass"
        Identifier "libinput pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "AccelProfile" "flat"
        Option "AccelSpeed" "0.0"
EndSection
[...]
_

L'option "AccelProfile" indiquera au système d'utiliser un profil plat, sans accélération.
L’option "AccelSpeed" définira par défaut le modificateur de la vitesse de base du pointeur, ce qui correspond à peu près à la sensibilité. Le régler sur "1" doublera la vitesse du pointeur, -1 le réglera sur 0, 0.5 le rendrait à 150%.

Après avoir enregistré les modifications, vous pouvez simplement redémarrer GDE avec _service lightdm restart_ ou simplement redémarrer PC manuellement et vérifier si libinput utilise maintenant les valeurs correctes.

En exécutant la commande:
_xinput list-props {1..50} 2>/dev/null | fgrep 'libinput Accel Profile Enabled ('_
vous pouvez vérifier si le système utilise un profil plat.

Pour un profil plat, il devrait renvoyer 0, 1 valeur comme ceci:
libinput Accel Profile Enabled (282): 0, 1

Et vérifiez la valeur Accel Speed ​​avec une commande similaire:
_xinput list-props {1..50} 2>/dev/null | fgrep 'libinput Accel Speed ('_
Si, après le redémarrage, vous avez des valeurs correspondant à ce que vous définissez dans le fichier 40-libinput.conf, tout fonctionne comme il se doit.
Pour des solutions alternatives et plus d’informations, vous pouvez rechercher ces liens:
https://wiki.archlinux.org/index.php/Mouse_acceleration#Using_xinput
Configurer la vitesse de la souris (pas d'accélération de pointeur!)

1
Ethuil UI