「タッチスクリーン」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
1行目: 1行目:
 
[[Category:入力デバイス]]
 
[[Category:入力デバイス]]
  +
[[Category:ディスプレイ]]
 
[[en:Touchscreen]]
 
[[en:Touchscreen]]
 
{{Related articles start}}
 
{{Related articles start}}
9行目: 10行目:
 
== イントロダクション ==
 
== イントロダクション ==
   
この記事ではカーネル (の usbtouchscreen モジュールなど) によってサポートされているタッチスクリーンデバイスを対象にします。サポートされていれば、デバイスの {{ic|/dev/input/event*}} ノードが存在するはずです。ノードが存在するか確認するには:
+
この記事ではカーネル (の ''usbtouchscreen'' モジュールなど) によってサポートされているタッチスクリーンデバイスを対象にします。サポートされていれば、デバイスの {{ic|/dev/input/event*}} ノードが存在するはずです。ノードが存在するか確認するには:
   
 
$ less /proc/bus/input/devices
 
$ less /proc/bus/input/devices
45行目: 46行目:
   
 
== マルチディスプレイでタッチスクリーンを使う ==
 
== マルチディスプレイでタッチスクリーンを使う ==
マルチディスプレイを使う場合 (その中にタッチスクリーンも含まれる場合)、タッチサーフェスとスクリーンのマッピングを Xorg に指定する必要があります。
+
マルチディスプレイを使う場合 (その中にタッチスクリーンも含まれる場合)、タッチサーフェスとスクリーンのマッピングを Xorg に指定する必要があります。xinput を使うことでとても簡単に設定できます。
 
xinput を使うことでとても簡単に設定できます:
 
   
 
以下は Wacom タブレットと外付けモニタを使用する例です。xrandr を実行すると2つのディスプレイが表示されます:
 
以下は Wacom タブレットと外付けモニタを使用する例です。xrandr を実行すると2つのディスプレイが表示されます:
82行目: 81行目:
 
}}
 
}}
   
ID が 13 と 14 の2つのスタイラス入力が存在することが確認できます。以下のように実行して入力を出力にマップしてください:
+
ID が {{ic|13}}{{ic|14}} の2つのスタイラス入力が存在することが確認できます。以下のように実行して入力を出力にマップしてください:
   
 
$ xinput --map-to-output 13 LVDS1
 
$ xinput --map-to-output 13 LVDS1
 
$ xinput --map-to-output 14 LVDS1
 
$ xinput --map-to-output 14 LVDS1
  +
  +
再起動によって ID は変化してしまいますが、以下のコマンドを {{ic|~/.xinitrc}} などに記述することで自動的に設定することができます:
  +
  +
xinput --map-to-output $(xinput list --id-only "Serial Wacom Tablet WACf004 stylus") LVDS1
  +
xinput --map-to-output $(xinput list --id-only "Serial Wacom Tablet WACf004 eraser") LVDS1
  +
  +
また、タッチスクリーンを一度切断して再接続した場合 (例えば KVM でモニターを切り替えた場合など) もマッピングの設定は消失します。そのような場合は udev ルールを使うほうが良いでしょう。
   
 
== Touchegg ==
 
== Touchegg ==
   
 
[[Touchegg]] はマルチタッチのジェスチャープログラムです。バックグラウンドで実行することで、ウィンドウマネージャにマルチタッチのサポートを追加します。
 
[[Touchegg]] はマルチタッチのジェスチャープログラムです。バックグラウンドで実行することで、ウィンドウマネージャにマルチタッチのサポートを追加します。
  +
  +
== Firefox ==
  +
  +
[[Firefox]] はデフォルトではタッチ操作が有効になっていませんが {{AUR|firefox-nightly}} を使っている場合は有効にできます。
  +
  +
Firefox の URL バーに {{ic|about:config}} と入力して以下の値を設定してください:
  +
  +
browser.gesture.pinch.in=cmd_fullZoomReduce
  +
browser.gesture.pinch.out=cmd_fullZoomEnlarge
  +
browser.gesture.pinch.threshold=150
  +
apz.overscroll.enabled=true
  +
  +
さらに、[[xprofile]] などで以下のように[[環境変数]]を設定してください:
  +
  +
export MOZ_USE_XINPUT2=1

2017年1月4日 (水) 22:03時点における版

関連記事

Linux でタッチスクリーンデバイスをセットアップしようと試みた場合、(多少の較正は必要ながらも) 特に何も設定しなくても動作するときと、あるいはカーネルによってサポートされていないデバイスなら、設定するのがとても面倒くさい場合があります。

イントロダクション

この記事ではカーネル (の usbtouchscreen モジュールなど) によってサポートされているタッチスクリーンデバイスを対象にします。サポートされていれば、デバイスの /dev/input/event* ノードが存在するはずです。ノードが存在するか確認するには:

$ less /proc/bus/input/devices

あるいはディスプレイをタッチしたときに使われるイベントノードを確認するには:

$ cat /dev/input/event? # replace ? with the event numbers

デバイスノードが見つけられたのであれば、デバイスを動作させることもおそらくできるはずです。

利用可能な X11 ドライバー

X11 用のタッチスクリーンインプットドライバーは多数存在します。extra リポジトリに入っている最も一般的なドライバーは:

リポジトリに含まれていない、マイナーなドライバーは:

  • 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 が 1314 の2つのスタイラス入力が存在することが確認できます。以下のように実行して入力を出力にマップしてください:

$ xinput --map-to-output 13 LVDS1
$ xinput --map-to-output 14 LVDS1

再起動によって ID は変化してしまいますが、以下のコマンドを ~/.xinitrc などに記述することで自動的に設定することができます:

xinput --map-to-output $(xinput list --id-only "Serial Wacom Tablet WACf004 stylus") LVDS1
xinput --map-to-output $(xinput list --id-only "Serial Wacom Tablet WACf004 eraser") LVDS1

また、タッチスクリーンを一度切断して再接続した場合 (例えば KVM でモニターを切り替えた場合など) もマッピングの設定は消失します。そのような場合は udev ルールを使うほうが良いでしょう。

Touchegg

Touchegg はマルチタッチのジェスチャープログラムです。バックグラウンドで実行することで、ウィンドウマネージャにマルチタッチのサポートを追加します。

Firefox

Firefox はデフォルトではタッチ操作が有効になっていませんが firefox-nightlyAUR を使っている場合は有効にできます。

Firefox の URL バーに about:config と入力して以下の値を設定してください:

browser.gesture.pinch.in=cmd_fullZoomReduce
browser.gesture.pinch.out=cmd_fullZoomEnlarge
browser.gesture.pinch.threshold=150
apz.overscroll.enabled=true

さらに、xprofile などで以下のように環境変数を設定してください:

export MOZ_USE_XINPUT2=1