[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Cinnamon 4.2, salsa and master branch



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





Reply to: