最近一直在做网页前台的工作,偶然看到对gnome-shell的扩展的介绍,发现这个扩展系统使用的主要是网页设计的两大利器——javascript和css,而且用的是相当先进的css3,于是一下子就陷进去了。一头扎进茫茫网海,请出谷大婶一番狂搜。结果发现网上相关的中文资料寥寥无几,反复出现的一个例子也跑不起来。无奈之下转到gnome维基中关于扩展的部分https://live.gnome.org/GnomeShell/Extensions又从链接的资料里知道了lg(lookingGlass)。
一、很酷很强大的lookingGlass
首先我们来看一看这个lookingGlass,它是一个类似于Firebug的东东,或者更准确的说就是gnome-shell上的油猴子。Alt+F2,输入lg,打开一个控制台界面。看起来相当现代,本身就带有透明效果 第一个是Evaluator,就是gnome-shell的脚本执行器,可以运行javascript并实时产生效果。连按两下tab键,会列出所有可用的对象、数据类型、事件等。输入global敲一下回车,就会出现一个新行,点击新行里的文字,就会在新窗口里列出
global所有可用的变量、方法等。再加一个点号".",就可以使用tab补全。 第二个是Windows,列出所有当前的可见窗口。 第三第四暂时不说它,就是字面意思。第五个很关键,列出当前系统安装的所有gnome-shell扩展,如果扩展出错的话就在这里显示出来,然后可以到扩展目录里找到脚本文件,搜索出错的语句。 就拿一个很流行的例子来练手吧。
代码: 全选
global.get_windows().forEach(function(w){w.set_scale(0.5,0.5)})
左上角那个小图标可以用来选中桌面元素,比如说我在上面点一下,然后移到顶栏,那么顶栏就会出现一个红色的边框,再点一下鼠标,顶栏的相关信息就会输入控制台。类似ShellGenericContainer "panel",意思是属于Shell名字空间中的GenericContainer类,内部ID是panel,大概就是这么个意思。
在lookingGlass的上边有一排菜单,最后一个就是扩展的了。如果你装了扩展的话,在每个扩展列表底下都有一个错误提示,如果出错的话可以到源代码里找一下,然后用lookingGlass的弹出窗口或者tab补全看看问题出在哪。这也是非常好的学习过程。多积累这种跟踪代码的经验,才能真正体现出开源的优势,自己可以在第一时间解决问题,那感觉一定很棒。
二、简洁的界面
我一向认为,学习一个东西最好从可见的元素开始,因为容易调试,也更能激发成就感。总的来说gnome-shell分成两种模式,一种是平常使用的常规意义上的桌面,你可以在桌面添加快捷方式,进行切换窗口等一系列操作。还有一个是活动界面,我的理解就是一个覆盖在常规桌面上的快捷操作层,在这种界面下可以更容易的寻找软件,甚至直接输入软件的前几个字母直接搜索。在这两种模式下,顶栏和下面的通知栏是公用的,在启动活动窗口时活动界面覆盖在桌面上,平时则隐藏起来。gnome-shell的脚本系统主要控制的是顶栏、通知栏和活动界面。
以下是常规界面: 以下是活动界面: 三、从lookingGlass访问基本对象
正如以上的例子中显示的,global主要包含一些系统总体的信息,像所有打开的窗体,当前系统时间之类的。访问gnome-shell的界面则要用到Main对象,例如输入Main.panel再敲回车,就得到顶部面板的对象,可以用Tab补全看看面板的主要方法和对象。Main.overview就是大名鼎鼎的活动界面了,里面包含dash(左边的启动面板),viewSelector就是上面的窗口、应用程序那一栏,相当于火狐的tab标签。还有搜索按钮、工作区列表等。
可以参照这个帖子http://forum.ubuntu.org.cn/viewtopic.php?f=94&t=382883,自己用gnome-shell-extension-tool -c生成一个默认的hello world扩展,然后对照一下。
附注:这里有一篇gnome-shell的wiki里面的文章,虽然是英文的,但是应该不难看懂。谁有时间的话可以翻译出来,这方面中文资料太少了,咱们也该急起直追了!
https://live.gnome.org/GnomeShell/Exten ... epTutorial