我设法做了一些我想做的事情,但我感到完全饿了信息。我在任何地方找不到任何有用的文档。我浪费了我整整一天的生活疯狂地搜索每一个可想象的搜索词,在绝望的尝试找到有用的信息。
GNOME网站有数百个扩展可供下载。这些不是微不足道的3衬垫;它们是复杂的代码段。它拒绝相信任何人都可以写这些没有文档解释如何做到。
请,有人能告诉我实际文档在哪里?到目前为止,我已经设法做的最好是拆开现有的扩展试图跟踪魔术命令,执行我感兴趣的特定位。(不是一个容易的任务!)
命令名,对象路径,示例程序,任何东西都会有所帮助!
> Basic Stuff
> Basic stuff on development
> Step-by-step tutorial
> Unofficial documentation for the JavaScript bindings of many libraries
> The sources of the gnome-shell’s JavaScript bindings
> Explanation of the St (Shell Toolkit) Ui-Toolkit components.
> Some unofficial guidelines to get your extension on extensions.gnome.org
由于文档几乎不可用(或最新),您需要做大量的源代码阅读。我链接上面的gnome-shell源代码(JavaScript部分),这是一个很好的开始,当潜入到没有被官方文档覆盖的部分(这是你会发现的最完整的东西)。
什么也特别有用的是检查extensions.gnome.org扩展,做类似的事情,你想创建,并查看他们的来源(大多数是开源的GitHub或Bitbucket。你也可以安装它们,并找到源码〜/ .local / share / gnome-shell / extensions /)。
当搜索要使用的东西或有关特定函数的更多文档时,您还可以参考不同语言的绑定手册(认为参数和返回值可能不匹配)。
最后但并非最不重要的,这里是一些调试建议:
LookingGlass不是特别有帮助。它只显示一行异常(描述),并且只有当它们在启动时(当您的扩展首次启动时)发生。
对于完整的StackTraces和运行时异常,请参考〜/ .xsession-errors-file。它可能很长,。肿。我用这个handy script读它:
# 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
Note that since Gnome 3.6,if you are using
gdm
as display manager,the current session log is the file~/.cache/gdm/session.log
.
在一些较新的发行版使用systemd,你可以得到错误日志:
journalctl -f /usr/bin/gnome-session
为了调试扩展的prefs-part,可以通过从终端使用gnome-shell-extension-prefs-tool启动首选项,在控制台上查看任何异常输出(也可以调用gnome- shell-extension-prefs [uuid],直接显示您的扩展首选项)。
因为目前没有真正的调试断点的方法(有,但it’s tricky),你可以登录控制台进行快速检查,使用print() – 函数。您将看到如上所述的输出(在会话错误文件中或在启动gnome-shell-extension-prefs-tool时在终端上)。
虽然它可能有点难以进入它,扩展框架是相当强大。玩的开心!
我写了一个Blog-Post有一些更大的细节,这可以在这里找到:Making Gnome-Shell Extensions