如何调试Cinnamon小程序?

21

我希望编写一个cinnamon applet,这些基于JavaScript。我想要编写的代码会更改服务(打开和关闭服务,类似于WebDeveloperMenuApplet)。我不指望能够对服务启动/停止/重启进行调试,但我想知道如何调试菜单项以及对函数的调用。我还想编写配置applet,这可能涉及到一些更复杂的编码或者调用外部服务器。

是否可以将其加载到Web浏览器中进行调试,或者有更好的调试方式?我不知道导入命令从哪里获取,因此不确定如何在Web浏览器中复制它。

目前正在使用IntelliJ IDEA作为IDE,但是我很愿意为这个项目切换到任何其他工具。

3个回答

20

在这里,您最好使用将消息打印到终端的老技巧。使用global.log(...)实现,这些行将发送到~/.cinnamon/glass.log文件中,要查看它们,只需执行以下操作:

tail -f ~/.cinnamon/glass.log 

同时,正如@elParaguayo所述,按下Alt+F2可以打开Cinnamon提示符,输入lg并按下ENTER以显示Looking Glass Debugger顶部对话框,在那里您可以在Exec:输入框中键入表达式并查看列在Results选项卡中的结果。


4
切换Looking Glass调试器的快捷键是Win+L。正如@lestcape所提到的,~/.xsession-errors也是一个含有有用调试信息的文件。 - DLight
从 Cinnamon 5.4.9 开始,我的 Win+L 快捷键无法使用了。但 Alt+F2 lg 仍然可以使用。 - ulidtko

8

我知道这篇文章已经超过一年了,但当我试图编写自己的小程序时,我遇到了它,所以我想分享一下我的经验。

就调试而言,我不确定这些是否可以在浏览器中完成。我通过更新我的代码,在 Cinnamon 中重新激活 applet,然后查看错误日志(Alt+F2,然后键入 lg)来调试我的代码。

这并不是一个很好的解决方案,但这是我找到的唯一解决方案。


你如何重新激活小程序?我发现即使将其从面板中移除并重新添加,它也不会重新加载。 - Michael Scheper
按下Super+L键启动“Looking Glass”,然后重新启动Cinnamon。 对我来说只需要半秒钟。 - ssmid

5
无法使用浏览器。 您需要阅读以下内容:
  1. ~/.xsession-errors(因为如果您与其他系统应用程序交互,不是所有错误都会显示为cinnamon错误),或者您也可以阅读cinnamon的终端输出(与xsession-errors相同,但将动态更新)。 执行“cinnamon --replace”以启用输出模式,可能需要执行多次。

  2. ~/.cinnamon/glass.log 或者您可以使用Melange - Cinnamon调试器。 只需单击cinnamon面板,TroubleShoot并查找应用程序即可。


2
我需要重新启动Cinnamon才能读取小程序的更新版本(即使我删除/添加了小程序,也没有帮助)。 我找到了“重新启动Cinnamon”小程序(可以在小程序->下载中下载)[链接](https://cinnamon-spices.linuxmint.com/applets/view/14)。 但我想这是一种蛮力方法,如果有人知道更好的方法,请分享。 - Attila123
2
@Attila123:我发现在命令行中输入以下内容可行:dbus-send --session --dest=org.Cinnamon.LookingGlass --type=method_call /org/Cinnamon/LookingGlass org.Cinnamon.LookingGlass.ReloadExtension string:'app@domain' string:'APPLET'(其中 app@doman 是 applet 的 UUID,如 metadata.json 中所定义)。来源:https://gist.github.com/hyOzd/35e913db620b3ba086fb - Michael Scheper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接