Important changes to screen_session script

Stéphane Graber <stgraber-GeWIH/[email protected]> Wed, 23 Dec 2009 00:52:49 -0500
Newsgroups gmane.linux.terminal-server.devel
Message-ID <[email protected]>
Hi again,

I spent most of the evening implementing a few changes that I'll need to 
have a smooth user experience in Ubuntu Lucid.

By default Lucid will ship Plymouth (Fedora's boot splash) and boot on 
VT7 with the no-root X patch (-nr). That means you'll see the Ubuntu 
boot splash and directly arrive in GDM without any display mode change 
(no flicker).

To make that easier and make multiple X servers somewhat usable and nice 
to look at, I reimplemented part of the VT switching code that we have 
in screen_session.

Basically what it does now is:
  - Check what's the current VT (using fgconsole, I hope everyone has it)
  - Set a few variables that'll be useful in the code (CURTTY, 
CURTTY_NUM, CURRENT_NUM)

  - Check if the screen we want to start is on the current VT, if yes, 
then simply start it without calling openvt.
  - If it's not and the current VT has a defined screen, then start the 
new screen on its own VT and make sure we don't switch to it.
  - If it's not and no screen is defined for that VT (for example if we 
are on VT1), then switch to the new VT as usual, then following the 
above rules, we won't change VT again.

My test setup is:
SCREEN_07=rdesktop
SCREEN_08=ldm
SCREEN_09=rdesktop

That's on an Intel-based netbook with Lucid, when booting, I have a 
flicker-less boot finishing by the Windows prompt on SCREEN_07.
If I switch to VT8, ldm will load and if I switch to VT9 a second 
rdesktop will load.

In the past, I used to see SCREEN_07 starting, then automatically 
switching to SCREEN_09 and finally SCREEN_08 would load. That means I'd 
see my X change 3 times and end up on SCREEN_08. That was at least from 
my point of view, not really something we want :)

For some reason X doesn't completely start in the background, so the 
actual greeter (be that ldm or rdesktop) will only start when you first 
switch to it.

Also, far from all hardware will let you start multiple X servers 
without crashes (at least Intel works fine here).


I commited my current code, please feel free to look at it, improve and 
test on your own distro and hardware. I'm pretty sure there's something 
I missed and we'll need to change it a bit so it works for everyone.

-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_____________________________________________________________________
Ltsp-developer mailing list.   To un-subscribe, or change prefs, goto:
      https://lists.sourceforge.net/lists/listinfo/ltsp-developer
For additional LTSP help,   try #ltsp channel on irc.freenode.net