用于gnome shell扩展开发的文档?


22

我一直想开发一些Gnome Shell扩展,因为它们只是在javascript中,但是我一直在寻找并且实际上有零个文档,在我看来人们只是说使用基本Gnome文档的任何地方,但这无济于事,我可以找不到用于扩展的导入的任何文档,或用于扩展开发的任何类型的javascript api,我尝试浏览了一些教程(其中大多数用于Gnome 3.0,而不是3.2),但是没有任何帮助。

有谁知道他们是否正在编写扩展开发文档?我真的很喜欢一些好的文档...


您是否已经看到此页面:live.gnome.org/GnomeShell/Extensions
本杰明

Answers:


7

我对演示代码和教程不满意的原因是,它们引入了一堆随机导入,并且从不解释它们是什么或如何使用它们。我正在构建自己的答案,供其他人添加,以便人们实际上可以知道他们可以调用什么功能,可以导入什么,等等。

有针对Gnome Shell生成的文档,但是它有些不完整-我找不到在各种教程,示例和已发布的扩展中看到的大多数内容。

唯一真正可靠的文档是Gnome Shell源代码本身。根本没有其他任何最新或完整的方法来知道可用的内容。

这两个起点特别好:

C源代码显示有一个重要的对象称为 global不需要导入,它提供了对诸如窗口管理器(包括键绑定),会话信息,可用屏幕等内容的访问。来源:

我想知道如何使用global.display对象,目前最好的文档是 Alan Knowles提供的

可以通过GObject自省绑定导入其他内容,例如:

通常,您可以浏览参考文档以了解各种Gnome组件,以查找其他导入。

关于窥镜的注释:尽管在窥镜上使用这些导入有一些古怪之处-我浪费大量时间只是试图即时测试事物。例如:

const Clutter = imports.gi.Clutter;

...不起作用,因为Clutter已经存在。但是之后:

const MyClutter = imports.gi.Clutter;

...也不会起作用;MyClutter未定义,因此无法使用。你所要做的:

MyClutter = imports.gi.Clutter;

当然在这种情况下 Clutter已经存在,因此并不是必须的。但是由于没有记录在外观玻璃命名空间中,什么已经存在和尚未存在,因此如果您尝试导入某些内容并遇到这些问题,请记住这一点。

其余问题:

  • 什么Mainloop啊 这是导入main.js并似乎具有与GLib主循环相关的功能。是否有相关文件?
  • 什么imports.misc啊 那里似乎有一些非常有用的东西,例如ExtensionUtils -那是什么?
  • 您如何使用DBus?内省呢?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.