※このブログではサーバー運用、技術の検証等の費用のため広告をいれています。
記事が見づらいなどの問題がありましたらContactからお知らせください。


【Ubuntu】ノートPCのタッチパッドの感度が高すぎる問題を解決

ノートPC xinput タッチパッド マウス ubuntu

投稿日:2020年11月22日

このエントリーをはてなブックマークに追加
Ubuntuを使っているとまれに入力デバイスに対しての挙動が気に入らない場合があります。この記事では、xinputコマンドを使ってタッチパッドの感度の高さを変更します。

はじめに

タッチパッドの感度が高すぎる?

私は普段遣いのPCとしてHPのSpectreX360にUbuntu20.04LTSをインストールして使用しているのですが、プログラミングなどをしているとふいにタッチパッドに触れてしまったりした際にカーソルが移動してしまったりしてどうも使いづらい?

おそらくタッチパッドの感度が高すぎるのが原因のようです。


解決法

タッチパッドの感度の調整にはxinputコマンドを使用します。

まずはxinputでタッチパッドのidを特定する必要があります。

ターミナル
$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ ELAN0732:00 04F3:24DB                   	id=10	[slave  pointer  (2)]
⎜   ↳ Synaptics TM3257-001                    	id=14	[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)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ HP TrueVision FHD RGB-IR: HP Tr         	id=9	[slave  keyboard (3)]
    ↳ ELAN0732:00 04F3:24DB                   	id=11	[slave  keyboard (3)]
    ↳ Intel Virtual Button driver             	id=12	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=13	[slave  keyboard (3)]
    ↳ HP Wireless hotkeys                     	id=15	[slave  keyboard (3)]
    ↳ HP WMI hotkeys                          	id=16	[slave  keyboard (3)]

おそらくタッチパッドはVirtual core pointerの子要素になっていると思います。その中でそれらしいものを見つけましょう(Synapticsとかついた名前が怪しい)。

今回の場合Synaptics TM3257-001がそれらしい気がします。

試しにid=14の入力を確認してみましょう。

xinput --test {デバイスid}コマンドは指定したidから受け取るデータをログとして表示してくれるコマンドです。

コマンドをうってタッチパッドをいろいろいじると…

ターミナル
$ xinput --test 14
motion a[0]=1105 
motion a[0]=1106 
motion a[0]=1110 
motion a[0]=1117 
motion a[0]=1127 
motion a[0]=1136 a[1]=709 
motion a[0]=1144 a[1]=713

間違いなさそうです。

では変更する前に、現在の設定値を確認します。

xinput --watch-props {デバイスid}コマンドでそのデバイスの設定値を確認できます。

ターミナル
$ xinput --watch-props 14
Device 'Synaptics TM3257-001':
	Device Enabled (171):	1
	Coordinate Transformation Matrix (173):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (305):	1
	Device Accel Constant Deceleration (306):	2.500000
	Device Accel Adaptive Deceleration (307):	1.000000
	Device Accel Velocity Scaling (308):	13.694853
	Synaptics Edges (318):	92, 2228, 60, 1061
	Synaptics Finger (319):	25, 30 , 0
	Synaptics Tap Time (320):	180
	Synaptics Tap Move (321):	113
	Synaptics Tap Durations (322):	180, 180, 100
	Synaptics ClickPad (323):	1
	Synaptics Middle Button Timeout (324):	0
	Synaptics Two-Finger Pressure (325):	282
	Synaptics Two-Finger Width (326):	7
	Synaptics Scrolling Distance (327):	-64, -64
	Synaptics Edge Scrolling (328):	0, 0, 0
	Synaptics Two-Finger Scrolling (329):	1, 1
	Synaptics Move Speed (330):	1.000000, 1.750000, 0.077640, 0.000000
	Synaptics Off (331):	0
	Synaptics Locked Drags (332):	0
	Synaptics Locked Drags Timeout (333):	5000
	Synaptics Tap Action (334):	0, 0, 0, 0, 1, 3, 2
	Synaptics Click Action (335):	1, 3, 2
	Synaptics Circular Scrolling (336):	0
	Synaptics Circular Scrolling Distance (337):	0.100000
	Synaptics Circular Scrolling Trigger (338):	0
	Synaptics Circular Pad (339):	0
	Synaptics Palm Detection (340):	0
	Synaptics Palm Dimensions (341):	10, 200
	Synaptics Coasting Speed (342):	20.000000, 50.000000
	Synaptics Pressure Motion (343):	30, 160
	Synaptics Pressure Motion Factor (344):	1.000000, 1.000000
	Synaptics Resolution Detect (345):	1
	Synaptics Grab Event Device (346):	0
	Synaptics Gestures (347):	1
	Synaptics Capabilities (348):	1, 0, 0, 1, 1, 1, 0
	Synaptics Pad Resolution (349):	20, 20
	Synaptics Area (350):	0, 0, 0, 0
	Synaptics Soft Button Areas (351):	0, 0, 0, 0, 0, 0, 0, 0
	Synaptics Noise Cancellation (352):	12, 12
	Device Product ID (298):	1739, 0
	Device Node (297):	"/dev/input/event12"

Synaptics Fingerの設定がタッチパッドの感度の設定です。3つの値が設定してありますが左から順に以下のような意味を持ちます。

  1. タッチパッドの圧力の値がこれ以下になるとリリースしたとみなします。
  2. タッチパッドの圧力の値がこれ以上になるとタッチしたとみなします。
  3. タッチパッドの圧力の値がこれ以上になるとプレスしたとみなします。

2の値が大きくなるほどタッチでのクリックが弱くなります。

1の値が小さくなるほどマウスは動かしやすくなります。

自分のPCの場合3の設定は使用できないようでした。

いろいろいじってみた結果5 55 0が丁度いい値でした。

値のセットはxinput --set-prop {デバイスid} "{設定名}" {設定値}コマンドを使います。

ターミナル
$ xinput --set-prop 14 "Synaptics Finger" 5 55 0

これでタッチパッド全体の感度は下がりました。

追加でタッチと判断するタップタイムを下げて置くとより誤タッチが減るでしょう。

この設定はSynaptics Tap Timeの設定です。

設定した値以下のタッチをタップとみなします。

いろいろ設定値で試して見たところ100がちょうど良かったです。

ターミナル
$ xinput --set-prop 14 "Synaptics Tap Time" 100

これらの設定は再起動するとリセットされてしまいます。

永続化するには以下のように~/.xsessionrcに書き込みましょう。

ターミナル
$ echo "xinput --set-prop 14 'Synaptics Finger' 5 60 0" >> ~/.xsessionrc
$ echo "xinput --set-prop 14 'Synaptics Tap Time' 110" >> ~/.xsessionrc

これで設定は完了です!

このエントリーをはてなブックマークに追加


関連記事

記事へのコメント