Deaktivieren der Mausbeschleunigung in X.Org (Linux)

11

Dies ist die Linux-Version meiner Frage zum Deaktivieren der Mausbeschleunigung in Mac OS X. Hoffentlich bekomme ich diesmal eine Antwort.

Ich habe die Mausbeschleunigung satt und möchte eine vollständig lineare Mausreaktion haben. Dies ist leicht mit einer der 5 Methoden (einige davon subtil impliziert) auf der X.Org-Wiki-Seite zur Zeigerbeschleunigung zu erreichen . Sie deaktivieren jedoch auch die Geschwindigkeitsskalierung .

Ich möchte keine 1: 1-Zuordnung zwischen Geräte- und Bildschirmkoordinaten. Ich möchte eine 1: N-Abbildung, bei der N eine Konstante ist . Irgendwelche Ideen?

aib
quelle

Antworten:

15

Der einzige Weg, den ich gefunden habe, der funktioniert (und den ich nur unter Ubuntu ausprobiert habe), ist mit dem xinputBefehl.

Zuerst müssen Sie die Gerätenummer für die Maus identifizieren, die Sie ändern möchten:

# xinput list
â¡ Virtual core pointer                         id=2    [master pointer  (3)]
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]
â   â³ Microsoft Microsoft 5-Button Mouse with IntelliEye(TM)   id=10   [slave  pointer  (2)]
⣠Virtual core keyboard                        id=3    [master keyboard (2)]
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]
    â³ Power Button                             id=6    [slave  keyboard (3)]
    â³ Power Button                             id=7    [slave  keyboard (3)]
    â³ CHICONY USB Keyboard                     id=8    [slave  keyboard (3)]
    â³ CHICONY USB Keyboard                     id=9    [slave  keyboard (3)]
    â³ IR-receiver inside an USB DVB receiver   id=11   [slave  keyboard (3)]

In diesem Beispiel spiele ich jetzt mit meiner Microsoft-Maus. id = 10

Nun wollen wir sehen, welche Eigenschaften dieses Gerät verarbeiten kann:

# xinput list-props 10
Device 'Microsoft Microsoft 5-Button Mouse with IntelliEye(TM)':
    ... cruft cut ...
    Device Accel Profile (259):     3
    ... cruft cut ...

Mit diesem Wert geht der Fahrer mit der Beschleunigung um:

-1: keine keine geschwindigkeitsabhängige Zeigerbeschleunigung oder -verzögerung. Wenn auch die konstante Verzögerung nicht verwendet wird, wird die Bewegungsverarbeitung unterdrückt, wodurch einige Zyklen eingespart werden.

0: klassisch (Standard) ähnlich wie altes Verhalten, aber vorhersehbarer. Wählt zwischen 'Polynom' und 'Einfach' basierend auf dem Schwellenwert = /! = 0.

1: Geräteabhängig verfügbar, wenn der Hardwaretreiber ihn installiert. Kann für Synaptik kommen.

2: Polynom Skaliert Polynom: Geschwindigkeit dient als Koeffizient, wobei die Beschleunigung der Exponent ist. Sehr brauchbar, das empfohlene Profil.

3: glatte lineare Skalen meist linear, aber mit einem glatten (nicht linearen) Start.

4: einfache Übergänge zwischen beschleunigt / nicht beschleunigt, aber mit einem glatten Übergangsbereich. Dies hat das grundsätzliche Problem der Beschleunigung auf zwei Ebenen, bei denen die Beschleunigung unabhängig von der Geschwindigkeit bleibt. Traditionell jedoch die Standardeinstellung.

5: Leistung beschleunigt durch eine Leistungsfunktion. Geschwindigkeit ist hier der Exponent. Hält sich an die Schwelle. Wird leicht schwer zu kontrollieren sein, daher ist es wichtig, dass Sie Ihre Geschwindigkeitsschätzung richtig eingestellt haben.

6: linear nur linear zu Geschwindigkeit und Beschleunigung. Einfach und sauber.

7: begrenzt steigt sanft zur Beschleunigung an und erreicht das Maximum bei der Schwelle, wo es flach wird (begrenzt ist).

