检测盖子旋转 - Lenovo Thinkpad Yoga 15

问题描述 投票:0回答:1

我刚刚以 799 美元的价格购买了 Lenovo 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

附注顺便说一句,我仍在尝试从 ALPS 触摸板获得完整的功能。使用一些 psmouse DKMS 安装程序,我已经能够获得多点触控功能,例如两指滚动和两/三指点击工作。然而,这 3 个物理按钮没有任何作用(即使在 xev/evtest 中)。将 proto=imps 传递给 psmouse 模块会使它们工作,但会破坏多点触控功能。如果有人愿意为此提供建议,我也将不胜感激。

linux sensors tablet iio
1个回答
0
投票

这适用于我的

jinlon
(HP Elite c1030 Chromebook):

cat /sys/bus/iio/devices/iio:device0/in_angl_raw

我得到一个以度为单位的角度。由于某种原因,当完全处于平板电脑模式时,它会显示

500

© www.soinside.com 2019 - 2024. All rights reserved.