Switching between virtual desktops

Luca Bezerra lucabezerra at gmail.com
Mon Jun 1 20:42:15 PDT 2009


Uhm.. It's a long story, but let me try to tell it shortly.

Im a college student, and I work as an internship at my college. My boss
wants to develop a system for our library, very similar to a multiseat
system, where we would have embedded lcd monitors and keyboards on the
tables, for students to read .pdf books on them.

For those of you not familiar with the "multiseat" concept, it's the
distributed use of a single cpu amongst 2 or more sets of keyboards, mouses
and monitors. Since most of our daily uses for computers do not require more
than 10% of the cpu's full capacity, it's a really nice way of providing
computers for everyone with a really low cost.

The thing is, multiseat systems usually require 1 graphics card for each
monitor (or one graphics card for every 2 monitors, if it's a dual head
one), and since my boss' idea is to use outdated computers (with limited
hardware configuration), buying new graphic cards is sort of senseless, not
to mention that those old PCs' motherboards support PCI cards only, and
they're expensive and hard to find.

The solution my boss came up with was to use a single graphics card
(preferentially, the mobo's onboard card) and the parallel port, both
connected to a external circuit, that would have 6 exit vga sockets, where
the 6 monitors would be attached to. A software would be constantly
switching sessions between all logged in users, while the parallel port
would be sending data, informing the circuit which monitor should receive
the imagem from that session at that time, and the circuit would have it
sent to that monitor.

The initial idea was to use virtual terminals (those you switch by pressing
Ctrl+Alt+F[7-11]), having each student to login with his id number and
password as their user data on the operating system. The first problem was
the limited hardware power, which wouldnt allow me to start even a 2nd X
session, let alone 6 sessions per computer. The next one was the always
present delay between X sessions. That made us look for other solutions.

A friend suggested to use virtual desktops provided by most window managers,
since switching between them can be almost unnoticed. His idea was to,
somehow, separate each desktop to a single user, having him log into that
single virtual desktop, being unable to switch it. Since I've found nothing
about being able to log into the same X session with different users, each
using a different virtual desktop, another solution popped out: to log with
a single user in a single X session, but to block the virtual desktops. The
pdf reader software would now be accessed through a browser on a intranet,
where the students would log into the intranet, not into the operating
system anymore. Each monitor+keyboard+mouse would interact with a single
virtual desktop only, and all the users would be unable to switch their
virtual desktops and mess with other people's VD. There would still be an
application constantly (and fastly) switching, but this time it'd be
switching virtual desktops, which is way faster than switching virtual
terminals, and sending data to that external circuit.

It's a mix of multiseat systems with something completely new (or at least I
think so), and I'm not even sure if it's possible, but hell, my boss is
asking me to, so here I am. I said I'd be brief, but apparently I spoke too
much, I apologize for that.

And that's why, bizarre as it might seem, I need to know about those things
I've asked... I'm alone on this project, and my boss keeps asking me for
progress, so, any help would be REALLY appreciated. Sorry for any english
mistakes, Im not a native english speaker, but I hope you've got what I
meant at least :)

@Florian Echtler:
Thank you very much for your answers. Im still researching about the WMCtrl,
so I cant say much about it yet. About the multiple X Sessions, I've tried
it already, but as you can see in my huge story, I've had no success.

@Quinn Harris:
As I said, Im not a native english speaker, so Im still trying to get the
full meaning of what you've said on your first paragraph, checking if I
missed something on your answer, so I wont ask again something you've
already said ;)
As I said (again? :P), multiseat would be a great solution for my problem,
wasnt the low costs idea.
And, last, thats why I need that fast switching. Im absolutely NOT sure
thats the right solution, but I've got no more ideas, and my boss is so
excited about this project, I wish I could make it come true somehow :P

P.S.: Sorry for sending this twice to you, Quinn. Didnt notice at first that
I was replying to you only, and not to the whole list. My apologies :$

On Mon, Jun 1, 2009 at 9:19 PM, Quinn Harris <quinn at qutek.net> wrote:

> Luca,
>
> X windows systems have a display for each desktop environment (KDE, Gnome).
> All X windows applications look for a display server usually specified by
> the
> DISPLAY environment variable then connect to that server via local
> mechanism
> or a network socket.  Go to a terminal and type "echo $DISPLAY" you will
> probably get ":0.0" that number specifies what local display to use.  If
> your
> system is setup for multiple simultaneous X logins (newer distros) each
> login
> will have a different xserver and display, the environment variable is how
> processes launched in each environment know what xserver to connect to.
>  Only
> one xserver process can use a video card at one time, though they can hand
> off
> control from one server to another and the text console typically using the
> Ctrl+Alt+Fx keys.  Until the recent xrandr 1.2 implementation, if an
> xserver
> was setup to use two monitors it would create two displays one for each
> monitor unless the Xinerama option was on.  In this case a different
> desktop
> environment could be run on each display with a common keyboard and mouse
> which I think is what you are asking.
>
> If you have two separate video cards, it is possible (though there can be
> issues) to run a different xserver instance for each card with an
> independent
> mouse and keyboard.  So one computer with two sets of video, keyboard and
> mouse could act like two different computers.  This can also be done with
> one
> dual headed video card using Xephyr, but lacks some features (3D) and will
> be
> a little slower.  Check out
> http://www.x.org/wiki/Development/Documentation/Multiseat
>
> Why do you need to switch between virtual desktops rapidly from a script?
>  Are
> you sure this is the right solution to your problem?
>
>
> Quinn
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg/attachments/20090602/0b579619/attachment.html>


More information about the xorg mailing list