To start off, one thing that's annoying about switchdesk is that it uses a hardcoded list of window managers. Really, it should use the sessions contained in /etc/X11/dm/ like gdm does. Obviously for the purpose of updating Xclients, any session with an Exec of default, custom, or failsafe should not be listed. I am willing to do this work. Two other things that could be done to improve matters regardless: Firstly, create some easier to find documentation on the whole X startup process. This would include the differences between what gdm and startx do. I have a small document on this which explains what happens on a Fedora system, and would be happy to tidy it up and contribute it to the documentation project (if someone can point out where it might be most useful). Secondly, the naming of the "Default" session is confusing. I would prefer that we added a proper "Custom" session. Xsession already allows this, but currently behaves the same for either. I would propose that the "default" action should execute /etc/X11/xinit/Xclients only (ie: it bypasses anything the user has set). The "custom" action should be what executes your own startup files. The long descriptions of these two sessions should make it clear what they do. Eg: "Default system session - ignores any custom session"; "Custom session set in ~/.Xclients". Obviously there's the concern about backwards compatibility - especially as the current way of doing things means there are more people using "default" than there would otherwise be. An aside: I would like to see a "failsafe" session available in the gdm selection. It just requires a session file with that as the Exec - the necessary code is already in Xsession. On Mon, 2004-05-03 at 23:15, Bill Nottingham wrote: > Havoc Pennington (hp@xxxxxxxxxx) said: > > startx is a command line thing though, which means startx users are > > perfectly capable of editing .Xclients themselves instead of with > > switchdesk. Just document how to start each desktop in .Xclients... Speaking for myself - that would be acceptable. > If you do that, might as well have GDM edit it for you. Definitely a good option - only one tool to worry about. There are two issues though. Firstly, users who do not run a DM yet still want a tool to change their default session [for startx]. Secondly, users who want one default session for gdm, and another for startx. If both of those groups are deemed to be capable of editing Xclients by hand then the simplest solution to please the most people is to drop switchdesk, re-enable the gdm session selection code, and make it write Xclients. Alternatively we need to address the confusion caused by the combination of using switchdesk and gdm. If you set a default in gdm, it's not what gets used when you run startx. If you set a default in switchdesk, it's only used by gdm when "Default" is set there. I think the issue is that there are two tasks - choosing a session for gdm, and choosing a session for startx. For former is handled fine at login time by gdm's own code (currently disabled). The problem is really when someone wants to change the gdm session whilst logged in. They use switchdesk - but switchdesk is really designed for the other task, namely choosing a session for startx. I propose we solve this by making switchdesk suitable for both tasks - so it updates gdm (ie: set the appropriate gconf key) as well as startx (ie: writes ~/.Xclients). The default would be to change the setting of both, but you should be able to do one or the other. Obviously this requires my initial proposal (that switchdesk uses the same session list as gdm). There are varying ways you could do the UI for this - I'll try to mock up some ideas tomorrow. Again, I am willing to do the coding on this! Comments and ideas welcome. -- Stuart