1:LookingGlass 基本上是一个 GJS 控制台。它允许您执行和测试 GJS 的行,抓取和操作对象并用于r(...)
在以下命令中使用结果。你得到的原因r(...) = undefined
是因为log(String);
没有返回任何东西,因此结果是undefined
.
2:要么记录整个init()
和enable()
,然后检查它中断的位置,并尝试使用 log 或注释掉代码行来查明断行(尽管罪魁祸首可能在一般日志中定义,在底部的部分中进行了描述)。
3:没有官方文档。他们有一些关于 GNOME Shell 3.4 的过时教程,与 3.6 的解释略有不同,在您使用的库的 C(++) 端有几页(尽管大多数函数、变量和常量使用相同的名称),但是对于您需要经验的任何真实信息,挖掘其他 GNOME 和 shell 扩展代码或一些非官方资源。然而,非官方来源并不总是最新的。
- 在 RooJS 生成的最新文档,尽管至少事件是关闭的,因为它们用 -(减号)而不是 _(下划线)分隔。
- 旧的,但最有用的文档,MathematicalCoffee 有更多有用的东西,比如深入解释的代码,它是一个非常可靠的学习资源。
- 生成的文档,几乎所有东西都在那里,非常广泛,但有时该网站会离线几天。您可以尝试克隆 git repo 以在本地运行它,但 readme.md 是他们分叉的内容的逐字副本......
- 用户最近的参考,虽然这非常广泛,但如果您使用的是旧版本的 GNOME Shell,它并没有多大用处,因为已弃用和旧版本比下一代产品更有可能工作。我建议您查看官方扩展网站并浏览您可以获得的任何有趣的扩展源代码,因为这是您学习任何东西的最佳选择。
通常调试 gnome 可以通过多种方式完成。- 使用该log()
函数并在命令行中遵循 journalctl,检查 GNOME 或 JS,使用journalctl -f | grep -i js
(或使用grep -i gnome
)。无论如何,您都会看到一些警告,但大多数都会提到它们来自哪个扩展名。这很好,适用于所有实现 systemd 的发行版 - 或者记录作为 GNOME 一部分的特定进程,journalctl /usr/bin/gnome-session -f -o cat
请注意,某些发行版和版本会记录到不同的文件,而旧 GNOME 版本通常会记录到您的显示管理器登录的任何内容。- 使用官方(虽然很棘手)的日志记录方式:GNOME 进行调试。我个人无法让它发挥作用。