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


【Ubuntu20.04】水平方向のナチュラルスクロールの設定方法

xinput ubuntu ナチュラルスクロール 20.04 linux

投稿日:2022年4月16日

このエントリーをはてなブックマークに追加
タッチパッド操作時の、Ubuntuの水平方向のスクロールをナチュラルスクロールに設定する方法について詳しく解説しています。

はじめに

この記事について

ナチュラルスクロールとは、トラックパッドで指を動かした方向にコンテンツが移動するようなスクロールのことをいいます。Macやスマホのスクロールはデフォルトでナチュラルスクロールの設定になっているため、かなり多くの方がこのスクロールに慣れ親しんでいる事でしょう。

Ubuntuにもナチュラルスクロールの設定はGUIで存在するのですが、何故かその設定画面では垂直の方向の設定しかすることができず…。

その設定でナチュラルスクロールの設定をすると、非常に混乱するスクロール設定になってしまうのです。

そこで今回は、Ubuntuのタッチパッドの水平方向のスクロールをナチュラルスクロールに設定する方法について詳しく解説しています。

環境

この記事は以下の環境で確認されました。

  • Ubuntu 20.04LTS
  • ROG Zephyrus G15 GA503

方法

事前確認

今回はほとんどのLinuxディストリビューションでデフォルトでインストールされているxinputというコマンドラインツールを利用して設定していきます。

一応以下のコマンドでインストールされていることを確認してください。

ターミナル
$ xinput --version
xinput version 1.6.3
XI version on server: 2.3

もし、バージョンが表示されず、Command 'xinput' not found.のように表示された場合には以下のコマンドでインストールしてください。

ターミナル
$ sudo apt-get update -y
$ sudo apt-get install -y xinput

現在の設定値の確認

まずはタッチパッドに振られているidを確認します。

xinput listコマンドを使用すると、各デバイスの情報を一覧表示することができます。

ターミナル
$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Asus Keyboard                           	id=10	[slave  pointer  (2)]
⎜   ↳ ASUE1209:00 04F3:319F Mouse             	id=12	[slave  pointer  (2)]
⎜   ↳ ASUE1209:00 04F3:319F Touchpad          	id=13	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Asus Wireless Radio Control             	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ Asus Keyboard                           	id=11	[slave  keyboard (3)]
    ↳ Asus WMI hotkeys                        	id=14	[slave  keyboard (3)]
    ↳ Asus Keyboard                           	id=15	[slave  keyboard (3)]

ASUE1209:00 04F3:319F Touchpadがそれらしいという予測ができますね。

この列の表示情報からid=13であることがわかります。

次にこのデバイスに設定された設定値を確認しましょう。

xinput list-props {デバイスID}で一覧で表示できます。

ターミナル
$ xinput list-props 13
Device 'ASUE1209:00 04F3:319F Touchpad':
	Device Enabled (184):	1
	Coordinate Transformation Matrix (186):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (317):	1
	Device Accel Constant Deceleration (318):	2.500000
	Device Accel Adaptive Deceleration (319):	1.000000
	Device Accel Velocity Scaling (320):	12.500000
	Synaptics Edges (338):	159, 3831, 139, 2439
	Synaptics Finger (339):	25, 30, 0
	Synaptics Tap Time (340):	180
	Synaptics Tap Move (341):	209
	Synaptics Tap Durations (342):	180, 180, 100
	Synaptics ClickPad (343):	1
	Synaptics Middle Button Timeout (344):	0
	Synaptics Two-Finger Pressure (345):	282
	Synaptics Two-Finger Width (346):	7
	Synaptics Scrolling Distance (347):	-95, 95
	Synaptics Edge Scrolling (348):	0, 0, 0
	Synaptics Two-Finger Scrolling (349):	1, 1
	Synaptics Move Speed (350):	1.000000, 1.750000, 0.042105, 0.000000
	Synaptics Off (351):	0
	Synaptics Locked Drags (352):	0
	Synaptics Locked Drags Timeout (353):	5000
	Synaptics Tap Action (354):	0, 0, 0, 0, 1, 3, 2
	Synaptics Click Action (355):	1, 3, 2
	Synaptics Circular Scrolling (356):	0
	Synaptics Circular Scrolling Distance (357):	0.100000
	Synaptics Circular Scrolling Trigger (358):	0
	Synaptics Circular Pad (359):	0
	Synaptics Palm Detection (360):	1
	Synaptics Palm Dimensions (361):	10, 200
	Synaptics Coasting Speed (362):	20.000000, 50.000000
	Synaptics Pressure Motion (363):	30, 160
	Synaptics Pressure Motion Factor (364):	1.000000, 1.000000
	Synaptics Resolution Detect (365):	1
	Synaptics Grab Event Device (366):	0
	Synaptics Gestures (367):	1
	Synaptics Capabilities (368):	1, 0, 0, 1, 1, 0, 0
	Synaptics Pad Resolution (369):	31, 31
	Synaptics Area (370):	0, 0, 0, 0
	Synaptics Soft Button Areas (371):	0, 0, 0, 0, 0, 0, 0, 0
	Synaptics Noise Cancellation (372):	23, 23
	Device Product ID (310):	1267, 12703
	Device Node (309):	"/dev/input/event14"

多すぎ…。

grepでそれらしい情報だけ表示してみましょう。

今回の場合スクロールについての設定が確認したいので試しに『Scroll』という単語でフィルタしてみます。

ターミナル
$ xinput list-props 13 | grep Scroll
	Synaptics Scrolling Distance (347):	-95, 95
	Synaptics Edge Scrolling (348):	0, 0, 0
	Synaptics Two-Finger Scrolling (349):	1, 1
	Synaptics Circular Scrolling (356):	0
	Synaptics Circular Scrolling Distance (357):	0.100000
	Synaptics Circular Scrolling Trigger (358):	0

いい感じにフィルタできました!

ここに表示されたSynaptics Scrolling Distanceを変更することでスクロール向きを変更することができます。

変更に必要なプロパティIDは()の中の値、つまり今回の場合347です。

設定の変更

では最後に設定を変更しましょう。

設定の変更はxinput set-prop {デバイスID} {プロパティID} {プロパティ値}というコマンドで行うことができます。

Synaptics Scrolling Distanceは2つ目の値が水平方向のスクロール距離を指定しているため、この値の正負を反転させましょう。

ターミナル
$ xinput set-prop 13 347 -95, -95

これで、スクロールを試してみてください!!

正しく設定できていれば水平方向のスクロール向きが変わったはずです!!

ただし、この設定はPCの再起動をするとリセットされてしまいます。

再起動のたびにこの設定を読み込ませるために、今回はホームディレクトリの.xsessionrcに先程のコマンドを書き込みます。

ターミナル
$ echo "xinput set-prop 13 347 -95 -95" > ~/.xsessionrc

.xsessionrcについてはdebian WikiのXsessionのページに詳しく書いてあるので、興味があれば見てみてください。


参考

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


関連記事

記事へのコメント