Wayland でノートパソコンのキーボードをオンデマンドで無効にする

Wayland でノートパソコンのキーボードをオンデマンドで無効にする

私は、AMD Ryzen 5 4500U CPU を搭載し、Ubuntu 22.10 を実行している HP ENVY 13-ay0000 x360 コンバーチブル ラップトップを使用しています。自動回転が機能せず、キーボードとタッチパッドはラップトップが完全に後ろに折りたたまれた場合にのみ無効になりますが、中間のときは無効になりません。これは次のバグによるものだと思います:https://bugzilla.kernel.org/show_bug.cgi?id=212615

回避策として、スクリプトなどを使用して手動で画面を回転し、キーボードを無効にしようとしました。画面の回転とタッチパッドの無効化はなんとか機能しましたが、キーボードを無効にして再度有効にする方法がわかりません。Wayland を使用しているため、xinput は使用できません。次のスレッドを確認しました:https://unix.stackexchange.com/questions/381944/how-to-disable-internal-keyboard-on-fedora-26-wayland

しかし、永続的ではなく、オンデマンドで無効化および再有効化する必要があるため、どちらの解決策も機能しませんでした。キーボード イベントを取得しようとしましたが、これによりタッチスクリーンとタッチパッドの動作が不安定になります。

これを実現する方法について何かアイデアはありますか?

答え1

xwayland を使用するユーザーの場合は、まずイベント ID を見つけます。

$ libinput list-devices

必要に応じて、libinput をインストールします (sudo apt install libinput-tools)。これにより、すべての入力デバイスとそのイベント ID が一覧表示されます。スクロールして適切なセクション (「AT Translated Set 2 keyboard」など) を見つけ、Kernel: /dev/input/event# という行を見つけます。次のコマンドでは、イベント番号を使用します。

$ udevadm info -a -p /sys/class/input/event#

最もユニーク/区別される可能性が高い属性を見つけます。たとえば、ATTRS{name}=="AT Translated Set 2 keyboard" として、ルールファイルを作成します。

sudo ナノ /etc/udev/rules.d/99-disable_touchscreen.rules

以下のルールに従って

KERNEL=="event*", ATTRS{name}=="AT Translated Set 2 keyboard", ENV{LIBINPUT_IGNORE_DEVICE}="1"

次に、次のコマンドを実行して、機能するかどうかを確認します。

$ udevadm test /sys/class/input/event#

そして検索

LIBINPUT_IGNORE_DEVICE=1

おそらく最後の 3 行内です。その後再起動すると、内蔵キーボードが無効になります。

礼儀:https://wiki.archlinux.org/title/Dell_XPS_13_(9343)#タッチスクリーンを無効にする

関連情報