检测盖子旋转 - 联想Thinkpad Yoga 15

时间:2015-09-27 21:13:44

标签: linux sensor tablet iio

我刚买了联想Thinkpad Yoga 15(20DQ001KUS),售价799美元。这是一个链接: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度。任何人都可以帮我这个吗?

我目前的脚本链接如下,如果有其他人想知道我是怎么做的(或者是否有其他人想提出建议),我只花了一天时间,所以#&# 39;远远没有完成。对于其他需要相同功能的人来说,我可能会在以后的某个时间点发布GNU版本。

https://gist.github.com/anonymous/5d2c2d2967eac8774b69

P.S。顺便说一句,我仍然试图从ALPS触摸板获得全部功能。使用一些psmouse DKMS安装程序,我已经能够获得多点触控功能,如双指滚动和两个/三个手指点击工作。然而,3个物理按钮不做任何事情(即使在xev / evtest中)。将proto = imps传递给psmouse模块会导致它们工作,但会破坏多点触控功能。如果有人想为此提供建议,我也会感激不尽。

0 个答案:

没有答案