我有一台 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