Daraus können wir ersehen, dass die Beschleunigung vollständig deaktiviert wird, wenn wir diese Eigenschaft auf -1 setzen.

$ xinput set-prop 10 259 -1

Jetzt haben wir also keine Beschleunigung, aber wollen wir das? Die Maus ist jetzt etwas langsam. Leider ist das so. Bei deaktivierter Beschleunigung erhalten Sie eine 1: 1-Beziehung zwischen der Maus und dem Display. Sie bewegen die Maus um einen Punkt nach links und den Mauszeiger um ein Pixel nach links. Wenn es eine Möglichkeit gäbe, die Eingabebewegung zu multiplizieren (z. B. mit 2), wäre jedes zweite Pixel auf jeder Achse für die Maus nicht zugänglich. Das würde eine genaue Positionierung der Maus ziemlich schwierig machen. Die Empfindlichkeitseinstellung in einigen GUI-Mausbedienfeldern bewirkt genau das Gegenteil von dem, was Sie erwarten würden - das empfindlichste ist ein Verhältnis von 1: 1 - es ist die Beschleunigung, die es so viel schneller erscheinen lässt.

Sie wollen also eine schnellere Bewegung, aber keine Beschleunigung. Das können Sie nur mit Hardware. Grundsätzlich müssen Sie eine empfindlichere Maus kaufen. Suchen Sie nach einem mit einer höheren DPI (Dots Per Inch - ja, genau wie bei einem Drucker). Ich finde, mein altes Microsoft IntelliEye ist empfindlich genug, wenn die Beschleunigung deaktiviert ist, um verwendet werden zu können.

Oder ist Ihre Maus einfach zu empfindlich? Auch bei deaktivierter Beschleunigung ist es zu schnell für Ihren Geschmack? Nun, dort ist die

Device Accel Constant Deceleration (260):      1.0000

Einstellung kommt herein. Dies ist ein konstantes Verzögerungs- (oder Desinsibilisierungs-) Verhältnis. Standardmäßig ist es 1: 1, es wird jedoch eine beliebige Zahl (gerade Brüche) darüber verwendet. So erhalten Sie eine leichte Verlangsamung der Maus:

$ xinput set-prop 10 260 1.2

Oder eine massive Verlangsamung für wirklich heikle Arbeit:

$ xinput set-prop 10 260 10

Oder normal wieder:

$ xinput set-prop 10 260 1

Dies funktioniert auch dann, wenn das Beschleunigungsprofil auf -1 (Deaktiviert) eingestellt ist.

Majenko
quelle
Was passiert, wenn ich mit einer hochauflösenden Maus weniger Empfindlichkeit haben möchte ? Nein, leider funktioniert das 1: 1-Mapping einfach nicht. Und der nächste Wert ist nicht 1: 2, Sie könnten beispielsweise 1: 1,2 tun. Tatsächlich bin ich mir ziemlich sicher, dass der aktuelle Beschleunigungscode eine Million verschiedene Möglichkeiten bietet, die Geschwindigkeiten zu optimieren und eine Auflösung von Subpixeln zu erreichen. Wenn es nur ein "keine Beschleunigung" -Profil gäbe - im Gegensatz zu "vollständig deaktivierte Beschleunigungsunterprogramme".
Aib
@aib Überprüfen Sie meine Bearbeitung
Majenko
Es tut mir leid, ich brauche keine Zeigerverzögerung. (Nun, vielleicht ist es das, aber nachdem ich meine Mausbewegung vergrößert habe und ohne eine neue Maus zu kaufen, danke.)
aib
Dies sollte akzeptiert werden. Mir war nicht bewusst, dass die Verzögerung schwebend und nicht nur ganzzahlig sein kann. Vielen Dank! Das Profil none schaltet die Beschleunigung wirklich aus (im Gegensatz zu Windows).
inf3rno
In Debian Stretch scheinen diese nicht mehr zu funktionieren: Nach dem Upgrade ist die Eigenschaft Device Accel Constant Deceleration verschwunden, und was ich für diese Maus (xinput --list-props) habe, scheint sie nicht mehr zu beeinflussen (so dass ich sie habe) eine Nacht nutzlose Maus).
Jubatian
2

