在 Wayland 中按需停用筆記型電腦鍵盤

在 Wayland 中按需停用筆記型電腦鍵盤

我有一台 HP ENVY 13-ay0000 x360 可轉換筆記型電腦,配備 AMD Ryzen 5 4500U CPU,運行 Ubuntu 22.10。自動旋轉不起作用,僅當筆記型電腦完全向後折疊時鍵盤和觸控板才會被停用,而在中間則不會。我相信這是由於這個錯誤:https://bugzilla.kernel.org/show_bug.cgi?id=212615

作為解決方法,我嘗試透過腳本或類似方式手動旋轉螢幕並停用鍵盤。螢幕旋轉和觸控板禁用我設法開始工作,但我正在努力弄清楚如何停用和重新啟用鍵盤。使用 xinput 不起作用,因為我正在使用 wayland。我檢查了這個線程: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 nano /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)#Disable_the_touchscreen

相關內容