GNOME Bugzilla – Bug 89421
Allow to choose diffrerent Xserver config in chooser
Last modified: 2006-01-12 23:25:57 UTC
With the gdm configurator it is possible to define several X server command lines. This could be very useful to launch X with different options, such as color depth, screen size, internal/external output (for laptops), etc. For example I have an XFree86 config that lets me choose this stuff with the -layout option. The problem is that the gdm chooser does not allow one to choose which X server to run, so basically the config is not useful. Or did I miss it? So my request is: add a menu to the gdm chooser that lets the user select one of the configured X servers to start. I guess this should not be too complicated, but I have no idea about gdm's source so I might be totally wrong :-)
I don't know how well this will work, by the time gdm is started and can present a menu then X is already started with the default flags.
Yes I know that X is already running when gdm comes up, for that a sensible default X command line must be given of course. But... As far as I understand gdm resets the X server when logging a user. Instead of resetting the server it should restart the server with the chosen command line, if it differs from currently active one. When the user logs out gdm either goes back to the default settings by restarting the X server or keeps the same (probably going back to default settings is wiser though). If there are better, user friendly, ways of handling the possibility of changing the X server config (either within gdm or outside it) I would be happy to hear about them. So far I see no way to change X server configs with a graphical login, other than changing the gdm config and restarting gdm (or running multiple X servers in differnt vt's, but that is a waste of resources and not very intuitive), which requires root access. Currently I log in console mode and use startx to pass different -layout options to XFree86, but that is far from user fiendly.
I am thinking of how to do this. Currently the gnome2 version doesn't even have the different servers in the setup program. The old configurator was not very user friendly really, and the current gdmsetup proggie is less powerful but much easier to use. It is still all possible by just editting the configuration file. I probably intend to keep it this way, or perhaps make some advanced config gui.
This sounds like a good place to use Compaq's randr X11 extension. I'm assuming one can run a test to see if the X11 server supports the randr extension (resize and rotate extension). This would also become a nice feature to put in the desktop preferences =)... perhaps find a way to work them together.
This bug seems a bit confused. After re-reading this bug report a few times, it seems that the user would like the ability to pick from a variety of Xserver choices from the login screen and use that one when logging in. I suspect that the talk about the "chooser" (as in XDMCP chooser) and "setup" programs is really a red herring. I don't get the sense that the user feels the need to be able to add this feature via gdmsetup, just the the feature should exist. In other words, you can currently define different Xservers for each DISPLAY, but you can't say "I want to use the display :1 server, but am really logging into the console (:0)". Note that on some operating systems, like Solaris, virtual terminals aren't supported, so making use of vt's to get things working will only help some users. This bug is a few years old, but perhaps Diego can respond and clarify.
Some discussion about adding a new Xserver config tab was done in bug #302354
> Brian Cameron > I was thinking of something more like the Complex configuration GUI that you > wrote. It looks awesome by the way. It would also be nice to support being > able to specify the lines that look like this: It looks congested. I was thinking it might be better with tabs, but then we'd have tabs inside tabs.... ugggh. I might do it this way anyway just because it's easier at the moment. > > 0=Standard > 1=Standard > 2=Terminal -query serverhostname > 3=Terminal -indirect serverhostname > 4=Chooser > > That's the section of the config file where you can specify what type of > Xserver to start for each display number. > I'll add that to the list. This should be simple compared to the rest. ;-) > Though this could be done in more than one stage. Implementing what you've > done in the Complex image as stage 1, then adding the ability to define what > xserver to use for each display could be stage 2. Then adding the ability > to define new server types (ones in addition to the default ones of > server-Standard, server-Terminal, and server-Chooser) could be stage 3. That seems like a good idea. I'm actually doing a preliminary stage .5 that worked with my simple image (see bug #302354). For just testing my code. From there I'll move to stage 1 and so on. It might take me a bit of time though, as this is actually a decent amount of changes and I'm pretty knew to this.
I was thinking about this, and might have an idea that would make the Complex image a bit more simple. Currently you have a scrollable list that shows you each server and you can edit each one in the list. Rather than doing it this way, perhaps the listing could just show the name. The top half of the screen could be the listing. The bottom half could be an "edit area". So when you click on one of the server names, it will populate the edit area with the values for that session, so you can change the values. Then you could click on Save. You could also use the same interface to enter new values and click an "Add" button to add a new server to the list. This would probably make the screen more compact since the listing would just use 1-line for each xserver name. Just an idea. And yes, I know that this is a big change. Based on your patch for supporting random themes, it was clear you are pretty good at modifying the gdmsetup screen, so I thought I'd see if you would be willing to help with this one too. Thanks for looking into this.
Great idea Brian! I'll go ahead and try to incorporate that into the next stages I work on (stage 2/3). I've currently gone to far on stage1 to change things, but will definately be able to reuse most of my code for this setup and it will probably look better. Right now I'm out of town so I'll have about a week and a half off, but as soon as I get back, I'll get back to working on getting stage1 up and running. Thanks for the input!!
That's cool. Thanks so much for helping with this. I think this will be a great feature that will make setting up gdm so much easier. By the way, I think making the user type in the full string for starting the Xserver is best, rather than having a combo box or something. Different people might want to start weird or in-development Xservers that we can't predict. The simple interface GUI seems to have a combo box.
Created attachment 47080 [details] New Design Screen Shot This is an updated screenshot of how I ended up designing the UI for this. The other way was just WAY too cluttered and had some other problems. This should help help simplify it. Also the Resolution/Color Depth/Refresh Rate will still be options I will want to add, but it's a bit more complex than I originally thought trying to deal with the daemon through gdmsetup so it'll stay "hidden" until I can work out a lot of the bugs that it's been causing me. Also the left side that is blank is where I will have the vertual terminal configurations for the servers such as...#0=Terminal -query serverhostname Currently I just have editing and deleting servers working. The vicious extensions that gdm uses doesn't have a "bool ve_config_add_section(VeConfig *config, const char *section)" function that I would want for creating new servers. I was going to make one, but I wasn't sure if we want to taint vicious-extensions with new code. Maybe I should try and get it added to the vicious project that George runs? This is only going to hold up the "Create Server" button. In the meantime I can supply a hack way of doing a new section, but I don't like it. What do you think?
I think we should work with George to get the fix into the official vicious-extensions, and then port the new vicious-extensions into gdm2. There is no rush to get this into gdm2, so we should fix it right. Though it is also okay with me if we "taint" the gdm2 vicious-extensions to get this feature working for now, as long as we are making a real active effort to also get the change into the official vicious-extensions library. The screenshot looks great, by the way. Much less cluttered than the previous proposed images. Great job!
Created attachment 47411 [details] [review] Xserver Configuration through GdmSetup Patch This patch will add a Xserver configuation tab into gdmsetup. Also included was some minor clean up of some code that was spitting out compiler warnings in gdmsetup.c, as well as a little bit of documenting and code formatting to make it easier to read. I also got rid of some unused variables as well as unused functions from gdmsetup.c. This code also has some information for future xserver configuration options, such as resolution,refresh rate, color depth options that have not been completed yet. But this code should be stable and the rest added later.
Put in CVS head. Leaving bug open since the tab isn't quite finished.
After reading through this, the begining seems to be a different bug than what I did, which really seems to be bug #103271. So either we're doing this on the wrong bug, or it's a bug #103271 is a duplicate of this one. But from the reading of the begining this seems independent.
*** Bug 103271 has been marked as a duplicate of this bug. ***
Oops. Yes you are right. We are really working to fix bug 103271. Since this might get confusing, there are really two issues to fix: 1) GDM needs the ability to specify Xserver configuration in gdmsetup rather than only in gdm.conf This is bug 103271. 2) It would be nice to have the ability for the user to pick a different Xserver configuration at the login screen. For #2, the person who posted the bug suggested a new menu choice. Actually, I think this is a bad idea. For two reasons. One, most users don't need to know about the Xserver so the menu choice would probably be confusing. Second, giving the user the ability to pick different session/xserver combinations might cause buggy behavior to suddenly appear. Sysadmins probably would want to control what sessions support which xservers. A better way to fix #2 would probably be to enhance the *.desktop files used by GDM2 so that you can optionally specify the Xserver command in the *.desktop file. If the *.desktop file contains an Xserver command, then GDM would shut down the Xserver and restart the Xserver with the specified command. This would allow sysadmins to specify different Xservers for specific desktop sessions. So, if you wanted to run GNOME with two different Xservers (say Xorg and Xfree), the sysadmin could create two different GNOME *.desktop files, one for each Xserver. Since we've kind of confused things a bit by talking about both bugs in the same bug report, I'm going to make bug 103271 a duplicate of this bug. I won't close this bug until both issues are resolved.
Are the changes that have been made going to allow people to run, say, two X servers using the same configuration on two different VTs? That's what I do, so that multiple graphical users can log in at the same time.
Yes, that is the goal of this work. You should test the latest version of GDM (2.8.0.1) and see how well it works for you. If you are using an older GDM, you can already set up this sort of configuration but you have to edit gdm.conf by hand.
*** This bug has been marked as a duplicate of 326771 ***