Search code examples
bashshellgnomegnome-shellgnome-shell-extensions

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


After copying [email protected] folder to .../gnome-shell/extensions/ I'm executing this command on the terminal:

gnome-shell-extension-tool -e [email protected]

Then, I restart my session with Alt + F2 and execute r, and everything works fine.

But can I start my extension only through the command line? Without Alt+F2+r? Without restarting my gnome-shell session?


Solution

  • According to some answers around the internet, sending SIGHUP to the gnome-shell process restarts it (i. e. killall -HUP gnome-shell), but I haven’t been able to find a clear source on this and couldn’t find the signal handling in the code. What I do know is that this should be exactly equivalent to Alt+F2 r:

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

    Because apart from a gettext call on the message, this is exactly what Alt+F2 r is bound to (see runDialog.js – search for _restart).


    January 2022 update: Since Gnome 41, calling Eval is restricted and requires “unsafe mode” to be enabled, so by default this will no longer work. I’m not currently aware of a replacement for this particular usage.