evdevからlibinputへ移行したSlackware
2023年11月17日
著者: 竹洞 陽一郎
はじめに
Linuxシステムを使う上で、入力デバイスの管理は非常に重要な要素です。
特に、キーボードやマウス、タッチパッドといったデバイスは、日々のコンピューティング体験の核となる部分です。
今回は、Linuxシステムにおける2つの重要な入力デバイス管理コンポーネント、libinputとevdevについて詳しく解説します。
evdevの概要
基本的な役割
evdev は、Linuxカーネルの一部であり、様々な入力デバイス(キーボード、マウス、タッチパッドなど)からのイベントを一般化し、ユーザースペースへ伝達します。
カーネルレベルでデバイスドライバとして機能し、デバイス固有の処理を抽象化します。
主な特徴
- evdevデバイスドライバはカーネルモジュールとして実装され、広範なデバイスのサポートが可能です。
- X Window Systemのようなウィンドウシステムで広く使用されています。
libinputの概要
基本的な役割
libinput は、evdevからイベントを受け取り、それをより洗練された形式に加工するユーザースペースのライブラリです。
デバイス間の一貫性を保ちながら、ジェスチャー認識やその他の複雑な入力処理を実現します。
主な特徴
- Waylandコンポジタや新しいX.Orgサーバー環境で採用されています。
- タッチパッドやタッチスクリーンのような複雑な入力デバイスに対する高度な機能(マルチタッチジェスチャーなど)をサポートしています。
libinputとevdevの違い
処理レベルの違い
evdevは低レベルの入力イベントを処理し、libinputはこれらのイベントを高レベルのインタラクションに変換します。
使用環境の違い
evdevはX Window Systemを含む古いシステムで広く使われていますが、libinputはWaylandや新しいX.Orgサーバーのような最新のシステムで主流になっています。
X Window Systemでは、2014年7月17日リリースの1.16.0から、libinputが取り入れられています。
機能性の違い
libinputはジェスチャーや複雑なタッチ操作をサポートし、一貫性と互換性を提供しますが、evdevはより基本的な入力イベントに焦点を当てています。
Slackwareでのlibinputへの移行
Slackwareでは、15.0のリリースの前にcurrentで採用されて反映されました。
現在は、キーボードの設定のテンプレートとして、以下のディレクトリに設定ファイルがあります。
/usr/share/X11/xorg.conf.d/91-keyboard-layout-libinput.conf
以前、存在していた、evdevの設定テンプレートファイルは無くなっています。
ですから、以前より90-keyboard-layout-evdev.confをお使いの方は、この機会に91-keyboard-layout-libinput.confに移行されてはどうでしょう?
sudo cp /usr/share/X11/xorg.conf.d/91-keyboard-layout-libinput.conf /etc/X11/xorg.conf.d/
まとめ
Linuxの入力システムは、evdevとlibinputの両方に大きく依存しています。
evdevは低レベルのデバイスイベントを扱い、libinputはそれらをより高度なユーザーインターフェイスのインタラクションに変換します。
現代のLinux環境では、これらのコンポーネントが連携して、より洗練されたユーザーエクスペリエンスを提供しています。