我刚刚以 799 美元的价格购买了联想 Thinkpad Yoga 15 (20DQ001KUS)。这是一个链接:http ://shop.lenovo.com/us/en/laptops/thinkpad/yoga-series/yoga-15/#tab-tech_specs
我真的很想让平板电脑功能在 Linux Mint 17.2 中运行。我一直在做一些谷歌搜索,并在下面找到了一些旧脚本:
https://github.com/admiralakber/thinkpad-yoga-scripts
https://launchpad.net/magick-rotation
在他们的帮助下,我能够编写一个 python 脚本来轮询我的加速度计值(在 /sys/bus/iio/devices/iio:device* 中找到)以确定何时应该旋转屏幕。困难的部分似乎是检测设备何时应处于笔记本电脑或平板电脑模式。如果我将盖子弯曲超过 180 度,或者如果我将设备侧向倾斜以使其与地面垂直,则我的键盘上的灯会关闭,并且键盘本身会完全禁用。这似乎是 BIOS 功能,表明肯定有传感器。这将是理想的,它将解决我当前的所有问题。
不幸的是,我无法在 linux 中找到任何可以告诉我计算机何时应处于平板电脑模式的传感器读数。我需要它来确定何时应打开自动旋转,何时应禁用触摸板/触控板/键盘,以及何时应启动或终止屏幕键盘应用程序。
与此同时,我正在使用盖子的倾斜传感器(也可以在 /sys/bus/iio/devices/iio:device* 中找到)。这很有效,因为它可以检测帐篷模式和平板电脑模式。不幸的是,传感器与重力对齐,因此它无法区分笔记本电脑模式和站立模式(因为盖子/屏幕相对于重力的方向相同)。
旧脚本表明旧型号中有一个特殊键码,当模式从笔记本电脑更改为平板电脑时触发,反之亦然。不幸的是,当我监控 xev/evtest 时,我没有看到任何这样的键码/扫描码被抛出。
简而言之,我希望能够以编程方式确定笔记本电脑屏幕/盖子何时打开超过 180 度。谁能帮我这个?
我当前的脚本链接如下,如果其他人想看看我是怎么做的(或者如果其他人想提出建议),我只花了一天时间,所以它还远未完成。我可能会在稍后的某个时间点将它发布为 GNU 版本,以供其他需要相同功能的人使用。
https://gist.github.com/anonymous/5d2c2d2967eac8774b69
PS 顺便说一句,我仍在尝试从 ALPS 触摸板获得全部功能。使用一些 psmouse DKMS 安装程序,我已经能够获得多点触控功能,例如两指滚动和两/三指点击工作。但是,这 3 个物理按钮不执行任何操作(即使在 xev/evtest 中也是如此)。将 proto=imps 传递给 psmouse 模块会使它们工作,但会破坏多点触控功能。如果有人愿意为此提供建议,我也将不胜感激。