by using 2 sets of keyboard and mouse, 2 display device, a single dual-head card, running dual X. (In another words, its turning a computer into two)

[photo of my current setup, shows the mess I have T home too
]
Introduction
Is was just the thought that the modern pcs is usually under-utilised if it is just used for normal tasks (like surfing internet, or using office tools.. I feel 1GHz is alot of power already). So I wondered why couldnt an extra, cheap usb mouse be added to allow more to use a computer at 1 time. After all, don’t modern OSes support multi video cards, multi display, multi users.
What I did (My Implementation)

My normal (messed) computer desktop.

Using a dvi-vga converter, I still needed a 3m vga extension cable which I bought about $10. This is to connect to my 15″ LCD screen which I placed on top of the piano. See 1st picture in this post (Creative, or horrible idea depending on how you look at it).

My Viewsonic LCD screen is paired up with my wireless microsoft keyboard and mouse. (My wired set is Logitech). The wireless set is placed on the closed piano, a white piece of paper placed under the optical mouse to make it work really good (because of the reflective surface of the piano).

My Primary Philips 15″ CRT Flatscreen.
The Methods
At first I thought of writing a software in Windows that redirects keyboard and mouse events to a target window (become a 2nd virtual mouse), at least allow an extra user share 1 pc without too much effort, unfortunately it seems it wasnt as easy as I thought or it isnt within my capabilities. My orginal configuration was actually using a wireless set of keyboard&mouse with my extensions wires to my Tv.
Fast forward. After deciding to install Ubuntu 6.10 on my pc, I remembered reading implementations of multi-terminals/multi-users on linux basically using X configurations. With my nvidia support dual heads, an extra lcd monitor, and extra usb wireless keyboard mouse set I began to set up my “Dual X”.
The methods for implementing a multiple x/ dual-terminal system are not few. Although many used to be quite hackish, I thought there should be some easy way with the latest software. Looking for the implementation with the most convenience, I found Chris Tyler’s Blog article - Multiseat X Under X11R6.9/7.0
Basically this method’s simple - create multiple layout X configuration for each card, using evdev to map which keyboard and mouse to which screen. After much trying, the reason why it didn’t work for me because I was running a dual-head card (my 6600gt with vga, dvi and s-video outputs), rather than 2 graphics card. That means that we can only create 1 X server for each gpu (and 1 gpu on 1 video card).
I do have another pci video card, but I wanted to make full use of the dual heads of my 6600 so I tried another method. I found the walkthrough guide Multiseat computer with Ubuntu very useful and practical. His steps are almost based on Multiseat with Xephyr method
This Xephyr-based implementation uses a twinview/xinerama/extended desktop configuration which creates a screen or X server that covers 2 display device. Then 2 Xephyr (sort of a Nested-X) instances will be run, 1 on each screen. The Xephyr (A X server running in another X server, therefor itself being an X client) available to download from the links are compiled with hacks to make them response to their specified keyboard and mouse only.
More Reading
Multiseat article at Wikipedia
Food for Thoughts
are there any other easy pratical methods that increase the numbers of users to the numbers of cpu? Sure, a server maybe serving many users (eg as serving webpages or providing terminal services) but the total number of computers or cpu remain the same (computers at client side, even thin or diskless clients).
Conclusion
So this is how I configured my computer so my sisters and I can use the internet at the same time without needing to snatch or quallel (This is if they are willing to use linux
I soon found out this implementation limitations like mentioned.. OpenGL (apps and games) couldn’t run on Xypher, Mplayer didnt have hardware acceleration, XGL was not supported (so my beryl window manager couldnt run)
To be continued…
(Part 2 of this series is on solving this problem
Explanation of Terms
X - The architectural, software for graphics display on *nix systems. The server term used seems to confuse others who think like servers are machines providing you a service. A X server refers to display device while X clients are software which connects to the screen (server). More
Multi-Terminals: to describe the multiple users using a single pc at a time using multiple screens, keyboard and mouse. Other words have been used to describe it like multiseats (contrast to multiheads), multi-X. And basically what this post is about


Recent Comments