Hi Yen-Ju,

in the application delegate of Finder.app. I am not yet sure what
exactly this method will have to do to kill the session (A pkill on
Azalea??). What I know is that I have no file /etoilesystem on my box!?
Where should that come from? How is logout supposed to work?

  The way Etoile does is that in the xsession,
  it launches etoile_system after login.
Then etoile_system will read SystemTaskList.plist and lauches applications
  one-by-one, including window manager (Azalea).

I see. I have replaced /opt/GNUstep/System/Applications/Azalea.app/Azalea with /opt/GNUstep/System/Tools/etoile_system in my dtlogin files and logging in still works, though OuterSpace is started now. What can I do to prevent that? I guess editing

pico /usr/share/src/Etoile-0.2/Services/Private/System/SystemTaskList.plist

and rebuilding etoile is not the recommended approach. :-)

So the right way to log out is to stop etoile_system, not window manager,
  and I believe it is what the menu server does.

I don't see that. The code in question is

- connectToWorkspaceApplicationLaunch: (BOOL) launchFlag
{
  NSString * appName = nil;

#if 0
  /* It does not make sense to check for default workspace
because even if there is one, we still use etoile_system to log out.
     And in order to avoid GWorkspace from launching automatically,
     we may set GSWorkspaceApplication to a non-existing application.
     If that is the case, it will break logout. */
appName = [[NSUserDefaults standardUserDefaults] objectForKey: @"GSWorkspaceApplication"];
#endif
  if (appName == nil)
    {
      // NOTE: appName is defined as SCSystemNamespace in EtoileSystem.h
      appName = @"/etoilesystem"; // @"EtoileWorkspaceServer";
    }

  return [self connectToApplication: appName launch: launchFlag];
}

Since there is no application /etoilesystem, this method returns nil and the user gets this neat "etoile is very unstable" message and logout is adondened. :-(

I also don't find EtoileWorkspaceServer.app in the Etoile tree. This code seems to be obsolete!?

If you launch window manager in your xsession instead of etoile_system,
  then you have to logout by killing the window manager
  and the logout in menu server will not work.

I got this working by implementing

- (void)logOut
{
        system("pkill etoile_system &");
//      system("pkill Azalea &");
}

in Finder.app and applying the following patch to Etoile:

NSWorkspace+Communication

pico /usr/src/Etoile-0.2/Services/Private/System/WorkspaceCommKit/ NSWorkspace+Communication.m

- connectToWorkspaceApplicationLaunch: (BOOL) launchFlag
{
NSString *appName = [[NSUserDefaults standardUserDefaults] objectForKey: @"GSWorkspaceApplication"];
  if (appName == nil) appName = @"Finder";
  return [self connectToApplication: appName launch: launchFlag];
}

EtoileMenuServer
        
        pico /usr/src/Etoile-0.2/Services/Private/MenuServer/Controller.m

- (id)_workspaceApp
{
return [[NSWorkspace sharedWorkspace] connectToWorkspaceApplicationLaunch:YES];
}

But I still don't know how to configure AZDock. It remembered my setting as long as I was using

/opt/GNUstep/System/Tools/make_services
openapp AZBackground.app &
openapp EtoileMenuServer &
openapp AZDock.app &
openapp Finder.app &
openapp Terminal.app &
exec /opt/GNUstep/System/Applications/Azalea.app/Azalea

in my dtloging file. After replacing that with

exec /opt/GNUstep/System/Tools/etoile_system

I always get the same AZDock with just two questionmarks and an entry for OuterSpace! :-(

How can the AZDock persistently be configured?

Thanks,

  Andreas



_______________________________________________
Etoile-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-discuss

Répondre à