Il 19/09/2019 23:04, Fabio Fantoni ha
scritto:
Il 19/09/2019 12:40, Fabio Fantoni ha
scritto:
Il 19/09/2019 10:15, Norbert Preining ha scritto:
Digging a bit more:
On Thu, 19 Sep 2019, Norbert Preining wrote:
js/ui/main.js
which does
Promise.all([
AppletManager.init(),
ExtensionSystem.init(),
DeskletManager.init(),
SearchProviderManager.init()
]).then(function() {
main.js is called from
src/cinnamon-plugin.c: gnome_cinnamon_plugin_start
if (!gjs_context_eval (gjs_context,
"imports.ui.environment.init();"
"imports.ui.main.start();",
-1,
"<main>",
&status,
&error))
The interesting part here is that cinnamon exits after an error there:
if (!gjs_context_eval (gjs_context,
"imports.ui.environment.init();"
"imports.ui.main.start();",
-1,
"<main>",
&status,
&error))
{
g_message ("Execution of main.js threw exception: %s", error->message);
g_error_free (error);
/* We just exit() here, since in a development environment you'll get the
* error in your cinnamon output, and it's way better than a busted WM,
* which typically manifests as a white screen.
*
* In production, we shouldn't crash =) But if we do, we should get
* restarted by the session infrastructure, which is likely going
* to be better than some undefined state.
*
* If there was a generic "hook into bug-buddy for non-C crashes"
* infrastructure, here would be the place to put it.
*/
exit (1);
}
Now, instead we **could** try to reload the main.start() but pass in
some arguments so that extensions etc are not loaded. I haven't tried
it, though. If that fails, we can still exit.
WDYT, is it worth looking into that?
Thanks for search, seems strange to me is that "simple" and upstream
wan't do it but I not have time now to check better test it.
I'll try to reask upstream linking your idea and asking if can be
working and if will be accepted upstream something like additional try
(cinnamon, if fail cinnamon without extensions/applets/desklet and if
also it fail alternative panel.
Talking about this in upstream development chat clem and
collins proposed an idea that seems better:
there's a wrapper around cinnamon
already which asks if you want to restart it
we could add a checkbox or
a third button to start it in a mode where spices aren't
loaded
@clem
do you mean remove all spices, or just the 3rd party ones?
I'm not sure if removing
all applets is a good idea
but reseting the
enabled-applets key to default would be a great idea imo
@collins
we could load from the wrapper dialog without 3rd parties
well, without ~/ spices
really
once cinnamon is started,
users can right-click panel -> troubleshoot -> reset
@clem
@collins
I think that disable only the 3rd parties will be perfect,
should be the cause of major of crash caused by
applets/extensions
I missed to link the wrapper of the talk (even if can be found
also with a fast search):
https://github
com/linuxmint/cinnamon/blob/master/files/usr/bin/cinnamon-launcher
Best
Norbert
--
PREINING Norbert http://www.preining.info
Accelia Inc. + IFMGA ProGuide + TU Wien + JAIST + TeX Live + Debian Dev
GPG: 0x860CDC13 fp: F7D8 A928 26E3 16A1 9FA0 ACF0 6CAC A448 860C DC13
|