在 Thinkpad Yoga 11e 上检测平板电脑模式

在 Thinkpad Yoga 11e 上检测平板电脑模式

我有一台 Yoga 11e(Thinkpad 型号,不是 Chromebook),运行的是 Ubuntu 17.04。触摸屏运行良好,这是我首次安装 Ubuntu 时最担心的问题,但现在我遇到了一个问题:在平板电脑模式下键盘保持活动状态,这意味着只需握住设备或将其放下,都可能导致意外按键。

我希望可以安排一个脚本在进入/退出平板电脑模式时运行以禁用键盘,但我还没能弄清楚如何检测该模式的变化。

我在网上找到一些建议,说其他 Yoga 型号在平板电脑模式下会提供特定的键码事件,但这里似乎并非如此。事实上,查看所有可用的输入设备,似乎没有任何与平板电脑和笔记本电脑模式之间转换相关的事件。我使用以下代码来检查输入事件:

#!/usr/bin/env python3

import evdev
from selectors import DefaultSelector, EVENT_READ

selector = DefaultSelector()

for dev in evdev.list_devices():
    selector.register(evdev.InputDevice(dev), EVENT_READ)

while True:
    for key, mask in selector.select():
        device = key.fileobj
        for event in device.read():
            print(key, event)

我还查看了可通过 acpi_listen 获得的 ACPI 事件,但看起来这个工具本身实际上只是输入子系统的另一种视图。

您是否知道有什么方法可以检测 Yoga 11e 是否更改为平板电脑模式?

更新 1

进一步深入研究,在查看thinkpad_acpi模块的源代码并拆解 ACPIDSDT表后,看起来 (a) 模块thinkpad_acpi依赖名为MHKG确定平板电脑状态的 ACPI 方法,并且 (b) 在DSDTYoga 11e 的表中,此方法似乎为无操作。但是,我对 ACPI 一无所知,所以也许我读得不对……即使我读得对,我也不确定下一步该怎么做。

相关内容