web-dev-qa-db-fra.com

Désactiver l'accélération de la souris sous Mac OS X

Tout d'abord, voici la question de l'espace utilisateur: Désactivation de l'accélération de la souris dans Mac OS X @ superuser

Pour résumer: je veux avoir une réponse linéaire de la souris sur Mac OS X. Autrement dit, aucune accélération; une constante réglable mais pixels pointer moves / meters mouse moved ratio.

Je n'ai aucune idée de comment procéder. (Eh bien, ce n'est pas vrai, mais il vaut mieux recommencer à zéro.) Dois-je écrire un pilote de souris? Un programme de démarrage? Un ajusteur de paramètres cliquer-et-oublier? Un volet de préférences?

Je veux que ma solution soit aussi simple, universelle et non intrusive que possible, donc certains critères pourraient être:

  • Fonctionne sur Snow Leopard (10.6.5) et versions ultérieures - beaucoup plus tard, à moins qu'un élément important de l'API ne soit obsolète
  • Fonctionne sur les souris mais pas sur les pavés tactiles, tablettes, baguettes magiques ... (Ou peut-être configurable?)
  • Peut facilement être appliqué/géré par d'autres personnes qui veulent la même chose (nous 42 sur la planète)

Je suis un programmeur C assez expérimenté, à la fois dans l'espace utilisateur et dans le noyau (sous Linux et Windows), mais je ne sais pratiquement rien de Mac OS X ou de Darwin. Donc, tout est apprécié, vraiment ("ne peut pas distribuer de pilotes sans certificat d'Apple") mais une documentation/référence me ferait du chemin ("Darwin's Next Generation Mouse Curve Editing API and Examples").

Je sais que la question est un peu ouverte mais je ne sais même pas quel type d'une solution pourrait fonctionner. Merci d'avance.

Edit: Bien que j'ai posé les deux questions pour résoudre le même problème, c'est l'homologue de programmation de l'autre. (Voir la première phrase de cette question.) Ici, j'essaie de créer ma propre solution, pour ainsi dire, en utilisant - je ne sais pas - une API HID? Un conducteur? Une solution du type "ouvrir le fichier de préférences de l'utilisateur actuel et modifier ce paramètre en ceci" devrait probablement être publiée sur l'autre question, mais notez qu'une telle solution n'existe probablement pas.

56
aib

Cette réponse est sur le mauvais site Web!

Une grande partie de ma réputation sur StackOverflow vient des gens qui ont voté pour cette réponse, que j'ai écrite bien avant que je ne réalise qu'il existe plusieurs sites Web d'échange de pile et que StackOverflow est uniquement destiné à la programmation des questions et réponses. Par conséquent, la question ci-dessus concerne la façon de résoudre ce problème si vous souhaitez coder vos propres pilotes de souris. Pour toutes les autres discussions, allez l'avoir ici sur le site du superutilisateur où il appartient.

La réponse originale suit.


Explication

Il y a une préférence cachée que vous pouvez modifier depuis le terminal. Pour lire son type de valeur actuel

defaults read .GlobalPreferences com.Apple.mouse.scaling

à l'invite du terminal. Les valeurs normales sont comprises entre 0 et 3, qui peuvent être définies en déplaçant le curseur "Vitesse de suivi" dans le volet Souris des Préférences Système. Les valeurs de 0 à 3 ne désactiveront donc pas l'accélération.

Comment désactiver l'accélération

Cependant, si vous le définissez sur -1 en tapant

defaults write .GlobalPreferences com.Apple.mouse.scaling -1

dans le terminal, cela semble désactiver l'accélération et définir la vitesse de suivi de la souris sur une valeur prédéfinie constante que vous ne pouvez pas modifier.

J'ai découvert que je devais me déconnecter et me reconnecter pour que cela prenne effet. Après cela, le pixels pointer moves / meters mouse moved le ratio est constant mais malheureusement pas réglable .

Comment annuler des modifications

Pour revenir à Apple paramètres par défaut, ouvrez simplement le volet Souris des Préférences Système et modifiez la vitesse de suivi sur n'importe quoi, puis quittez les Préférences Système.

Souris ≠ Trackpad

Mac OS X stocke les paramètres de la souris et du trackpad indépendamment. Si vous souhaitez désactiver l'accélération sur un trackpad au lieu d'une souris, les instructions sont les mêmes, remplacez simplement par com.Apple.trackpad.scaling partout où vous voyez com.Apple.mouse.scaling dans ce qui précède (et utilisez évidemment le volet Trackpad des Préférences Système au lieu du volet Souris).

Remarques

Je ne citerai pas de source, car cette astuce est disponible à de nombreux endroits sur le Web. Je l'ai essayé dans OS 10.7 Lion, mais de nombreuses sources affirment utiliser 10.6 Snow Leopard.

70
Beetle