マウスのアクセラレーション

提供: ArchWiki
2017年7月13日 (木) 00:12時点におけるKusakata.bot (トーク | 投稿記録)による版 (Pkg/AUR テンプレートの更新)
ナビゲーションに移動 検索に移動

関連記事

マウスのアクセラレーションを設定する方法は使用しているウィンドウプロトコル (Xorg または Wayland) によって異なります。

  • Xorg ではマウスのアクセラレーションを設定する方法は複数あります:
  • xorg の設定ファイルを編集する。
  • xorg-server-utils[リンク切れ: パッケージが存在しません] パッケージには xsetxinput が入っています。
  • ほとんどのデスクトップ環境にはマウスを設定するための設定 GUI が備わっています。
  • Wayland を使用している場合、libinput でマウスイベントを制御できます。libinput による設定を反映させるのはコンポジタの仕事です。全てのコンポジタで共通の設定方法はまだ存在しません [1]

マウスのアクセラレーションを設定する

xorg 設定

詳しくは man xorg.conf を見て下さい。例:

/etc/X11/xorg.conf.d/50-mouse-acceleration.conf
Section "InputClass"
	Identifier "My Mouse"
	MatchIsPointer "yes"
# set the following to 1 1 0 respectively to disable acceleration.
	Option "AccelerationNumerator" "2"
	Option "AccelerationDenominator" "1"
	Option "AccelerationThreshold" "4"
EndSection
/etc/X11/xorg.conf.d/50-mouse-deceleration.conf
Section "InputClass"
	Identifier "My Mouse"
	MatchIsPointer "yes"
# some curved deceleration
#	Option "AdaptiveDeceleration" "2"
# linear deceleration (mouse speed reduction)
	Option "ConstantDeceleration" "2"
EndSection

class セクションの中で "MatchProduct", "MatchVendor" などの match を使うことで、特定のハードウェアだけに設定を適用することもできます。lsusb を実行することで match で使用できるプロダクト名とメーカーを確認できます:

$ lsusb -v | grep -e idProduct -e idVendor

デバイスがわからない場合、xinput list を実行してみてください。Logitech Unifying Recceiver を使用しているデバイスは同一の USB 接続を共有するため、lsusb を使用してもマウスは認識されません。

xset を使う

現在の値を知るには:

$ xset q | grep -A 1 Pointer

新しい値をセットするには:

$ xset m ACCELERATION THRESHOLD

ACCELERATION で設定された倍だけデフォルトよりはやく動き、マウスを最小 THRESHOLD ピクセル以上動かすと動きだします。ACCELERATION は分数にすることもでき、マウスをスローダウンさせたいなら 1/2。3 では速すぎるが、2では遅すぎるときには 5/2 などにします。

デフォルトの設定に戻すには:

$ xset m default

詳しい情報は man xset を見て下さい。

設定を永続的にするには、xorg の設定(上記)をするか xprofile にコマンドを加えます。後者はディスプレイマネージャにおけるマウスの速度に影響がありません。

xinput を使う

まず、接続されているデバイスのリストを得ます (バーチャルポインタは無視します):

$ xinput list

ID を覚えておいてください。ID が変わってしまう場合、コマンドでフルネームを使うこともできます。

利用できるプロパティと現在の値のリストを得ます

$ xinput list-props 9

9 は使いたいデバイスの ID です。もしくは名前を使います

$ xinput list-props 'Bobs mouse brand'

Bobs mouse brandxinput list によって表示されたマウスの名前にしてください

例として、Constant Deceleration プロパティを 2 にするには:

$ xinput list-props 9
Device 'mouse brand':
       Device Enabled (121):   1
       Device Accel Profile (240):     0
       Device Accel Constant Deceleration (241):       1.000000
       Device Accel Adaptive Deceleration (243):       1.000000
       Device Accel Velocity Scaling (244):    10.000000
$ xinput --set-prop 'mouse brand' 'Device Accel Constant Deceleration' 2

設定を永続的にするには、xorg の設定(上記)をするか xprofile にコマンドを加えます。後者はディスプレイマネージャにおけるマウスの速度には影響がありません。

設定サンプル

あなたの期待通りのマウス設定をするには複数の方法を使わなくてはいけないかもしれません。一般的なオプティカルマウスを設定のサンプルです:

まず、デフォルトの移動速度を3倍遅くします。

$ xinput --set-prop 9 'Device Accel Constant Deceleration' 3 &

それから、アクセラレーションを有効にして6ユニット動いた後、3倍速くします。

$ xset mouse 3 6 &

結果に満足したら、コマンドを ~/.xinitrc に保存します。

マウスのアクセラレーションの無効化

マウスのアクセラレーションは最近の X サーバーのバージョンでは劇的に変わりました、xset を使ってアクセラレーションを無効化することは今までのようにはできませんし推奨されません。

最近の PointerAcceleration での変更は ここ で読むことができます。

全てのアクセラレーション/デクラレーションを無効化するには、次のファイルを作ります:

/etc/X11/xorg.conf.d/50-mouse-acceleration.conf
Section "InputClass"
	Identifier "My Mouse"
	MatchIsPointer "yes"
	Option "AccelerationProfile" "-1"
	Option "AccelerationScheme" "none"
	Option "AccelSpeed" "-1"
EndSection

そして X を再起動してください。

libinput-1.1.0-1 と xf86-input-libinput-0.15.0-1 から物理的なマウスの移動と仮想上のマウスの移動を1対1でマッピングするフラットアクセラレーションプロファイルを使用することができます。有効化するには以下のファイルを作成してください:

/etc/X11/xorg.conf.d/50-mouse-acceleration.conf
Section "InputClass"
	Identifier "My Mouse"
	Driver "libinput"
	MatchIsPointer "yes"
	Option "AccelProfile" "flat"
EndSection

そして X を再起動してください。

ノート: libinput Accel Speed は -1 から 1 までの値で設定できます。例えば -0.3 は通常速度の 70% で、0.5 は 150% になります。マウスの速度を 50% にしたい場合は xinput --set-prop 8 'libinput Accel Speed' -0.5 を使ってください。