Am Fri, 13 Aug 2010 12:54:36 -0400 schrieb Clinton Ebadi <[email protected]>:
> Jeremy Hankins <[email protected]> writes: > > > Clinton Ebadi <[email protected]> writes: > >> Jeremy Hankins <[email protected]> writes: > > > >>> Theoretically, I could use some other session manager and get the > >>> same results. Any suggestions for a simple session manager that just > >>> manages a session? Ideally I wouldn't have to spend much time > >>> futzing with it... > >> > >> So it turns out that sawfish was actually not even starting properly! > > > > Can you explain how you start sawfish? I got gnome starting sawfish by > > using gconf-editor to edit > > desktop/gnome/session/required_components/windowmanager. At first I > > thought I could specify a path there, but it seems that it's expecting a > > desktop file, not an executable. Once I figured that out I was able to > > get gnome to start sawfish rather than silently ignoring the > > "/usr/local/bin/sawfish" I'd had there. I honestly don't comprehend how > > gnome is considered easy to use.... > > Yeah, it is "easy" if you ... browse the web and not much else I > think. I had to look at the source for gnome-session to figure out how > to change such things! > > But it turns out that I had gnome-wm set as the windowmanager, and I > *assumed* it was loading sawfish. In reality it was failing to start any > window manager, and sawfish was being picked up as a normal application > and being started that way instead. Which, for whatever reason, caused > gnome-session to only pass --sm-client-id (-> session file not found but > the argument was consumed so it *seemed* to start properly). > > > Anyway, I do all this and discover that sawfish isn't being run with the > > --sm-client-id arg at all, so it's running without session management. > > So I still can't test it out myself. > > The first time you run sawfish it is called with any SM arguments > because it has not been saved as part of a session yet. After you logout > of GNOME (`gnome-session-save --logout' or similar) a session is saved > and the next time the --sm-{prefix,client-id} arguments are passed based > upon what sawfish returns when queried in `sm-save-yourself'. > > >> After fixing things such that it was being started correctly... it > >> bombed out with a weird error and unhelpful backtrace. After a bit of > >> debugging and figuring out how the debugger worked... tada, I discovered > >> the problem was in lisp/sawfish/wm/user.jl. The last bit consumes *all* > >> command line arguments, and attempts to load anything it does not > >> recognize as a file, or, if it does not exist, as a module. And thus > >> sawfish died upon encountering "--sm-client-id". > > > > This seems to be the result of a commit Chris made back in August of 2009: > > > > commit 379750f67d7227499a93b35dfa8c138d4ca5606f > > Author: chrisb <[email protected]> > > Date: Sat Aug 29 18:24:40 2009 +0200 > > > > changed position of user-level initialization > > It seems like it *might* be reasonable to restore the session after > loading the user rc, but then again perhaps not (I don't see the harm in > it). I can hack up another patch that splits the user rc loading and > command line processing into two files and loads the former before > session restoration and the latter after. > > Alternatively the braindead behavior of command line processing could be > changed. I'm willing to do that as well (and perform the required > documentation updates and whatnot). There are few issues with this still > however: unadorned arguments to sawfish are by default assumed to be > files or modules to load which is a bit ... ugly. I'm in favor of adding > a new command line argument to require module explicitly, but then the > issue of scripts in the wild using this convention arises. OTOH how > important is backward compatibility? > That depends on the change. Next versions are 1.7.0 and 3.0.0. If it would not make sawfish start anymore with some old code still present it's going to be post-poned to 3.0.0, else 1.7.0 is O.K. Which by the way is scheduled for september. Chris
