我有一台二合一可转换笔记本电脑(HP Spectre x360),使用的是 Ubuntu 24.04。开箱后,几乎所有功能都运行良好:触摸屏运行良好,如果我将电脑完全折叠到“平板电脑模式”,则屏幕键盘会在我需要时弹出,或者我可以通过从屏幕底部向上滑动来手动调出它。
我想做更多的事情,在计算机切换至或退出平板电脑模式时运行脚本。操作系统清楚地知道它处于哪种模式,因为屏幕键盘仅在屏幕折叠为平板电脑模式时弹出,但我不知道如何获取此信息,更不用说在模式更改时触发脚本了。
编辑:我安装了evtest
,并通过反复试验将其追踪到 上的一个事件/dev/input/event11
。但是,我不知道如何监视此事件并在其触发时运行脚本。有什么指导吗?
evtest /dev/input/event11
这是我将计算机置于平板电脑模式然后退出平板电脑模式时的输出:
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x0 product 0x0 version 0x0
Input device name: "Intel Virtual Switches"
Supported events:
Event type 0 (EV_SYN)
Event type 5 (EV_SW)
Event code 1 (SW_TABLET_MODE) state 0
Properties:
Testing ... (interrupt to exit)
Event: time 1738791097.627387, type 5 (EV_SW), code 1 (SW_TABLET_MODE), value 1
Event: time 1738791097.627387, -------------- SYN_REPORT ------------
Event: time 1738791102.134017, type 5 (EV_SW), code 1 (SW_TABLET_MODE), value 0
Event: time 1738791102.134017, -------------- SYN_REPORT ------------
使用
udev
系统,阅读man -k udev;man udevadm
。来自udevadm
man
页面:用于
sudo udevadm monitor
查看进入/离开平板电脑模式时发生的事件。就目前而言,对我有用的解决方案是针对 Linux 的平板电脑模式检测和设置脚本。
libinput debug-events --device /dev/input/event11
它是一个用 Ruby 编写的脚本,用于监视(就我的 HP Spectre x360 而言)的输出并在观察到变化时做出反应。为了达到我的目的,我计划创建一个工作方式大致相同的 bash 脚本,基于下面的示例(感谢 arch 论坛的用户)。我将我的用户添加到“输入”组,以允许我自己访问输入设备,尽管我相信有一种方法可以使用 udev 规则,让我自己只访问我实际需要的设备。