web-dev-qa-db-ja.com

グラフィックタブレットとしてラップトップトラックパッドを使用する

私はラップトップトラックパッドを描画タブレットとして使用することに興味があります。つまり、OSXの Inklet と同様に、相対座標ではなく絶対座標を使用します。

2010年5月に buntuforums.org で同じ質問が行われましたが、この質問には答えられませんでした。 Linuxでこれが行われたかどうか疑問に思っています。また、使用する検索語を見つけようとしています。 「Linuxラップトップタッチパッド絶対モード」を検索し、トラックパッドを絶対モードにする トラックパッドドライバーの問題 を見つけました。しかし、私は本当にドライバー設定ではなく絶対位置を使用するprogramを探しています。

15

アプリケーションではなく、ドライバーを見てください

これらの3種類のタッチパッドにより、ドライバーはアプリケーションへの単一の表現に抽象化しようとするため、これを行うプログラムは見つかりません。

  • 絶対位置データを報告するタッチパッドは、Xorgドライバーによってアプリケーションの相対移動に変換されています。通常のアプリケーションは、(設計上)直接タッチパッドと通信することができないため、ドライバーで解決策を探す必要があります。
  • 相対モードと絶対モードの両方が可能なタッチパッドでは、モードを切り替える必要がありますが、これは非常にハードウェア固有であり、アプリケーションに対応していません。
  • 一部のより基本的なタッチパッドには、絶対位置を報告する機能がありません。

残念ながら、すべての絶対値を報告できるタッチパッドを使用している場合でも、ほとんどのタッチパッドドライバーではLinuxアプリケーションで使用できません。絶対データは実際にそこにあります。たとえば、ドライバーは、スクロールのために端で触れているかどうかを検出できます。仮想端末でevtestを使用して(Xを一時停止するために)これを自分でテストします。 Synapticsタッチパッドは、絶対位置を次のように報告します。

Event type 3 (EV_ABS)
  Event code 0 (ABS_X)
    Value   3332
    Min     1472
    Max     5648
    Fuzz       8
    Resolution      39
  Event code 1 (ABS_Y)
    Value   2017
    Min     1408
    Max     4806
    Fuzz       8
    Resolution      79

XorgでSynapticsデバイスを実際に絶対モードにする機能は、xf86-input-synapticsドライバーの this commit によって最近削除されました。

Remove absolute mode

Moving a touchpad in absolute mode is unusual - touchpads are disconnected
from the output device, so direct interaction is hard. There appears to be
little usage of it (I haven't seen bug reports from people claiming to use
it). Joe Shaw, author of the code and only known user doesn't have a use for
it anymore, so purge it from the repo.

システム全体の基本ドライバー:evdev

Linuxで現時点でこれを可能にする唯一の方法は、Xorgでevdevドライバーを使用することです。 2010年のXorgメーリングリストでは discussed でした(以下の抜粋):

単なる相対移動ではなく、タッチパッド上の指の絶対位置を取得する必要があります。

synapticsドライバーはこれを行いませんが、evdevドライバーは行います。そのため、代わりにタッチパッド用のevdevドライバーを使用するようにXサーバーを構成する必要があります。サーバー1.8以降を実行している場合、次の構成スニペットがそれを行います。

Section "InputClass"
    Identifier "evdev touchpad"
    MatchIsTouchpad "on"
    Driver "evdev"
    Option "Mode" "absolute"
EndSection

これを/etc/X11/xorg.conf.d/99-evdev-touchpad.confとして保存し、サーバーを再起動します。これはタッチパッド自体の動作を変更するだけであり、イベント内のデータは変更されませんが、そのデータは常に絶対的なものであることに注意してください。また、シナプスの代わりにevdevを使用すると、2本指でのスクロール、タップなどの機能が失われます。

結論:機能リクエストを作成する

アップストリームバグトラッカー のシナプスドライバー(およびその他のドライバー)の機能リクエストの余地があります。タッチパッドの絶対位置の値を読み取ることができるように、Xorgにインターフェースがあると非常に便利です。私が見る主なブロッカーは、これが非常にハードウェア固有であり、したがって実装が難しいかもしれないということです。

Joe ShawとPeter Huttererと話をすることは、この歴史が正確に何であるか、どのようにそれを素晴らしい機能要求にするか、そして何を期待するかを見るために大きな価値があると思います。

8
gertvdijk

それは、私が思うハードウェアに大きく依存します。あなたのトラックパッドは、タッチの絶対位置を与えることをサポートする必要があります。通常のラップトップトラックパッドはマウスのように機能し、方向、速度、および加速度の情報のみを提供します。そのため、どこをタッチしても、カーソルの現在の方向からのみ移動します。

0
Gladen