LoginSignup
7
5

More than 3 years have passed since last update.

Linux(Ubuntu)で、Trackpadをチューニングして、3本指スワイプに機能を設定したりする

Posted at

Ubuntu19.10を使用して、3本指スワイプに機能をもたせるまでの記録です。
達成したことは以下の通りです。

  • Logicool T650 トラックパッドで使用するドライバを変更した
  • 2本指スクロールのスクロール量を調整した
  • 3本指スワイプに、デスクトップ移動の機能を割り当てた

使用するドライバを設定する

Ubuntu19.10を使用しています。
LinuxでTrackpadを使うには以下の3つのドライバがあります。

  • Synaptic
  • mtrack
  • libinput

今どれが使われているか知るには、xinputコマンドを使います。
xinput listで認識しているデバイスの名前をしらべ、xinput list-prop <device name or id>で表示できます。

$xinput list
⎡Virtual core pointer                     id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech Rechargeable Touchpad T650       id=12   [slave  pointer  (2)]

$xinput list-props 'Logitech Rechargeable Touchpad T650'                                                
Device 'Logitech Rechargeable Touchpad T650':
    Device Enabled (154):   1
    Coordinate Transformation Matrix (156): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (286): 0
    Device Accel Constant Deceleration (287):   1.000000
    Device Accel Adaptive Deceleration (288):   1.000000
    Device Accel Velocity Scaling (289):    25.000000
    Trackpad Disable Input (290):   0
    Trackpad Sensitivity (291): 1.000000

Synaptic、libinputの場合には、そのモジュールの名前の設定名があるため、判別できます。mtrackの場合には、Trackpadと表示されます。

特定のドライバを有効化するには、ドライバをインストール後に/usr/share/X11/xorg.conf.d/に初期設定が格納されるため、これを/etc/X11/xorg.conf.d/にコピーします。

$ls /usr/share/X11/xorg.conf.d/                                                                         
10-amdgpu.conf  10-quirks.conf  40-libinput.conf  51-synaptics-quirks.conf  70-wacom.conf
10-nvidia.conf  10-radeon.conf  50-mtrack.conf    70-synaptics.conf

$cp /usr/share/X11/xorg.conf.d/50-mtrack.conf /etc/X11/xorg.conf.d/                                                                               

$ls /etc/X11/xorg.conf.d/                                                                               
50-mtrack.conf

これで、ログインログアウトを行うと目的のドライバが有効化されます。

ドライバの設定を変えるためには、/etc/X11/xorg.conf.d/Optionの項目を書き換えるか、xinput set-props <device name> <prop> <value>を使います。
confは永続化する目的に使用でき、xinput set-propsはアドホックに設定をすることに使うことができます。

ただし、confファイルと、xinput list-propsでの設定名は一致しません。
おおよそ同じ名前の設定名ですが、対応表はないため、それっぽいものを選ぶしかないようです。

Xorgのスクロール事情

現状Xorgのスクロールは、ボタン5、ボタン6として動作しています。
よって、スクロールは移動量ごとにボタン5、ボタン6を何回押したかどうかで実現されているようです。

Synapticsでは慣性スクロールが実現されていますが、
スクロールボタンを押す頻度を調整して実現されているようです。

libinputは、きちんとどのくらい移動したかを伝えていますが、
その仕様をまもるために、スクロール量を調整する仕様を持っていません。
現状GNOME3もスクロール量を取り扱っていないようです。

それぞれの特徴

Synaptics

Synapticsはすでにメンテナンスモードに入っており、今後機能がアップデートされる予定はないそうです。
しかし、唯一慣性スクロールをサポートしており、macOSになれた人には非常に使いやすく感じます。
ただし、3本指Swipeは動作しません。

設定項目の一覧はmanから確認できます。

操作してみて、カクカク動く感じがあり、慣性スクロールは気持ちよいですが、自由に使える感じはしませんでした。

mtrack

mtrackは、3本指スワイプ、4本指スワイプも機能として持っています。
2本指スクロールもクイックに動作します。
ただし現在はメンテナンスされていないようです。
設定項目はすべてこのgithubのREADMEにかかれています。

スクロール量や移動スピードも調整可能なため、古いですが非常に有効です。

libinput

現在も開発の続いているライブラリです。可能であればこちらを使うのが良いと思われます。

設定項目は以下に記載があります。

3本指スワイプはサポートされていませんが、libinput-gesturesをインストールすることで使うことができます。
前節の理由からスクロール時の移動量は設定することができません。

結局どれを使えばよいか。

libinput+libinput-gesturesを使って十分ならば、それで良いと思います。
libinputで、スクロールの量をチューニングしたい場合には、mtrackを使うことができます。

筆者は、2019年12月時点で、mtrackを使用しています。
以下が使用している設定ファイルです。

Section "InputClass"
    MatchIsTouchpad "true"
    Identifier "Multitouch Touchpad"
    Driver "mtrack"
    Option "ScrollDistance" "30"
    Option "ScrollUpButton" "5"
    Option "ScrollDownButton" "4"
    Option "SwipeDistance" "200"
    Option "TapDragEnable" "false"
EndSection
  • ScrollDistance 30 2本指スクロールでのスクロール量を調整量
  • ScrollUp/DownButton 5/4 入れ替えることで、ナチュラルスクロールに変更
  • SwipeDistance 200 3本指スワイプの感度の閾値(初期値700)
  • TapDragEnable false タップでドラッグする機能を無効化する

3本指スワイプに機能を割り振る

マウスのキーから、デスクトップの移動を行いたいと思います。
そのためには、以下の手順を取ります。

  • mtrackでSwipeにマウスのボタンを割り振る
  • xbindkeysで、マウスのボタンから、コマンドを実行できるようにする
  • xdotoolsで、コマンドからキーボードのキー(Super+Mなど)を送る
  • キー(Super+M)を、デスクトップ移動のキーボードショートカットに設定する

mtrackでは、3本指スワイプは8~11ボタンに割り振られています。

xbindkeysで、xdotoolsのコマンドを実行するには、以下のような~/.xbindkeysrcを作成します。

"xdotool key Super_R+m"
b:8+Release
"xdotool key Super_R+comma"
b:9+Release
"xdotool key Super_R+s"
b:10+Release

xbindkeysを常駐させるには、コマンドxbindkeys_autostartを実行されるように組みます。
最後に、Gnomeのキーボードショートカットの設定で、Super+M、Super+,、Super+sに必要な機能を割り当てます。

Trackpadを使って、スクロール量を調整したり、3本指スワイプに機能を割り振ることができました。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5