web-dev-qa-db-ja.com

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

これは私のLinuxバージョンです Mac OS Xでマウスアクセラレーションを無効にする 質問。今回はお答えいただければ幸いです。

私はマウスの加速にうんざりしていて、完全に線形のマウス応答が欲しいです。これは、 ポインターアクセラレーションに関するX.Org wikiページ の5つほどの方法(微妙に暗示されているものもあります)のいずれかを介して簡単に達成できます。ただし、速度スケーリングも無効にします

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

11
aib

X.orgのソースを調べ、カスタムサーバーで遊んで、マウスで強迫的なテストを行っていると、現在のlimitedプロファイル(7)は、threshold値は0に設定されます。acceleration値は速度スケーラー(スカラー?)になります。

そう:

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

2番目の部分は、デスクトップ環境のマウス設定パネルを使用して設定することもできます。整数以外の値の場合は、x/y形式である必要があることを忘れないでください。 1.6の場合は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
2
aib

私が見つけた唯一の方法は(そして私は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:classic(デフォルト)古い動作に似ていますが、より予測可能です。しきい値= /!= 0に基づいて、「多項式」と「単純」のどちらかを選択します。

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

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

3:スムーズな線形ほぼ線形にスケーリングしますが、開始はスムーズ(非線形)です。

4:simple加速/非加速間の遷移ですが、遷移範囲はスムーズです。これには、加速が速度に依存しない2つのニボーで加速するという根本的な問題があります。ただし、従来はデフォルトです。

5:powerべき関数によって加速します。ここでは速度が指数です。しきい値に準拠します。制御が難しくなるため、速度推定を適切に調整することが重要です。

6:linear速度と加速度に対して線形です。シンプルでクリーン。

7:制限付きスムーズに加速し、しきい値で最大になり、フラットになります(制限付き)。

したがって、このプロパティを-1に設定すると、アクセラレーションが完全に無効になることがわかります。

$ xinput set-prop 10 259 -1

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

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

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

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(無効)に設定されている場合でも機能します。

15
Majenko

これは古いことは知っていますが、すでに尋ねられた質問に答えを追加することは価値があると思います。 [〜#〜] xset [〜#〜]があなたに代わって仕事をするでしょう。私が実行したコマンドはxset m 1 1.。

ここでキュレーションしたxsetのmanページの内容 xset(1) マウスオプション用:

マウス

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

threshold' parameter is provided and 0, theacceleration '>パラメータは、より自然で連続的な式の指数で使用され、スローモーションでは正確に制御できますが、高速モーションではリーチが大きく、その間のモーションではプログレッシブ遷移が行われます。この場合の推奨される「加速」値は3/2から2ですが、その範囲に限定されません。

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

0
N_mag