「マウスのアクセラレーション」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(1版 をインポートしました)
(→‎マウスのアクセラレーションの無効化: KDE Plasma のマウス設定からを翻訳して追加)
 
(5人の利用者による、間の11版が非表示)
2行目: 2行目:
 
[[Category:X サーバー]]
 
[[Category:X サーバー]]
 
[[en:Mouse acceleration]]
 
[[en:Mouse acceleration]]
  +
[[zh-hans:Mouse acceleration]]
マウスのアクセラレーションを設定する方法はいくつかあります:
 
  +
{{Related articles start}}
  +
{{Related|マウスボタン}}
  +
{{Related|マウスのポーリングレート}}
  +
{{Related articles end}}
   
  +
マウスのアクセラレーションを設定する方法は使用しているウィンドウプロトコル ([[Xorg]] または [[Wayland]]) によって異なります。
# xorg の設定ファイルを編集する
 
  +
# {{Pkg|xorg-server-utils}} パッケージにはシェルやスクリプトから設定を変えるためのプログラムが2つ入っています:
 
  +
* [[Xorg]] ではマウスのアクセラレーションを設定する方法は複数あります:
#* {{Ic|xset}}
 
  +
:* xorg の設定ファイルを編集する。
#* {{Ic|xinput}}
 
  +
:* {{Pkg|xorg-xset}} と {{Pkg|xorg-xinput}} パッケージにはそれぞれ {{Ic|xset}} と {{Ic|xinput}} が入っています。
# ほとんどの[[Desktop Environment|デスクトップ環境]]にはマウスを設定するための設定 GUI が備わっています。簡単に使えるはずです。
 
  +
:* ほとんどの[[デスクトップ環境]]にはマウスを設定するための設定 GUI が備わっています。
  +
  +
