如何通过命令行正确启动 Gnome-Shell 扩展?

How to properly start a Gnome-Shell extension via command line?

myexentension@me.com 文件夹复制到 .../gnome-shell/extensions/ 后,我在终端上执行此命令:

gnome-shell-extension-tool -e myexentension@me.com

然后,我使用 Alt + F2 重新启动会话并执行 r,一切正常。

但是我只能通过命令行启动我的扩展程序吗?没有Alt+F2+r?不重新启动我的 gnome-shell 会话?

个人比较喜欢纯色的Alt+F2, r+输入但也许尝试禁用和启用:

gnome-shell-extension-tool -d myexentension@me.com && gnome-shell-extension-tool -e myexentension@me.com

gnome-shell-extension-tool -r myexentension@me.com

这可能会做同样的事情。还有 gnome-shell-extension-prefs 可以用来做同样的事情(并且由于某些原因通常隐藏在 Gnome 中)。

根据互联网上的一些答案,向 gnome-shell 进程发送 SIGHUP 会重新启动它(即 killall -HUP gnome-shell),但我无法在这个并且在代码中找不到信号处理。我所知道的是,这应该完全等同于 Alt+F2 r:

busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")'

因为除了对消息的 gettext 调用之外,这正是 Alt+F2 r 绑定的内容(请参阅 runDialog.js – 搜索 _restart)。


2022 年 1 月更新:自 Gnome 41 以来,calling Eval is restricted 需要启用“不安全模式”,因此默认情况下这将不再有效。我目前不知道这个特定用法的替代品。