Cor*_* O. 5 linux tablet iio sensors
我刚刚以 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 模块会使它们工作,但会破坏多点触控功能。如果有人愿意为此提供建议,我也将不胜感激。
这适用于我的jinlon(HP Elite c1030 Chromebook):
cat /sys/bus/iio/devices/iio:device0/in_angl_raw\nRun Code Online (Sandbox Code Playgroud)\n我得到一个以度为单位的角度。500由于某种原因,它在完全处于平板电脑模式时显示。
特别是为了检测平板电脑模式,我可以使用acpi_listen:
07:18:45 rajas@jinlon ~ \xe2\x86\x92 acpi_listen\nvideo/tabletmode TBLT 0000008A 00000001\nvideo/tabletmode TBLT 0000008A 00000001\nvideo/tabletmode TBLT 0000008A 00000000\nvideo/tabletmode TBLT 0000008A 00000000\nRun Code Online (Sandbox Code Playgroud)\n00000001正在进入平板电脑模式和00000000正在退出平板电脑模式。