* [[Wayland]] を使用している場合、[[libinput]] でマウスイベントを制御できます。libinput による設定を反映させるのはコンポジタの仕事です。全てのコンポジタで共通の設定方法はまだ存在しません [https://www.reddit.com/r/gnome/comments/3upay2/wayland_where_are_the_mouse_acceleration_options/]。
  +
* [[GNOME]] は独自にマウスのアクセラレーションを管理します。{{Pkg|dconf-editor}} をインストールして {{ic|org/gnome/desktop/peripherals/mouse/acceleration-profile}} の値を設定することで "adaptive" と "flat" プロファイルを選択できます。また、{{Pkg|gnome-tweaks}} を使って {{ic|org/gnome/desktop/peripherals/mouse/acceleration-profile}} を編集することも可能です。
  +
  +
== libinput を使用する場合のマウスの速度 ==
  +
  +
adaptive ポインターアクセラレーションプロファイルを使用している場合、[[libinput]] は DPI と {{ic|Acceleration Speed}} パラメータに基づいてマウスのアクセラレーションを計算します [https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html]。libinput は [[evdev]] によって報告された解像度を使用します [https://wayland.freedesktop.org/libinput/doc/latest/motion_normalization.html]。{{ic|xset m}} によるフィードバック設定は無視されます。flat ポインターアクセラレーションプロファイルを使用している場合、ポインターの速度に関係なくアクセラレーションは一定になります。デバイスと画面上のポインタが1対1で移動します。
  +
  +
=== 速度を変更する ===
  +
  +
{{ic|xinput list}} でデバイスの id を確認して以下のコマンドでアクセラレーション速度を設定してください。アクセラレーション速度は [-1,1] の範囲で指定する必要があります。アクセラレーション速度の値によってどのように変化するのか [https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html#ptraccel-linear こちらの図] で確認することができます。
  +
  +
$ xinput --set-prop <device id> 'libinput Accel Speed' <acceleration factor>
  +
  +
以下のコマンドで変更結果を確認できます:
  +
  +
$ xinput --list-props <device id>
  +
  +
=== 永続的な設定 ===
  +
  +
libinput は設定オプションを保存せず、設定の管理は呼び出し側に任せています。Wayland ではデスクトップ環境によって設定が適用されます。X では {{Pkg|xf86-input-libinput}} が xorg の設定ファイルを読み込んでオプションを適用します [https://wayland.freedesktop.org/libinput/doc/latest/faq.html#faq_config_options]。X で設定を永続化するには以下のようなファイルを作成してください:
  +
  +
{{hc|/etc/X11/xorg.conf.d/99-libinput-custom-config.conf|
  +
Section "InputClass"
  +
Identifier "<something to identify this snippet>"
  +
MatchDriver "libinput"
  +
MatchProduct "<substring of the device name>"
  +
Option "AccelSpeed" "<e.g. 0.3>"
  +
EndSection
  +
}}
  +
  +
他のオプションについては {{man|4|libinput}} を参照。
   
 
==マウスのアクセラレーションを設定する==
 
==マウスのアクセラレーションを設定する==
 
===xorg 設定===
 
===xorg 設定===
詳しくは {{Ic|man xorg.conf}} を見て下さい。
+
詳しくは {{man|5|xorg.conf}} を見て下さい。例:
 
例:
 
   
 
{{hc|/etc/X11/xorg.conf.d/50-mouse-acceleration.conf|<nowiki>
 
{{hc|/etc/X11/xorg.conf.d/50-mouse-acceleration.conf|<nowiki>
38行目: 73行目:
 
</nowiki>}}
 
</nowiki>}}
   
class セクションの中で "MatchProduct", "MatchVendor" などの match を使うことで、特定のハードウェアだけに設定を適用することもできます。
+
class セクションの中で "MatchProduct", "MatchVendor" などの match を使うことで、特定のハードウェアだけに設定を適用することもできます。{{ic|lsusb}} を実行することで match で使用できるプロダクト名とメーカーを確認できます:
  +
$ lsusb -v | grep -e idProduct -e idVendor
   
  +
デバイスがわからない場合、{{ic|xinput list}} を実行してみてください。Logitech Unifying Recceiver を使用しているデバイスは同一の USB 接続を共有するため、{{ic|lsusb}} を使用してもマウスは認識されません。
=== xset を使う ===
 
 
現在の値を知るには:
 
$ xset q | grep -A 1 Pointer
 
 
新しい値をセットするには:
 
$ xset m ACCELERATION THRESHOLD
 
 
ACCELERATION で設定された倍だけデフォルトよりはやく動き、マウスを最小 THRESHOLD ピクセル以上動かすと動きだします。ACCELERATION は分数にすることもでき、マウスをスローダウンさせたいなら 1/2。3 では速すぎるが、2では遅すぎるときには 5/2 などにします。
 
 
デフォルトの設定に戻すには:
 
$ xset m default
 
 
詳しい情報は {{Ic|man xset}} を見て下さい。
 
 
設定を永続的にするには、xorg の設定(上記)をするか [[xprofile]] にコマンドを加えます。後者は[[Display Manager|ディスプレイマネージャ]]に速度的な影響がありません。
 
   
 
=== xinput を使う ===
 
=== xinput を使う ===
83行目: 104行目:
 
$ xinput --set-prop &#39;''mouse brand''&#39; 'Device Accel Constant Deceleration' 2
 
$ xinput --set-prop &#39;''mouse brand''&#39; 'Device Accel Constant Deceleration' 2
   
設定を永続的にするには、xorg の設定(上記)をするか [[xprofile|xprofile]] にコマンドを加えます。後者は[[Display Manager|ディスプレイマネージャ]]に速度的な影響がありません。
+
設定を永続的にするには、xorg の設定(上記)をするか [[xprofile]] にコマンドを加えます。後者は[[ディスプレイマネージャ]]におけるマウスの速度には影響がありません。
   
 
=== 設定サンプル ===
 
=== 設定サンプル ===
97行目: 118行目:
 
== マウスのアクセラレーションの無効化 ==
 
== マウスのアクセラレーションの無効化 ==
   
マウスのアクセラレーションは最近の X サーバーのバージョンでは劇的に変わりました、{{Ic|xset}} を使ってアクセラレーションを無効化することは今までのようにはできませんし推奨されません。
+
マウスのアクセラレーションは最近の X サーバーのバージョンでは劇的に変わりました、{{Ic|xset}} を使ってアクセラレーションを無効化することは今までのようにはできませんし推奨されません。最近の {{Ic|PointerAcceleration}} での変更は [http://xorg.freedesktop.org/wiki/Development/Documentation/PointerAcceleration#Introduction ここ] で読むことができます
   
  +
マウスアクセラレーションを無効化すると物理的なマウスの動きを画面上のマウスの動きに変えるときに線形関数が使われるようになります。マウスの速度設定は線形関数の傾きを制御します。
最近の {{Ic|PointerAcceleration}} での変更は [http://xorg.freedesktop.org/wiki/Development/Documentation/PointerAcceleration#Introduction ここ] で読むことができます。
 
   
 
全てのアクセラレーション/デクラレーションを無効化するには、次のファイルを作ります:
 
全てのアクセラレーション/デクラレーションを無効化するには、次のファイルを作ります:
108行目: 129行目:
 
Option "AccelerationProfile" "-1"
 
Option "AccelerationProfile" "-1"
 
Option "AccelerationScheme" "none"
 
Option "AccelerationScheme" "none"
  +
Option "AccelSpeed" "-1"
 
EndSection
 
EndSection
 
</nowiki>}}
 
</nowiki>}}
   
 
そして X を再起動してください。
 
そして X を再起動してください。
  +
  +
=== libinput を使う ===
  +
  +
{{Pkg|libinput}}-1.1.0-1 と {{Pkg|xf86-input-libinput}}-0.15.0-1 から物理的なマウスの移動と仮想上のマウスの移動を1対1でマッピングするフラットアクセラレーションプロファイルを使用することができます。有効化するには以下のファイルを作成してください:
  +
  +
{{hc|/etc/X11/xorg.conf.d/50-mouse-acceleration.conf|2=
  +
Section "InputClass"
  +
Identifier "My Mouse"
  +
Driver "libinput"
  +
MatchIsPointer "yes"
  +
Option "AccelProfile" "flat"
  +
EndSection
  +
}}
  +
  +
特定の条件下では (たとえば、Plasma 5.13 でマウスの {{Ic|Pointer Speed}} 値が異なる場合)、X を使用していても、デスクトップ環境がこれらの設定ファイルを一部をオーバーライドしようとする可能性があることに注意してください。
  +
  +
別のオプションは次のコマンドです:
  +
  +
$ xinput --set-prop ''device-id'' 'libinput Accel Profile Enabled' 0, 1
  +
  +
これは X を再起動する必要はありませんが、永続的ではありません。[[自動起動]] を使用して自動的に実行するように設定することもできます。
  +
  +
アクセラレーションが無効になっていることを確認するには、以下のコマンドを実行してください:
  +
  +
$ xinput list-props {1..50} 2>/dev/null | fgrep 'libinput Accel Profile Enabled ('
  +
  +
プロファイルが {{ic|0, 1}} となっているはずです。
  +
  +
=== KDE Plasma のマウス設定から ===
  +
  +
KDE Plasma は、システム設定からのマウスアクセラレーションの無効化をサポートしています。システム設定を開き、''Input Devices > Mouse > Acceleration Profile'' ''Flat'' を選択します。
  +
  +
{{Note|1=
  +
* この設定は、KDE ​​Plasma を使用する場合にのみ適用されます。
  +
* [[Xorg]] の KDE Plasma マウス設定からマウス加速設定を変更しようとしても、{{Pkg|xf86-input-libinput}} の [https://bugs.kde.org/show_bug.cgi?id=468217#c3 バグ]が原因で機能しません。このバグの回避策として [[#libinput を使う]] メソッドを使用してください。
  +
}}

2024年2月3日 (土) 06:39時点における最新版

関連記事

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

  • Xorg ではマウスのアクセラレーションを設定する方法は複数あります:
  • xorg の設定ファイルを編集する。
  • xorg-xsetxorg-xinput パッケージにはそれぞれ xsetxinput が入っています。
  • ほとんどのデスクトップ環境にはマウスを設定するための設定 GUI が備わっています。
  • Wayland を使用している場合、libinput でマウスイベントを制御できます。libinput による設定を反映させるのはコンポジタの仕事です。全てのコンポジタで共通の設定方法はまだ存在しません [1]
  • GNOME は独自にマウスのアクセラレーションを管理します。dconf-editor をインストールして org/gnome/desktop/peripherals/mouse/acceleration-profile の値を設定することで "adaptive" と "flat" プロファイルを選択できます。また、gnome-tweaks を使って org/gnome/desktop/peripherals/mouse/acceleration-profile を編集することも可能です。

libinput を使用する場合のマウスの速度

adaptive ポインターアクセラレーションプロファイルを使用している場合、libinput は DPI と Acceleration Speed パラメータに基づいてマウスのアクセラレーションを計算します [2]。libinput は evdev によって報告された解像度を使用します [3]xset m によるフィードバック設定は無視されます。flat ポインターアクセラレーションプロファイルを使用している場合、ポインターの速度に関係なくアクセラレーションは一定になります。デバイスと画面上のポインタが1対1で移動します。

速度を変更する

xinput list でデバイスの id を確認して以下のコマンドでアクセラレーション速度を設定してください。アクセラレーション速度は [-1,1] の範囲で指定する必要があります。アクセラレーション速度の値によってどのように変化するのか こちらの図 で確認することができます。

$ xinput --set-prop <device id> 'libinput Accel Speed' <acceleration factor>

以下のコマンドで変更結果を確認できます:

$ xinput --list-props <device id>

永続的な設定

libinput は設定オプションを保存せず、設定の管理は呼び出し側に任せています。Wayland ではデスクトップ環境によって設定が適用されます。X では xf86-input-libinput が xorg の設定ファイルを読み込んでオプションを適用します [4]。X で設定を永続化するには以下のようなファイルを作成してください:

/etc/X11/xorg.conf.d/99-libinput-custom-config.conf
Section "InputClass"
  Identifier "<something to identify this snippet>"
  MatchDriver "libinput"
  MatchProduct "<substring of the device name>"
  Option "AccelSpeed" "<e.g. 0.3>"
EndSection

他のオプションについては libinput(4) を参照。

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

xorg 設定

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

/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 を使用してもマウスは認識されません。

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 を使う

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

特定の条件下では (たとえば、Plasma 5.13 でマウスの Pointer Speed 値が異なる場合)、X を使用していても、デスクトップ環境がこれらの設定ファイルを一部をオーバーライドしようとする可能性があることに注意してください。

別のオプションは次のコマンドです:

$ xinput --set-prop device-id 'libinput Accel Profile Enabled' 0, 1

これは X を再起動する必要はありませんが、永続的ではありません。自動起動 を使用して自動的に実行するように設定することもできます。

アクセラレーションが無効になっていることを確認するには、以下のコマンドを実行してください:

$ xinput list-props {1..50} 2>/dev/null | fgrep 'libinput Accel Profile Enabled ('

プロファイルが 0, 1 となっているはずです。

KDE Plasma のマウス設定から

KDE Plasma は、システム設定からのマウスアクセラレーションの無効化をサポートしています。システム設定を開き、Input Devices > Mouse > Acceleration Profile Flat を選択します。

ノート: * この設定は、KDE ​​Plasma を使用する場合にのみ適用されます。
  • Xorg の KDE Plasma マウス設定からマウス加速設定を変更しようとしても、xf86-input-libinputバグが原因で機能しません。このバグの回避策として #libinput を使う メソッドを使用してください。