我刚刚以 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 模块会使它们工作,但会破坏多点触控功能。如果有人愿意为此提供建议,我也将不胜感激。
我创建了一个路由加控制器,用于按照此处的说明在 ruby on rails 中执行动态 css:
http://www.misuse.org/science/2006/09/26/dynamic-css-in-ruby-on-rails/
考虑到较新版本的 ruby on rails 需要进行一些更改,但问题出在 routes.rb 条目上。原来的条目是这样的:
# dynamic CSS (stylesheets)
map.connect 'rcss/:rcssfile',
:controller => 'rcss',
:action => 'rcss'
Run Code Online (Sandbox Code Playgroud)
这不适用于较新版本的 RoR,我发现此解决方案有效:
# dynamic CSS (stylesheets)
map.connect 'rcss/:rcssfile.css',
:controller => 'rcss',
:action => 'rcss'
Run Code Online (Sandbox Code Playgroud)
然而,现在我很沮丧,因为我无法获得一个包罗万象的文件类型扩展处理程序。该请求必须具有 .css 扩展名。进一步玩弄它,我想出了这个:
# dynamic CSS (stylesheets)
map.connect 'rcss/:rcssfile.:format',
:controller => 'rcss',
:action => 'rcss'
Run Code Online (Sandbox Code Playgroud)
所以这要好得多。现在我可以请求一个以 .foobar 或其他任何内容结尾的文件,并将它与处理程序匹配。不是我一定会,但更多的是了解一切。
然后我尝试创建一个看起来像 "foo.net.rcss" 的文件。现在看来,第一个点把一切都搞砸了。“没有路由匹配 rcss/foo.net.css”。我的问题如下:
无论文件名中有多少个点,我如何匹配任何文件名和任何扩展名?
为什么第一个示例在更高的 RoR 版本中不起作用?
为什么多个点会搞砸比赛?
在此先感谢您的帮助。
- - - - 更新 - - - -
我正在使用 Rails 3.0.5 …