我最近自己研究了它。文档通常很少或过时。以下是一些帮助我开始(并通过开发)的资源:
由于文档几乎不可用(或最新),您需要进行大量源代码阅读。我链接了上面的 gnome-shell 源代码(JavaScript 部分),这是一个很好的开始,可以深入研究非官方文档(这是您会找到的最完整的内容)未涵盖的部分。
还有一点特别有用的是检查extensions.gnome.org是否有与您想要创建的内容类似的扩展,并查看它们的源代码(其中大部分是 GitHub 或 Bitbucket 上的开源。您也可以安装它们并找到下的来源~/.local/share/gnome-shell/extensions/
)。
在搜索要使用的东西或特定函数的更多文档时,您还可以查阅不同语言的绑定手册(认为参数和返回值可能不匹配)。
最后但同样重要的是,这里有一些调试建议:
LookGlass 并不是特别有用。它只显示一行异常(描述),并且仅当它们发生在启动时(当您的扩展程序首次启动时)。
有关完整的 StackTraces 和运行时异常,请查阅~/.xsession-errors
-file。它可能很长而且很臃肿。我使用这个方便的脚本来阅读它:
# Grabs the last session-errors from the current X11 session.
# This includes full Stack-Trace of gnome-shell-extension errors.
# See https://live.gnome.org/GnomeShell/Extensions/StepByStepTutorial#lookingGlass
tail -n100 ~/.cache/gdm/session.log | less
请注意,从 Gnome 3.6 开始,如果您gdm
用作显示管理器,则当前会话日志是文件~/.cache/gdm/session.log
.
在一些使用 systemd 的较新发行版上,您可以通过以下方式获取错误日志:
journalctl -f /usr/bin/gnome-session
要调试扩展的首选项部分,您可以gnome-shell-extension-prefs
从终端使用 -tool 启动首选项,以查看控制台上的任何异常输出(您也可以调用该工具,如gnome-shell-extension-prefs [uuid]
,直接显示您的扩展首选项)。
由于目前还没有真正的断点调试方法(有,但很棘手),您可以登录控制台进行快速检查,使用print()
-function。您将看到上述输出(在会话错误文件中或启动gnome-shell-extension-prefs
-tool 时在终端上)。
虽然进入它可能有点困难,但扩展框架非常强大。玩得开心!
我写了一篇更详细的博客文章,可以在这里找到:制作 Gnome-Shell 扩展