X.Orgでのマウスアクセラレーションの無効化(Linux)


11

これは、Mac OS Xでのマウスアクセラレーションの無効化の質問のLinuxバージョンです。今回は答えが得られることを願っています。

私はマウスの加速にうんざりしており、完全に線形のマウス応答が必要です。これは、X.Org wikiページのポインターアクセラレーションに関する 5つ程度のメソッド(多少は暗示的)のいずれかを使用して簡単に達成できます。ただし、速度スケーリングも無効にします

デバイスと画面の座標を1対1でマッピングしたくありません。Nが定数である1:Nマッピングが必要です。何か案は?

回答:


15

動作することがわかった唯一の方法(およびUbuntuでのみ試しました)は、xinputコマンドを使用することです。

最初に、変更するマウスのデバイス番号を識別する必要があります。

# 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)]

さて、この例では、Microsoftマウスで遊んでいます。 id = 10

次に、このデバイスが処理できるプロパティを見てみましょう。

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

この値は、ドライバーが加速を処理する方法です。

-1:なし速度依存のポインター加速または減速はありません。一定の減速も使用されない場合、モーション処理が抑制され、いくつかのサイクルが節約されます。

0:クラシック(デフォルト)は古い動作に似ていますが、より予測可能です。しきい値= /!= 0に基づいて、「多項式」と「単純」を選択します。

1:ハードウェアドライバーがインストールする場合、デバイスに依存します。シナプスのために来るかもしれません。

2:多項式スケール多項式:速度は係数として機能し、加速度は指数です。非常に使いやすい推奨プロファイル。

3:滑らかな線形スケールはほとんどが線形ですが、滑らかな(非線形の)開始です。

4:加速/非加速間の単純な遷移。ただし、遷移範囲は滑らかです。これには、加速が速度とは無関係にとどまる2つのニベで加速するという基本的な問題があります。ただし、従来はデフォルトです。

5:電力関数により電力が加速します。ここで速度は指数です。しきい値に準拠しています。簡単に制御するのは難しくなりますので、速度推定を適切に調整することが重要です。

6:速度と加速度に対して直線的な直線。シンプルできれい。

7:制限された加速がスムーズに加速し、しきい値で最大になり、そこで平坦になります(制限されます)。

そのため、このプロパティを-1に設定すると、加速が完全に無効になることがわかります。

$ xinput set-prop 10 259 -1

それで今は加速がありませんが、それは私たちが望むものですか?マウスは少し遅くなりました。悲しいことにそれはそうです。アクセラレーションを無効にすると、マウスとディスプレイの間に1対1の関係が得られます。マウスを1 ドット左に移動し、マウスポインターを1ピクセル左に移動します。入力の動きを乗算する方法がある場合(2倍など)、各軸上の1つおきのピクセルはマウスにアクセスできなくなります。それは、マウスの正確な位置決めをかなり難しくします。一部のGUIマウスコントロールパネルの「感度」設定は、実際に期待するものとは反対のことを行います-最も敏感なのは1:1の比率です-それは非常に速く見える加速です。

したがって、より速い動きが必要ですが、加速は必要ありません。それを行う唯一の方法はハードウェアです。基本的に、より敏感なマウスを購入する必要があります。DPIが高いものを探してください(1インチあたりのドット数-はい、プリンターのように)。私の古いMicrosoft IntelliEyeは、アクセラレーションが無効になっているため、使用できるほど敏感です。

または、マウスの感度が高すぎますか?加速を無効にしたとしても、あなたの好みには速すぎますか?まあ、それはどこです

Device Accel Constant Deceleration (260):      1.0000

設定が入ります。これは、一定の減速(または脱線)比です。デフォルトでは1:1ですが、それ以上の数(偶数でも)を取ります。マウスをわずかに遅くするには:

$ xinput set-prop 10 260 1.2

または、非常にデリケートな作業の大幅な減速:

$ xinput set-prop 10 260 10

または、通常に戻します。

$ xinput set-prop 10 260 1

これは、加速プロファイルが-1(無効)に設定されている場合でも機能します。


私が欲しい場合はどうなるの少ない高DPIマウス感度を?いいえ、申し訳ありませんが、1:1マッピングは機能しません。そして、次の値は1:2ではなく、たとえば1:1.2になります。実際、現在のアクセラレーションコードには、速度を微調整してサブピクセル解像度を達成するためのさまざまな方法があります。「アクセラレーションサブルーチンを完全に無効にする」とは対照的に、「アクセラレーションなし」プロファイルがある場合のみ
aib

@aib編集内容を確認する
-Majenko

すみません、それは私が必要とするポインター減速ではありません。(まあ、そうかもしれませんが、マウスの動きを拡大した後、新しいマウスを購入することなく、ありがとうございます。)
aib

これは受け入れられるべきです。減速度が整数だけでなく浮動小数点数になることもありませんでした。ありがとう!noneプロファイルは、本当に(ウィンドウとは異なり)加速をオフにします。
inf3rno

Debian Stretchでは、これらは動作しなくなったようです。アップグレード後、Device Accel Constant Decelerationプロパティが失われ、このマウス(xinput --list-props)に対する影響はもう影響しないようです(そのままにしておきます)夜の役に立たないマウス)。
ジュバティアン

2

カスタムサーバーで遊んで、私のマウスを使っていくつかの強迫観念のテストを行って、X.orgのソースを見て、私は安全に現在のことを言うことができる限られた時にプロファイル(7)は、これを実現しthresholdた値が0に設定されaccelerationた値は、速度となりスケーラー(スカラー?)。

そう:

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

2番目の部分は、デスクトップ環境のマウス設定パネルを使用して設定することもできます。1.6 x/yなどの非整数値の形式にする必要があることを忘れないでください16/10

調整する他の設定(減速など)もありますが、これにより問題の最悪の部分が処理されます。一部の構成ファイルは永続的に編集する必要がありますが、重要なことは、それが可能であることです。

編集:永続性のために、これをあなたのに追加することができますxorg.xconf

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

そこから、先ほど述べたように、デスクトップ環境のマウス設定を使用できます。ただし、完全なxorg.confソリューションが必要な場合:

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

<3ありがとう。スリープモードでも動作します。
サイモンA.エグスター

0

私はこれが古いことを知っていますが、すでに尋ねられた質問に答えを追加する価値があると思います。XSETがおそらくあなたのために仕事をします。私が実行したコマンドはxset m 1 1...

xsetのmanページの内容は、マウスオプションのxset(1)からここでキュレートしました:

マウス

mオプションは、マウスのパラメーターを制御します。「m」と略される場合があります。マウスのパラメーターはacceleration' andしきい値です。加速度は整数または単純な小数として指定できます。マウス、またはマシンが接続されているポインターはacceleration' times as fast when it travels more than、短時間でしきい値のピクセルになります。このように、マウスはゆっくり動かしたときに正確な位置合わせに使用できますが、必要に応じて手首を軽くたたいて画面上を移動するように設定できます。mオプションの一方または両方のパラメーターは省略できますが、一方のみを指定した場合は、加速度として解釈されます。パラメータまたはフラグ 'default'が使用されていない場合、システムのデフォルトが設定されます。

threshold' parameter is provided and 0, the加速パラメータがより自然で連続的な式の指数で使用される場合、スローモーションの正確な制御を提供しますが、ファーストモーションのリーチは大きく、その間のモーションの漸進的な遷移を提供します。この場合の推奨「加速」値は3/2〜2ですが、その範囲に限定されません。

免責事項:これはいくつかの余分なトリックなしで再ログイン/再起動を生き残りません...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.