2017年8月24日木曜日

Perixx Peripad with Debian

PERIXXのトラックパッド(タッチパッドとも言う)ことPeripadを購入しました。
今までポインティングはペンタブで何とか代用していましたが、ペンを持ったり置いたりという動作というのは、地味でありながら結構煩わしいんです。
元々ノートPCユーザーで省スペースのためにトラックパッドを使っていたのが、こうにも定着してしまうなんてね。



プラグアンドプレイが可能らしく接続して数秒で使えるようになりましたが、どうやらマウスの設定ダイアログで設定しても速度などは変わらないようでした。
パッドは画面端を横断するのに一回でシュッと行けるのが理想であります。

というわけで速度とかを変える方法について調べたことの個人的なまとめです。

要るやつ

xserver-xorg-input-libinput (いわゆるlibinput)
xinput
(※xinputはUbuntuだと標準で入ってるかもしれないです)

パッドのIDとかを調べる

まず lsusb でパッドのIDとかを調べます。
Bus 002 Device 002: ID 059f:1042 LaCie, Ltd
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0d62:8070 Darfon Electronics Corp.
Bus 001 Device 007: ID 256c:006e
Bus 001 Device 006: ID 1ddd:2819
Bus 001 Device 005: ID 048d:1336 Integrated Technology Express, Inc. SD/MMC Cardreader
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 004: ID 8087:07dc Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

刺してるのは外付けHDDとUSBハブ(カードリーダつき)とキーボードで、そのUSBハブにペンタブとパッドを接続した状態です。
なんと自分の端末ではパッドの名前は出ずにIDだけが出るという結果になってしまいました。2つありますが 1ddd:2819 がパッドです。
それから xinput list でパッドが制御可能かどうか? をチェック
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                  id=4    [slave  pointer  (2)]
⎜   ↳ HID 1ddd:2819                               id=10    [slave  pointer  (2)]
⎜   ↳ HUION 420 stylus                            id=11    [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)]
    ↳ Power Button                                id=7    [slave  keyboard (3)]
    ↳ Sleep Button                                id=8    [slave  keyboard (3)]
    ↳ HID 1ddd:2819                               id=9    [slave  keyboard (3)]
    ↳ ELECOM Wired Keyboard                       id=12    [slave  keyboard (3)]
    ↳ ELECOM Wired Keyboard                       id=13    [slave  keyboard (3)]
    ↳ HID 1ddd:2819                               id=14    [slave  keyboard (3)]

1ddd:2819 がありますね。いくつもありますがポインティングデバイスなので上段のほうではないでしょうか。
2つ以上ある場合、xinputでこのIDを指定すると「その名前だとダブってるからid=XXのほうで指定してくれよな!」と言われるので、ここでは10です。

指定できるオプション一覧を取る

xinput list-props 10 で、デバイスに指定できるオプションの一覧が出ます。sをお忘れなく。
Device 'HID 1ddd:2819':
    Device Enabled (116):    1
    Coordinate Transformation Matrix (118):    1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Accel Speed (252):    0.000000
    libinput Accel Speed Default (253):    0.000000
    libinput Accel Profiles Available (254):    1, 1
    libinput Accel Profile Enabled (255):    1, 0
    libinput Accel Profile Enabled Default (256):    1, 0
    libinput Natural Scrolling Enabled (257):    0
    libinput Natural Scrolling Enabled Default (258):    0
    libinput Send Events Modes Available (237):    1, 0
    libinput Send Events Mode Enabled (238):    0, 0
    libinput Send Events Mode Enabled Default (239):    0, 0
    libinput Left Handed Enabled (259):    0
    libinput Left Handed Enabled Default (260):    0
    libinput Scroll Methods Available (261):    0, 0, 1
    libinput Scroll Method Enabled (262):    0, 0, 0
    libinput Scroll Method Enabled Default (263):    0, 0, 0
    libinput Button Scrolling Button (264):    2
    libinput Button Scrolling Button Default (265):    2
    libinput Middle Emulation Enabled (266):    0
    libinput Middle Emulation Enabled Default (267):    0
    Device Node (240):    "/dev/input/event3"
    Device Product ID (241):    7645, 10265
    libinput Drag Lock Buttons (268):    <no items>
    libinput Horizontal Scroll Enabled (269):    1

Accelとあるのが速度関係のようです。何が起きるか分からないのでDefaultとある部分は何も設定しないでおきましょう。オプション名を指定しなくても、丸括弧の中にある番号を指定すると適用されてくれます。Accel Speed は 252 です。
Accel Speed が速度で、Accel Profiles が加速度なんじゃないかなあって思うんですけど、Profilesの方は何入れても体感変わらないので、もしかしたら関係ないかもしれません。
ほかにもスクロール自体を無効化できたり、左利きモードにできたり、左右同時クリックで中クリック判定を出せたりするようです。
xinputの書式は
xinput set-prop <device> [--type=atom|float|int] [--format=8|16|32] <property> <val> [<val> ...]
です。これに従って速度を少しだけ上げるように指定するには
xinput set-prop 10 252 0.5
です。deviceにはデバイス番号10を入れます。typeやformatは無視してもいいっぽいです。propertyはAccel Speedを指定したいので252を入れ、その次に自分の指定したい値を入力します。
-1から1までの間を指定できるオプションと、無制限に値を指定できるオプションがある点にご注意です。
コマンド実行するとすぐに適用されるので、操作性を試しながら値を決めていくことができます。

設定を維持させる

このコマンドで設定した内容はログアウトやデバイスの抜き差しでリセットされてしまいます。
本来だったら /usr/share/X11/xorg.conf.d とかにある設定ファイルに規定の形式で書いておくのがスマートらしいですが、僕は設定し直したい時にいちいち権限取って編集するのも面倒なので(あと形式がちょっと分からねえ)、デスクトップなど自分のアクセスしやすい場所にshファイルを置くようにしています。
!#/bin/bash
xinput set-prop 10 252 0.5 #加速
xinput set-prop 10 257 1 #スクロールを逆向きにする
xinput set-prop 10 266 1 #中クリックを有効にする

こんな内容のファイル「peripad.sh」(名前は何でもいい)を好きなところに置いて、プロパティで実行可能にすると、好きな時に実行できます。
起動時のアプリにこれを指定してもいいですし、ショートカットキーの設定でこれを実行できるようにしてもいいですね。

実はペンタブも新調してしまったので再設定が必要なんです。それもxinputで・・・。

0 件のコメント:

コメントを投稿