Is there a way for a Gnome extension to tell if it has been re-enabled after the user unlocked the screen?
I am writing an extension that fetches incident reports from a server and displays them as a notification. However, when the extension is first launched after login, it starts a countdown to give the user time to stop the connection. I do not want this countdown to repeat after a screen-lock.
What works for me: In disable() function I test whether the extension is enabled in gsettings - if true, this call is probably triggered by the screen lock, if false, extension was disabled permanently. I’m sure this is not the best solution, but no Gnome developer said ‘it’s bad, don’t do that’ or offered something better, yet…
This isn’t necessarily bad, but note that extensions must still cleanup all the changes made in enable() when disable() is called, regardless of why disable() was called.
You also have to check whether the extension is disabled in gsettings. Extensions that appear in both enabled-extensions and disabled-extensions are disabled.