我一直致力于创建Four Corners compiz插件的工作,该插件将用于Moblin 2的主要上下文导航机制。
该插件使用时,屏幕4角有4个“按键”(alpha颜色混合效果),每个按键提供一些关键机制来调用设备的功能并与之进行交互。four corners这个名字来自美国的一个四点(quadripoint)界标,标记美国犹他州(Utah)、科罗拉多州(Colorado)、亚利桑那州(Arizona)和新墨西哥州(New Mexico)的交界点。
根据这个隐喻,我们使用地理上与四角关联的美国州名来表示各个角。这样,屏幕左上角的按钮称为“犹他”(Utah),与这个按钮关联的应用程序/插件/环境菜单/动作等都称为“犹他”(Utah),右上角的按钮称为“科罗拉多”(Colorado),左下角的按钮称为“亚利桑那”(Arizona),右下角的按钮称为“新墨西哥”(New Mexico)。根据这个法则,我还将各按钮与一个“角”(NW西北、NE东北、SW西南和SE东南)相关联以简化引用,使按钮和其屏幕“位置”清晰地关联起来。很快我将用一篇单独的博客详细介绍打算让每个按钮实现的功能。
现在回到这个屏幕短片(screencast)上来。使用four corners(以下简称为“fc”)插件时有一种情况,当应用程序进入“全屏”模式时,插件按钮会自动隐藏,因为它认为当前的交互环境需要“吸引”用户的注意力一段时间,用户不应该(也不想)让按钮或其他“要做的事情”分散注意力。这种情况的典型例子是全屏观看一部电影或视频。在这个例子中,我们假定用户已经浏览到一些视频,做出了选择,做好(心理和生理)准备要在一段时间内集中精力观看选中的视频。
在这个屏幕短片示例中,您可以看到,一开始4角按钮在屏幕上显示并可用。终端窗口启动,但窗口不是全屏模式,所以按钮仍可用。然后,我将其设置为全屏模式。您可以看到按钮自动隐藏起来,直到我返回非全屏模式。最后,我播放了一部电影。按钮保持可见直到我进入全屏模式,此时按钮又隐藏起来直到我返回窗口模式。
我制作这段示例的方法是,运行一个嵌套XGL X服务器,将分辨率设置为800x480,在compiz窗口管理器下运行Xfce桌面/会话管理器。我使用Xfce完全是因为当时方便,没有别的用意。我还编译了compiz/ccsm/libcompizconfig以使用平面文件(ini)配置。
通过libcompizconfig,该插件当前有一些可用选项,允许用户/管理员控制按钮大小、图标、动作和窗口匹配规则(但是后两者还没有完全成熟)。
希望这个示例对大家了解我们的研发方向有所启发,并对该插件有一个感性认识。当然还有很多事情要做(对此git repo里的TODO文件有一些提示),希望大家积极参与进来,献计献策,进行头脑风暴(brainstorm)。
您可以通过git获取目前正在研发的所有Moblin compiz插件的源代码,包括上述four-corners (fc)插件在内,命令如下:
$ git clone git://git.moblin.org/moblin2/moblin-compiz-plugins.git本文译自Moblin.org技术社区, 点击此处,查看原文
更多内容,到“Moblin技术中国”专区