「Libinput」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
24行目: 24行目:
 
== 設定 ==
 
== 設定 ==
   
  +
[[Wayland]] 用の libinput 設定ファイルは存在しません。設定できるオプションは使用しているデスクトップ環境のサポート状況によって変わります。[[#グラフィカルツール]]を参照。
[[Xorg]] 用のデフォルト設定ファイルは {{ic|/usr/share/X11/xorg.conf.d/60-libinput.conf}} にインストールされます。キーボードやタッチパッド、トラックポイントやサポートされているタッチスクリーンなら特別な設定をしなくても自動で検出されます。
 
  +
  +
[[Xorg]] 用のデフォルト設定ファイルは {{ic|/usr/share/X11/xorg.conf.d/40-libinput.conf}} にインストールされます。キーボードやタッチパッド、トラックポイントやサポートされているタッチスクリーンなら特別な設定をしなくても自動で検出されます。
   
 
まず、次を実行してください:
 
まず、次を実行してください:
32行目: 34行目:
 
グラフィカル環境を[[再起動]]すれば、他のドライバーが優先的に使用されるように設定されていないかぎり、デフォルト設定によって libinput によってデバイスが管理されるようになるはずです。
 
グラフィカル環境を[[再起動]]すれば、他のドライバーが優先的に使用されるように設定されていないかぎり、デフォルト設定によって libinput によってデバイスが管理されるようになるはずです。
   
設定できるオプションは libinput(4) [[man ページ]]を参照してください。''xinput'' ツールを使うことで使用している特定のデバイスのオプションを確認・変更することができます。例えばオプションを確認するには:
+
設定できるオプションは {{man|4|libinput|url=https://www.mankier.com/4/libinput}} [[man ページ]]を参照してください。''xinput'' ツールを使うことで使用している特定のデバイスのオプションを確認・変更することができます。
  +
  +
デバイスとその番号を確認するには:
  +
$ xinput list
  +
オプションを確認するには:
 
$ xinput list-props ''device-number''
 
$ xinput list-props ''device-number''
 
オプションを設定するには:
 
オプションを設定するには:
42行目: 48行目:
   
 
{{Tip|libinput と synaptics を同時にインストールしてデフォルト設定を使っている場合 ({{ic|/etc/X11/xorg.conf.d}} に両方のファイルが存在しない場合)、{{ic|70-synaptics.conf}} のファイル名によって synaptics が優先されます。libinput を優先させたい場合、デフォルトの libinput 設定のシンボリックリンクを作成してください:
 
{{Tip|libinput と synaptics を同時にインストールしてデフォルト設定を使っている場合 ({{ic|/etc/X11/xorg.conf.d}} に両方のファイルが存在しない場合)、{{ic|70-synaptics.conf}} のファイル名によって synaptics が優先されます。libinput を優先させたい場合、デフォルトの libinput 設定のシンボリックリンクを作成してください:
# ln -s /usr/share/X11/xorg.conf.d/60-libinput.conf /etc/X11/xorg.conf.d/60-libinput.conf
+
# ln -s /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/40-libinput.conf
 
両方の設定ファイルが {{ic|/etc/X11/xorg.conf.d}} に存在する場合、libinput の設定ファイルは2番目になります。[[Xorg#.conf ファイルを使う]]を見てください。}}
 
両方の設定ファイルが {{ic|/etc/X11/xorg.conf.d}} に存在する場合、libinput の設定ファイルは2番目になります。[[Xorg#.conf ファイルを使う]]を見てください。}}
   
62行目: 68行目:
 
カスタム設定ファイルは {{ic|/etc/X11/xorg.conf.d/}} に配置します。よく使われるファイル名は {{ic|30-touchpad.conf}} です。
 
カスタム設定ファイルは {{ic|/etc/X11/xorg.conf.d/}} に配置します。よく使われるファイル名は {{ic|30-touchpad.conf}} です。
   
{{Tip|利用可能な設定オプションや説明などは {{ic|/usr/share/X11/xorg.conf.d/60-libinput.conf}} や {{man|4|libinput|url=https://www.mankier.com/4/libinput}} のマニュアルページを参照してください。}}
+
{{Tip|利用可能な設定オプションや説明などは {{ic|/usr/share/X11/xorg.conf.d/40-libinput.conf}} や {{man|4|libinput|url=https://www.mankier.com/4/libinput}} のマニュアルページを参照してください。}}
   
基本的な設定は以下のようになります:
+
基本的な設定は以下のようになります ({{ic|devpath}} は {{ic|libinput-list-devices}} によって確認できるデバイスのパスに置き換えてください、例: {{ic|/dev/input/event16}}):
 
{{hc|/etc/X11/xorg.conf.d/30-touchpad.conf|
 
{{hc|/etc/X11/xorg.conf.d/30-touchpad.conf|
 
Section "InputClass"
 
Section "InputClass"
73行目: 79行目:
 
EndSection
 
EndSection
 
}}
 
}}
単体の設定ファイルでお好きな数だけセクションを定義することができます。{{ic|MatchIsPointer "on"}}, {{ic|MatchIsKeyboard "on"}}, {{ic|MatchIsTouchpad "on"}}, {{ic|MatchIsTouchscreen "on"}} などを使って設定したいデバイスをフィルタリングしてください。一般的な設定オプションは以下の通りです:
+
単体の設定ファイルでお好きな数だけセクションを定義することができます。{{ic|MatchIsPointer "on"}}, {{ic|MatchIsKeyboard "on"}}, {{ic|MatchIsTouchpad "on"}}, {{ic|MatchIsTouchscreen "on"}} などを使って設定したいデバイスをフィルタリングしてください。詳しくは {{man|4|libinput|url=https://www.mankier.com/4/libinput}} を参照。一般的な設定オプションは以下の通りです:
 
* {{ic|"Tapping" "on"}}: タップでクリック。
 
* {{ic|"Tapping" "on"}}: タップでクリック。
  +
* {{ic|"ClickMethod" "clickfinger"}}: トラックパッドの中・右ボタンの領域が消えて、代わりに2本指のクリックが右クリックに、3本指のクリックが中クリックになります。詳しくは [https://wayland.freedesktop.org/libinput/doc/latest/clickpad_softbuttons.html#clickfinger ドキュメント] を参照。
 
* {{ic|"NaturalScrolling" "true"}}: ナチュラルスクロール (逆スクロール)。
 
* {{ic|"NaturalScrolling" "true"}}: ナチュラルスクロール (逆スクロール)。
 
* {{ic|"ScrollMethod" "edge"}}: エッジスクロール (縦スクロール)。
 
* {{ic|"ScrollMethod" "edge"}}: エッジスクロール (縦スクロール)。
84行目: 91行目:
   
 
* [[GNOME]]:
 
* [[GNOME]]:
** コントロールセンターの 'Mouse & Touchpad' に基本的な設定 UI が存在します。
+
** コントロールセンターの 'Mouse & Touchpad' に基本的な設定 UI が存在します。[[GNOME#マウスとタッチパッド]]も参照
 
* [[Cinnamon]]:
 
* [[Cinnamon]]:
 
** GNOME UI と同じように設定することができます。
 
** GNOME UI と同じように設定することができます。
95行目: 102行目:
 
=== ボタンの再マッピング ===
 
=== ボタンの再マッピング ===
   
例としてタッチパッドの2本指タップと3本指タップを置き換えるとします。デフォルトでは3本指タップでテキストを貼り付けることができますが、ボタンマップ''1 3 2'' のボタンを置き換えることで2本指タップで貼り付けを行うように設定できます。新しいボンマップを永続的保存するには、[[Xorg]] 設定ファイルで {{ic|ButtonMapping}} オプションを設定してください。2本指タップと3本指タップを置き換える場合は設定ファイルは以下のようになります:
+
例としてタッチパッドの2本指タップと3本指タップを置き換えるとします。デフォルトでは3本指タップでテキストを貼り付けることができますが、[[Xorg]] 設定ファイルで {{ic|TappingButtonMap}} オプションを設定することで2本指タップで貼り付けを行うように設定できます。1・2・3本指のタップを左・右・中設定するには {{ic|TappingButtonMap}} を {{ic|lrm}} に、左・中・右にするには {{ic|lmr}} に設定してください。
   
 
{{hc|/etc/X11/xorg.conf.d/30-touchpad.conf|
 
{{hc|/etc/X11/xorg.conf.d/30-touchpad.conf|
103行目: 110行目:
 
MatchIsTouchpad "on"
 
MatchIsTouchpad "on"
 
Option "Tapping" "on"
 
Option "Tapping" "on"
Option "ButtonMapping" "1 3 2 4 5 6"
+
Option "TappingButtonMap" "lmr"
 
EndSection}}
 
EndSection}}
   
137行目: 144行目:
 
[https://github.com/bulletmark/libinput-gestures libinput-gestures] を使用するには、{{Aur|libinput-gestures}} パッケージをインストールしてください。デフォルト設定では、スワイプやピンチのジェスチャーが使えます。また、個人設定ファイルで自由にジェスチャーを定義できます。詳しくは [https://github.com/bulletmark/libinput-gestures/blob/master/README.md README] を見てください。
 
[https://github.com/bulletmark/libinput-gestures libinput-gestures] を使用するには、{{Aur|libinput-gestures}} パッケージをインストールしてください。デフォルト設定では、スワイプやピンチのジェスチャーが使えます。また、個人設定ファイルで自由にジェスチャーを定義できます。詳しくは [https://github.com/bulletmark/libinput-gestures/blob/master/README.md README] を見てください。
   
== デバッグ ==
+
== トラブルシューティング ==
   
 
まず、パッケージに含まれている ''libinput-debug-events'' ツールで問題をデバッグできないか確認してください。{{ic|libinput-debug-events --help}} を実行すればオプションが表示されます。
 
まず、パッケージに含まれている ''libinput-debug-events'' ツールで問題をデバッグできないか確認してください。{{ic|libinput-debug-events --help}} を実行すればオプションが表示されます。
149行目: 156行目:
 
以下のコマンドを実行してタッチパッドのイベントを GNOME デスクトップに送信してください:
 
以下のコマンドを実行してタッチパッドのイベントを GNOME デスクトップに送信してください:
 
$ gsettings set org.gnome.desktop.peripherals.touchpad send-events enabled
 
$ gsettings set org.gnome.desktop.peripherals.touchpad send-events enabled
  +
  +
=== KDE の Touchpad KCM におけるタッチパッドの設定が反映されない ===
  +
  +
KDE の Touchpad KCM は [[Xorg]] における libinput をサポートしていますが、まだ全てを GUI で設定することはできません。''タイピング中はタッチパッドを無効化する''などの設定は使うことができません。また、グレーになっているオプションも存在します。サポートが改善されるまで、{{ic|xinput set-prop}} で手動でオプションを設定してください。
   
 
== 参照 ==
 
== 参照 ==
   
 
* [https://wayland.freedesktop.org/libinput/doc/latest/index.html libinput Wayland ドキュメント]
 
* [https://wayland.freedesktop.org/libinput/doc/latest/index.html libinput Wayland ドキュメント]
* [https://archive.fosdem.org/2015/schedule/event/libinput/attachments/slides/591/export/events/attachments/libinput/slides/591/libinput_xorg.pdf FOSDEM 2015 - libinput] - Hans de Goede on goals and plans of the project
+
* [https://archive.fosdem.org/2015/schedule/event/libinput/attachments/slides/591/export/events/attachments/libinput/slides/591/libinput_xorg.pdf FOSDEM 2015 - libinput] - Hans de Goede によるプロジェクトの目標と計画についての説明
*[http://who-t.blogspot.com.au/ Peter Hutterer's Blog] - numerous posts on libinput from one of the project's hackers.
+
*[http://who-t.blogspot.com.au/ Peter Hutterer のブログ] - プロジェクトのハッカーによる libinput 関連の記事

2017年1月15日 (日) 20:14時点における版

関連記事

libinput プロジェクトより:

libinput は Wayland コンポジタで入力デバイスを処理するためのライブラリで、汎用的な X.Org 入力ドライバーでもあります。デバイスの検出・管理、入力デバイスのイベントの処理・抽象化を担当し、ユーザーが期待する一般的な機能セットを提供することでコンポジタを改造する必要があるコードの量を減らします。

libinput ドライバーは標準的な入力デバイスはほとんどサポートしています。特にプロジェクトが力を入れてるのは、タッチパッドやタッチスクリーンのタッチ機能 (マルチタッチやジェスチャー) の先進的なサポートです。詳しくは ドキュメント を見て下さい。

インストール

Wayland で libinput を使用する場合、特にインストールする必要があるものはありません。あなたが使用しているグラフィカル環境の依存パッケージとして libinput パッケージは既にインストールされているはずです。他に必要なドライバーはありません。

Xorg で libinput を使用する場合、xf86-input-libinput パッケージをインストールしてください。xf86-input-libinput は libinput のラッパーで、X でも libinput で入力デバイスを扱えるようになります。evdev や synaptics の代わりのドライバーとしても使うことが可能です [1]。つまり、xf86-input- で始まる X 用のドライバーパッケージを置換できます。

また、xorg-xinput をインストールすることで実行中に設定を変更することができます。

設定

Wayland 用の libinput 設定ファイルは存在しません。設定できるオプションは使用しているデスクトップ環境のサポート状況によって変わります。#グラフィカルツールを参照。

Xorg 用のデフォルト設定ファイルは /usr/share/X11/xorg.conf.d/40-libinput.conf にインストールされます。キーボードやタッチパッド、トラックポイントやサポートされているタッチスクリーンなら特別な設定をしなくても自動で検出されます。

まず、次を実行してください:

# libinput-list-devices

上記のコマンドは接続されているデバイスと、libinput によってサポートされている機能を出力します。

グラフィカル環境を再起動すれば、他のドライバーが優先的に使用されるように設定されていないかぎり、デフォルト設定によって libinput によってデバイスが管理されるようになるはずです。

設定できるオプションは libinput(4) man ページを参照してください。xinput ツールを使うことで使用している特定のデバイスのオプションを確認・変更することができます。

デバイスとその番号を確認するには:

$ xinput list

オプションを確認するには:

$ xinput list-props device-number

オプションを設定するには:

$ xinput set-prop device-number option-number setting 

オプションの永続的な設定については Xorg#.conf ファイルを使う を見て下さい。Logitech Marble Mouse#libinput を使うや下の#ボタンの再マッピングに設定例が載っています。

通常、入力デバイス用に別のドライバーを同時にインストールすることができます。デバイスのドライバーを libinput を使うように切り替えたいときは、/etc/X11/xorg.conf.d/ にある昔の設定ファイルによって他のドライバーが優先されるようになっていないことを確認してください。

ヒント: libinput と synaptics を同時にインストールしてデフォルト設定を使っている場合 (/etc/X11/xorg.conf.d に両方のファイルが存在しない場合)、70-synaptics.conf のファイル名によって synaptics が優先されます。libinput を優先させたい場合、デフォルトの libinput 設定のシンボリックリンクを作成してください:
# ln -s /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/40-libinput.conf
両方の設定ファイルが /etc/X11/xorg.conf.d に存在する場合、libinput の設定ファイルは2番目になります。Xorg#.conf ファイルを使うを見てください。

どのデバイスが libinput によって管理されているか xorg のログファイルで確認できます。例えば、/etc/X11/xorg.conf.d/ に何も設定ファイルを置いていない (デバイスを自動で検出させている) ノートパソコンの場合、以下のようになります:

$ grep -e "Using input driver 'libinput'" /path/to/Xorg.0.log
[    28.799] (II) Using input driver 'libinput' for 'Power Button'
[    28.847] (II) Using input driver 'libinput' for 'Video Bus'
[    28.853] (II) Using input driver 'libinput' for 'Power Button'
[    28.860] (II) Using input driver 'libinput' for 'Sleep Button'
[    28.872] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard'
[    28.878] (II) Using input driver 'libinput' for 'SynPS/2 Synaptics TouchPad'
[    28.886] (II) Using input driver 'libinput' for 'TPPS/2 IBM TrackPoint'
[    28.895] (II) Using input driver 'libinput' for 'ThinkPad Extra Buttons'

もちろん、あるデバイスでは他のドライバーを使用して、他のデバイスでは libinput を使うようにすることもできます。使用するドライバーを決める要因は様々です。例えば、Touchpad Synaptics と比べて、libinput ドライバーにはタッチパッドの挙動をカスタマイズするためのオプションが少ないですが、マルチタッチイベントをよりプログラマティックに処理することができます (例: 手のひら検出)。従って、あるドライバーでハードウェアの問題を抱えるような場合、別のドライバーを試してみると良いでしょう。

一般的なオプション

カスタム設定ファイルは /etc/X11/xorg.conf.d/ に配置します。よく使われるファイル名は 30-touchpad.conf です。

ヒント: 利用可能な設定オプションや説明などは /usr/share/X11/xorg.conf.d/40-libinput.conflibinput(4) のマニュアルページを参照してください。

基本的な設定は以下のようになります (devpathlibinput-list-devices によって確認できるデバイスのパスに置き換えてください、例: /dev/input/event16):

/etc/X11/xorg.conf.d/30-touchpad.conf
Section "InputClass"
    Identifier "devname"
    Driver "libinput"
    Option "Device"   "devpath"
    ...
EndSection

単体の設定ファイルでお好きな数だけセクションを定義することができます。MatchIsPointer "on", MatchIsKeyboard "on", MatchIsTouchpad "on", MatchIsTouchscreen "on" などを使って設定したいデバイスをフィルタリングしてください。詳しくは libinput(4) を参照。一般的な設定オプションは以下の通りです:

  • "Tapping" "on": タップでクリック。
  • "ClickMethod" "clickfinger": トラックパッドの中・右ボタンの領域が消えて、代わりに2本指のクリックが右クリックに、3本指のクリックが中クリックになります。詳しくは ドキュメント を参照。
  • "NaturalScrolling" "true": ナチュラルスクロール (逆スクロール)。
  • "ScrollMethod" "edge": エッジスクロール (縦スクロール)。

デバイスによっては上記の一部オプションが使えないこともあるので注意してください。

グラフィカルツール

複数の GUI ツールが存在します:

  • GNOME:
  • Cinnamon:
    • GNOME UI と同じように設定することができます。
  • KDE Plasma 5:
    • システム設定のタッチパッドセクション (kcm_touchpad) に基本的なオプションが存在します。
    • pointing-devices-kcm (kcm-pointing-devices-gitAUR) は新しい書き直された KCM で libinput によってサポートされている全ての入力デバイスに対応しています。

Tips and tricks

ボタンの再マッピング

例としてタッチパッドの2本指タップと3本指タップを置き換えるとします。デフォルトでは3本指タップでテキストを貼り付けることができますが、Xorg の設定ファイルで TappingButtonMap オプションを設定することで2本指タップで貼り付けを行うように設定できます。1・2・3本指のタップを左・右・中に設定するには TappingButtonMaplrm に、左・中・右にするには lmr に設定してください。

/etc/X11/xorg.conf.d/30-touchpad.conf
Section "InputClass"
    Identifier "touchpad"
    Driver "libinput"
    MatchIsTouchpad "on"
    Option "Tapping" "on"
    Option "TappingButtonMap" "lmr"
EndSection

デバイスがタッチパッドではない場合は MatchIsTouchpad "on" を削除して Identifier も変えてください。

ボタンの手動再マッピング

デバイスによってはボタンのマッピングを変えたいというときもあるでしょう。例えば、中ボタンがマウスホイールと一体となっている場合、マウスの親指ボタンを中ボタン (X11 では貼り付けに使われています) の代わりに使いたいと思うかもしれません。現在のボタンマッピングは次のコマンドで確認できます:

$ xinput get-button-map device

ボタン番号の順番は自由に変更することができます。例:

$ xinput set-button-map device 1 6 3 4 5 0 7

上記の例では、6番目のボタンを中ボタンにマッピングして、元々の中ボタンは0を指定して無効にしています。Wayland でも上記の設定は使えますが、device の番号とボタンのマップの両方が異なっているので注意してください。Xorg と Wayland で設定を直接相互利用することはできません。

ヒント: (xorg-xev パッケージに含まれている) xev を使うことで実際のボタンがどの ID にマッピングされているか確認できます。

デバイスによっては同じデバイス名で複数回、それぞれ異なる量のボタンが存在します。以下は xinitrc で Logitech Revolution MX マウスのボタンマッピングを変更する例です:

~/.xinitrc
...
for i in $(xinput list | grep "Logitech USB Receiver" | perl -n -e'/id=(\d+)/ && print "$1\n"')
	do if xinput get-button-map "$i" 2>/dev/null| grep -q 20; then
		xinput set-button-map "$i" 1 17 3 4 5 8 7 6 9 10 11 12 13 14 15 16 2 18 19 20
	fi
done
...

ジェスチャー

libinput ドライバーにはスワイプやピンチなどの高度なマルチタッチイベントを処理できるロジックが含まれていますが [2]デスクトップ環境ウィンドウマネージャがまだそれらのアクションを実装していない可能性があります。

EWMH (wm-spec を参照) 互換のウィンドウマネージャでは、代わりに libinput-gestures ユーティリティを使うことができます。このプログラムは libinput のジェスチャーを (libinput-debug-events を使って) タッチパッドから読み込んで設定ファイルにあわせてジェスチャーをマッピングします。libinput に組み込まれている認識機能の範囲内で柔軟な設定が可能です。

libinput-gestures を使用するには、libinput-gesturesAUR パッケージをインストールしてください。デフォルト設定では、スワイプやピンチのジェスチャーが使えます。また、個人設定ファイルで自由にジェスチャーを定義できます。詳しくは README を見てください。

トラブルシューティング

まず、パッケージに含まれている libinput-debug-events ツールで問題をデバッグできないか確認してください。libinput-debug-events --help を実行すればオプションが表示されます。

入力デバイスによってはカーネルのサポートが必要なことがありますが、それを確認するには evemu パッケージに含まれている evemu-describe を使います:

software supported input trackpad driver の出力を a supported trackpad と比較して下さい (ABS_, ABS_MT, REL_X/Y)。クリックパッドの場合 INPUT_PROP_BUTTONPAD プロパティも設定されます。

タッチパッドが GNOME で動作しない

以下のコマンドを実行してタッチパッドのイベントを GNOME デスクトップに送信してください:

$ gsettings set org.gnome.desktop.peripherals.touchpad send-events enabled

KDE の Touchpad KCM におけるタッチパッドの設定が反映されない

KDE の Touchpad KCM は Xorg における libinput をサポートしていますが、まだ全てを GUI で設定することはできません。タイピング中はタッチパッドを無効化するなどの設定は使うことができません。また、グレーになっているオプションも存在します。サポートが改善されるまで、xinput set-prop で手動でオプションを設定してください。

参照