在 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

相关内容