「タッチスクリーン」の版間の差分
(en:Touchscreenへの転送ページ) |
|||
| 1行目: | 1行目: | ||
| + | [[Category:入力デバイス]] |
||
| − | #redirect[[en:Touchscreen]] |
||
| + | [[en:Touchscreen]] |
||
| + | {{Related articles start}} |
||
| + | {{Related3|Calibrating Touchscreen|タッチスクリーンの較正}} |
||
| + | {{Related articles end}} |
||
| + | |||
| + | Linux でタッチスクリーンデバイスをセットアップしようと試みた場合、(多少の較正は必要ながらも) 特に何も設定しなくても動作するときと、あるいはカーネルによってサポートされていないデバイスなら、設定するのがとても面倒くさい場合があります。 |
||
| + | |||
| + | == イントロダクション == |
||
| + | |||
| + | この記事ではカーネル (の usbtouchscreen モジュールなど) によってサポートされているタッチスクリーンデバイスを対象にします。サポートされていれば、デバイスの {{ic|/dev/input/event*}} ノードが存在するはずです。ノードが存在するか確認するには: |
||
| + | |||
| + | $ less /proc/bus/input/devices |
||
| + | |||
| + | あるいはディスプレイをタッチしたときに使われるイベントノードを確認するには: |
||
| + | |||
| + | $ cat /dev/input/event? # replace ? with the event numbers |
||
| + | |||
| + | デバイスノードが見つけられたのであれば、デバイスを動作させることもおそらくできるはずです。 |
||
| + | |||
| + | == 利用可能な X11 ドライバー == |
||
| + | |||
| + | X11 用のタッチスクリーンインプットドライバーは多数存在します。''extra'' リポジトリに入っている最も一般的なドライバーは: |
||
| + | |||
| + | * {{Pkg|xf86-input-evdev}} (タッチスクリーンを接続しただけで動作する場合のデフォルトドライバー) |
||
| + | * {{Pkg|xf86-input-libinput}}; [[libinput]] を参照 |
||
| + | * {{Pkg|xf86-input-elographics}} |
||
| + | |||
| + | リポジトリに含まれていない、マイナーなドライバーは: |
||
| + | |||
| + | * xf86-input-magictouch |
||
| + | * xf86-input-mutouch |
||
| + | * xf86-input-plpevtch |
||
| + | * xf86-input-palmax |
||
| + | |||
| + | デバイスによってはプロプライエタリなドライバーも存在しますが (例: {{AUR|xf86-input-egalax}})、最初にオープンソースのドライバーを試すことを推奨します。 |
||
| + | |||
| + | あなたが使用するタッチスクリーンデバイスにあわせて適当なドライバーを選択してください。タッチスクリーンが既に動作する場合はおそらく evdev がデフォルトです。 |
||
| + | |||
| + | == evdev ドライバー == |
||
| + | |||
| + | === キャリブレーション === |
||
| + | |||
| + | {{AUR|xinput_calibrator}} (AUR) をインストールして、''xinput_calibrator'' を実行して指示に従って下さい。 |
||
| + | |||
| + | == マルチディスプレイでタッチスクリーンを使う == |
||
| + | マルチディスプレイを使う場合 (その中にタッチスクリーンも含まれる場合)、タッチサーフェスとスクリーンのマッピングを Xorg に指定する必要があります。 |
||
| + | |||
| + | xinput を使うことでとても簡単に設定できます: |
||
| + | |||
| + | 以下は Wacom タブレットと外付けモニタを使用する例です。xrandr を実行すると2つのディスプレイが表示されます: |
||
| + | |||
| + | {{hc|$ xrandr| |
||
| + | Screen 0: minimum 320 x 200, current 2944 x 1080, maximum 8192 x 8192 |
||
| + | LVDS1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm |
||
| + | 1024x768 60.0*+ |
||
| + | 800x600 60.3 56.2 |
||
| + | 640x480 59.9 |
||
| + | VGA1 connected 1920x1080+1024+0 (normal left inverted right x axis y axis) 477mm x 268mm |
||
| + | 1920x1080 60.0*+ |
||
| + | 1600x1200 60.0 |
||
| + | 1680x1050 60.0 |
||
| + | 1680x945 60.0 |
||
| + | }} |
||
| + | |||
| + | 上記で2つのディスプレイは LVDS1 と VGA1 であることがわかり、LVDS1 はタブレットの内蔵ディスプレイで、VGA1 は外付けモニタです。スタイラスの入力を LVDS1 にマップしたいとします。そこで、スタイラスの入力の ID を確認する必要があります: |
||
| + | |||
| + | {{hc|$ xinput --list| |
||
| + | ⎡ Virtual core pointer id=2 [master pointer (3)] |
||
| + | ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] |
||
| + | ⎜ ↳ QUANTA OpticalTouchScreen id=9 [slave pointer (2)] |
||
| + | ⎜ ↳ TPPS/2 IBM TrackPoint id=11 [slave pointer (2)] |
||
| + | ⎜ ↳ Serial Wacom Tablet WACf004 stylus id=13 [slave pointer (2)] |
||
| + | ⎜ ↳ Serial Wacom Tablet WACf004 eraser 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)] |
||
| + | ↳ Sleep Button id=8 [slave keyboard (3)] |
||
| + | ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)] |
||
| + | ↳ ThinkPad Extra Buttons id=12 [slave keyboard (3)] |
||
| + | }} |
||
| + | |||
| + | ID が 13 と 14 の2つのスタイラス入力が存在することが確認できます。以下のように実行して入力を出力にマップしてください: |
||
| + | |||
| + | $ xinput --map-to-output 13 LVDS1 |
||
| + | $ xinput --map-to-output 14 LVDS1 |
||
| + | |||
| + | == Touchegg == |
||
| + | |||
| + | [[Touchegg]] はマルチタッチのジェスチャープログラムです。バックグラウンドで実行することで、ウィンドウマネージャにマルチタッチのサポートを追加します。 |
||
2015年12月18日 (金) 22:31時点における版
関連記事
Linux でタッチスクリーンデバイスをセットアップしようと試みた場合、(多少の較正は必要ながらも) 特に何も設定しなくても動作するときと、あるいはカーネルによってサポートされていないデバイスなら、設定するのがとても面倒くさい場合があります。
イントロダクション
この記事ではカーネル (の usbtouchscreen モジュールなど) によってサポートされているタッチスクリーンデバイスを対象にします。サポートされていれば、デバイスの /dev/input/event* ノードが存在するはずです。ノードが存在するか確認するには:
$ less /proc/bus/input/devices
あるいはディスプレイをタッチしたときに使われるイベントノードを確認するには:
$ cat /dev/input/event? # replace ? with the event numbers
デバイスノードが見つけられたのであれば、デバイスを動作させることもおそらくできるはずです。
利用可能な X11 ドライバー
X11 用のタッチスクリーンインプットドライバーは多数存在します。extra リポジトリに入っている最も一般的なドライバーは:
- xf86-input-evdev (タッチスクリーンを接続しただけで動作する場合のデフォルトドライバー)
- xf86-input-libinput; libinput を参照
- xf86-input-elographics
リポジトリに含まれていない、マイナーなドライバーは:
- xf86-input-magictouch
- xf86-input-mutouch
- xf86-input-plpevtch
- xf86-input-palmax
デバイスによってはプロプライエタリなドライバーも存在しますが (例: xf86-input-egalaxAUR)、最初にオープンソースのドライバーを試すことを推奨します。
あなたが使用するタッチスクリーンデバイスにあわせて適当なドライバーを選択してください。タッチスクリーンが既に動作する場合はおそらく evdev がデフォルトです。
evdev ドライバー
キャリブレーション
xinput_calibratorAUR (AUR) をインストールして、xinput_calibrator を実行して指示に従って下さい。
マルチディスプレイでタッチスクリーンを使う
マルチディスプレイを使う場合 (その中にタッチスクリーンも含まれる場合)、タッチサーフェスとスクリーンのマッピングを Xorg に指定する必要があります。
xinput を使うことでとても簡単に設定できます:
以下は Wacom タブレットと外付けモニタを使用する例です。xrandr を実行すると2つのディスプレイが表示されます:
$ xrandr
Screen 0: minimum 320 x 200, current 2944 x 1080, maximum 8192 x 8192 LVDS1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1024x768 60.0*+ 800x600 60.3 56.2 640x480 59.9 VGA1 connected 1920x1080+1024+0 (normal left inverted right x axis y axis) 477mm x 268mm 1920x1080 60.0*+ 1600x1200 60.0 1680x1050 60.0 1680x945 60.0
上記で2つのディスプレイは LVDS1 と VGA1 であることがわかり、LVDS1 はタブレットの内蔵ディスプレイで、VGA1 は外付けモニタです。スタイラスの入力を LVDS1 にマップしたいとします。そこで、スタイラスの入力の ID を確認する必要があります:
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ QUANTA OpticalTouchScreen id=9 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=11 [slave pointer (2)]
⎜ ↳ Serial Wacom Tablet WACf004 stylus id=13 [slave pointer (2)]
⎜ ↳ Serial Wacom Tablet WACf004 eraser 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)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=12 [slave keyboard (3)]
ID が 13 と 14 の2つのスタイラス入力が存在することが確認できます。以下のように実行して入力を出力にマップしてください:
$ xinput --map-to-output 13 LVDS1 $ xinput --map-to-output 14 LVDS1
Touchegg
Touchegg はマルチタッチのジェスチャープログラムです。バックグラウンドで実行することで、ウィンドウマネージャにマルチタッチのサポートを追加します。