Suggestion on how to resolve the 'logout problem' (Was Re: Why 'the logout problem' is a GNOME problem, not a WM problem)



The 'logout problem' that I've harped upon is this:

If one attempts to log out using the root menu of the window manager,
it only exits the window manager. If one subsequently logs out of GNOME
using the panel (perhaps under the mistaken presumption that the Logout
root menu item didn't 'do anything') and then later logs back in, GNOME
will start--with no window manager. A rather disorienting experience,
especially if one doesn't know why it happened.

I have a suggested solution. It's not ideal, and it's somewhat of a
compromise.

1) Change the GNOME compliance spec so that a compliant window manager
uses the session manager in logging out rather than simply terminating.
That should allow GNOME to logout properly even if the user uses the
root menu to logout, provided a compliant window manager is used.

[Note: I do not know precisely how the window manager would use the
session manager to terminate itself. I am more or less echoing Mr. de
Icaza's response to my bug report about the 'logout problem'. (I
thought it was a bug when I first encountered it.)]

2) Modify gnome-session so that if invoked something like this,

gnome-session --use-non-GNOME-compliant-WM='FooWM \ --some-args blah
blah blah'

then GNOME will execute a shell script something like this:

#!/bin/sh

some-command-to-disable-wm-properties-capplet &

panel --no-logout &

FooWM --some-args blah blah blah

where the first command is intended to disable the use of the
control-center applet for changing window managers on the fly--which
wouldn't work anyway if GNOME were invoked with this script.
'--no-logout' is a hypothetical option to the panel that would tell it
to replace the Logout entry on the GNOME main menu with an entry to
terminate the panel, and also to make the Logout button unavailable for
adding to the panel. The idea is to make it so that the panel will not
give the misleading impression that the user can log out from it.
Finally FooWM is launched, and once it terminates, GNOME exits as the
user would expect. Note that this means session management is lost
using this method. Like I said, it's not an ideal solution. Perhaps it
could be considered the price of using a non-compliant WM.

If gnome-session is invoked with no arguments then it should start up
as normal, except that as a failsafe, it should detect whether a
GNOME-compliant window manager is running, and if not, pop up a little
dialog box saying "There is no GNOME-compliant window manager running.
Logging out via the window manager root menu will not work, and gmc
will not have a root window. It is recommended that you use a
GNOME-compliant window manager or if using a non-compliant window
manager, to invoke it using 'gnome-session
--use-non-compliant-WM=window-manager-name'. See GNOME user's guide for
details." If gnome-session can be made capable of detecting whether the
window manager, GNOME-compliant or not, is being exited, then if a
non-compliant-WM is exiting then GNOME should pop up a dialog box
saying "You are now exiting the window manager, but GNOME will not exit
because the window manager in use is not GNOME-compliant. Restart
window manager or continue using GNOME without a window manager?" This
will be a pain in the neck and an annoyance for the user, but will help
keep the user from being surprised by GNOME's behavior.

I don't consider this an ideal solution, but hopefully, it's at least
workable. If anyone has any ideas on an alternative to this, or some
improvements to this, I'd love to see them on the GNOME list.
Hopefully, the GNOME developers will take notice.








===


----I am a fool for Christ. Mostly I am a fool.----

_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com



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