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

3

10

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?

Jumna answered 4/10, 2017 at 12:35 Comment(0)
C
16

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.

Candicandia answered 23/12, 2017 at 11:30 Comment(5)
This is exactly what i need. killall also killed my browser for some reasonBookseller
@maxschlepzig I don’t see why it shouldn’t…Candicandia
@LucasWerkmeister because Alt+F2 r doesn't work under Wayland ...Grating
Oh, right. Well, I just tried it out, and it looked like it did something and there was no obvious error message. (But the same is true when I run Alt+F2 r, so maybe that’s supported since a recent Gnome version? I’m on 3.38.)Candicandia
@LucasWerkmeister regarding your concerns, the solution is in askubuntu.com/a/1376953/598062 . You might like to update your answer with this information.Pecten
J
8

Personally, I prefer a solid Alt+F2, r+Enter but maybe try disabling and enabling:

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

or

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

Which may do the same thing. There's also gnome-shell-extension-prefs which you can use to do the same thing (and is typically hidden in Gnome for some reason).

Jasun answered 24/10, 2017 at 18:19 Comment(4)
Thanks Andy. But it doesn't update my extension without Alt + F2, r+Enter or restarting my system. If the extension is already installed, I found a command on Gnome DBus to update it. But if it's the first time how can I show the extension without restarting my session? I can't find a way to restart the session using the command line. If I use gnome-shell --replace I get a strange behavior if I close the terminal.Jumna
True, as far as I know Alt+F2, r+Enter is the only way to cleanly do it. I wouldn't worry about it much, and just do it that way.Jasun
@Jasun - Alt+F2, R Enter simply doesn't work if Gnome-Shell is running under Wayland ...Grating
Correct, you have to restart the session if running under Wayland.Jasun
P
2

gnome-shell-extension-tool is deprecated, use gnome-extensions instead. The command is:

gnome-extensions reset [email protected] && gnome-extensions enable [email protected]

If that does not work then try

killall -3 gnome-shell  

I have a .desktop file that looks like:

[Desktop Entry]
Type=Application
Terminal=true
Name=Restart Gnome
Icon=utilities-terminal
Exec=killall -3 gnome-shell
Categories=Utility;

I added it to the panel and just click the button when working on gnome extensions.

The official documentation for debugging and logging gnome extensions is here.

Pecten answered 17/5, 2023 at 18:8 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.