【问题标题】:How to properly start a Gnome-Shell extension via command line?如何通过命令行正确启动 Gnome-Shell 扩展?
【发布时间】:2017-10-04 12:35:03
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: bash shell gnome gnome-shell gnome-shell-extensions


    【解决方案1】:

    根据互联网上的一些答案,将 SIGHUP 发送到gnome-shell 进程会重新启动它(即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 并要求启用“不安全模式”,因此默认情况下这将不再有效。我目前不知道这种特殊用法的替代品。

    【讨论】:

    • 这正是我所需要的。 killall 也因为某种原因杀死了我的浏览器
    • @maxschlepzig 我不明白为什么不应该......
    • @LucasWerkmeister 因为Alt+F2 r 在 Wayland 下不起作用...
    • 哦,对了。好吧,我只是试了一下,看起来它做了一些事情并且没有明显的错误消息。 (但当我运行 Alt+F2 r 时也是如此,所以也许从最近的 Gnome 版本开始支持它?我在 3.38 上。)
    【解决方案2】:

    就个人而言,我更喜欢稳定的 Alt+F2, r+Enter 但也许可以尝试禁用和启用:

    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 中)。

    【讨论】:

    • 谢谢安迪。但它不会在没有Alt + F2, r+Enter 或重新启动我的系统的情况下更新我的扩展程序。如果扩展已经安装,我在 Gnome DBus 上找到了一个命令来更新它。但是,如果这是第一次,如何在不重新启动会话的情况下显示扩展程序?我找不到使用命令行重新启动会话的方法。如果我使用gnome-shell --replace,如果我关闭终端,我会得到一个奇怪的行为。
    • 是的,据我所知 Alt+F2,r+Enter 是干净利落的唯一方法。我不会太担心,就那样做吧。
    • @andy.holmes - Alt+F2, R Enter 如果 Gnome-Shell 在 Wayland 下运行,则根本无法工作......
    • 正确,在Wayland下运行需要重启会话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    相关资源
    最近更新 更多