如何开始编写Gnome Shell扩展

How to start writing Gnome Shell extensions

本文关键字:Gnome Shell 扩展 何开始 开始      更新时间:2023-09-26

我发现很难找到关于Gnome Shell扩展的文档。我在Gnome Wiki上找到了一些东西(它是一级链接),但不多:

http://live.gnome.org/GnomeShell/Extensions

这里的问题是GJS和它的绑定。绝对没有文档,有很多sigsegv,绑定还没有准备好(GLib, Gio和其他)。唯一有效的是从GIR为种子JavaScript实现生成的非官方文档:

http://roojs.org/seed/gir - 1.2 - gtk - 2.0 -/- seed/

从哪里得到更多的例子?我想读取目录,文件,生成进程,打开网络套接字和做其他事情。

更新:告诉我如何在GJS中逐行读取文件。根据谷歌这是不可能的。谢谢。

GNOME Shell使用GJS,而不是Seed。两者之间存在一些差异,这可能解释了为什么你会遇到问题。

使用GOBject自省,您可以阅读原始库的文档,并根据您正在使用的语言调整每个方法/函数的签名。

在您的特殊情况下,对于文件、网络等,您可能需要检查GIO。您可以查看Platform Overview以查看其他可用的内容。您还可以在JavaScript中查看一些示例(但不是扩展)。

最后但并非最不重要的是,很快将推出一个带有扩展的网站。

好吧,假设使用Gnome3,您拥有跨各种编程语言的相当统一的API,这些API是从相同的GIR文件生成的。因此,您应该(至少在理论上)能够从GObject Introspection中检索所有API(我希望有文档)。反过来,您应该能够轻松地将示例代码从另一种语言转换为此API的JavaScript。

理论上。我尽量避免使用JavaScript,用JavaScript开发桌面应用程序是我最不愿意做的。