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