Wenn ich mir die Quellen von X.org ansehe, mit einem benutzerdefinierten Server herumspiele und einige obsessive Tests mit meiner Maus durchführe, kann ich mit Sicherheit sagen, dass das derzeit eingeschränkte Profil (7) dies erreicht, wenn der thresholdWert auf 0 gesetzt wird. Der accelerationWert wird dann zur Geschwindigkeit Skalierer (Skalar?).

So:

xinput set-prop <device> "Device Accel Profile" 7
xset m <velocity> 0

Der zweite Teil kann auch über das Maus-Einstellungsfeld Ihrer Desktop-Umgebung festgelegt werden. Vergessen Sie nicht, dass es x/yfür nicht ganzzahlige Werte in Form sein muss, z 16/10. B. für 1.6.

Es gibt auch einige andere Einstellungen (Verzögerung usw.), die angepasst werden müssen, dies behebt jedoch den schlimmsten Teil des Problems. Einige Konfigurationsdateien sollten aus Gründen der Beständigkeit bearbeitet werden, aber auch hier ist es wichtig, dass dies möglich ist.

Bearbeiten: Für die Dauerhaftigkeit können Sie dies zu Ihrem hinzufügen xorg.xconf:

Section "InputClass"
        Identifier "Mouse with No Acceleration"
        MatchIsPointer "yes"
        MatchProduct "Mouse"
        Option "AccelerationProfile" "7"
EndSection

Von da an können Sie, wie bereits erwähnt, die Mauseinstellungen Ihrer Desktop-Umgebung verwenden. Wenn Sie jedoch eine vollständige xorg.confLösung wünschen :

Section "InputClass"
        Identifier "Mouse With No Acceleration"
        MatchIsPointer "yes"
        MatchProduct "Mouse"
        Option "AccelerationProfile"     "7" # "limited" profile
        Option "AccelerationNumerator"   "2" # these adjust the sensitivity
        Option "AccelerationDenominator" "1" # these adjust the sensitivity
        Option "AccelerationThreshold"   "0" # this disables acceleration
                                             # in the "limited" profile
EndSection
aib
quelle
<3 Danke. Funktioniert sogar im Schlafmodus.
Simon A. Eugster
0

Ich weiß, dass dies alt ist, aber ich denke, es lohnt sich, eine Antwort auf eine bereits gestellte Frage hinzuzufügen. XSET erledigt den Job höchstwahrscheinlich für Sie. Der Befehl, den ich ausführte, war xset m 1 1...

Den Manpage-Inhalt für xset habe ich hier aus xset (1) für Sie für die Mausoptionen kuratiert :

Maus

Die Option m steuert die Mausparameter. es kann mit 'm' abgekürzt werden. Die Parameter für die Maus sind acceleration' andSchwelle '. Die Beschleunigung kann als Ganzzahl oder als einfacher Bruch angegeben werden. Die Maus oder ein beliebiger Zeiger, mit dem das Gerät verbunden ist, wird acceleration' times as fast when it travels more thanin kurzer Zeit Schwellenpixel erreichen. Auf diese Weise kann die Maus für eine präzise Ausrichtung verwendet werden, wenn sie langsam bewegt wird. Sie kann jedoch so eingestellt werden, dass sie sich bei Bedarf mit einem Handgriff über den Bildschirm bewegt. Einer oder beide Parameter für die Option m können weggelassen werden. Wenn jedoch nur einer angegeben wird, wird dies als Beschleunigung interpretiert. Wenn keine Parameter oder das Flag 'Standard' verwendet werden, werden die Systemstandards festgelegt.

Wenn der threshold' parameter is provided and 0, theBeschleunigungsparameter '> im Exponenten einer natürlicheren und kontinuierlicheren Formel verwendet wird, bietet er eine präzise Steuerung für Zeitlupe, aber eine große Reichweite für schnelle Bewegungen und einen progressiven Übergang für Bewegungen dazwischen. Der empfohlene Beschleunigungswert beträgt in diesem Fall 3/2 bis 2, ist jedoch nicht auf diesen Bereich beschränkt.

Haftungsausschluss: Dies überlebt einen Relogin / Neustart nicht ohne zusätzliche Tricks ...

N_mag
quelle