One workstation, multiple displays, multiple computers…


I’ve been plotting an upgrade to my home office to make the day to day working environment much better. This will result in a range of computers used at the same station, with potentially multiple monitor setups, some remote sessions (currently via vnc), live data screens. Could do a variety of things really. Want a system for managing the displays but existing mechanisms have limitations. Some solutions, like Synergy2, allow multiple computers to share the same input devices via a ‘server’ computer. This works great if all the machines are plugged in to their own monitor(s), but what if you want to use, say, three screens with a particular computer that only has one DVI output on it?

E.g. if you have a Macbook Pro with crappy Lion on it that sucks as using virtual desktops and you want it to have 4 proper desktops but lo, you only have one output? Various ways around this of course. You have XFree86 window servers as targets, you can have a beastie computer manage the desktops and VNC in (although this gives only a single desktop). I wondered if a better solution existed though. Afterall a modern home office network with Cat 6 kit is more than capable of carrying high def raw data. E.g. HDMI over Ethernet. So why not allow any computers to share their physical monitor and share this capability via Bonjour. You could then have a virtual remote monitor graphics driver streaming a raw HDMI signal, for example, to this output.

This approach would have limitations – it would take over the entire monitor feed potentially, and only gets you the display portion, not the control portion. (Although you could do this via some sort of HDMI-CEC keyboard and mouse driver). I think whatever solution you have it needs to be neat and simple and require minimal coding on the systems. I would imagine most OS’ have libraries capable of outputting a variety of common formats. HDMI would normally be done by a graphics card though or motherboard graphics controller, so might not be appropriate for this usage.

Its the age old problem of KVM – Keyboard, Video and Mouse. Synergy2 gets you the K and M part, but doesn’t handle sharing a physical display on one machine as a virtual display on another. Maybe pursuing some sort of modification to Synergy2 would work well? It already supports Windows, Mac and Linux and is Free Software. You’d need some sort of ‘physical device server’ and ‘virtual device client’ mapping to handle this, but should be relatively straight forward. The hardest bit will be getting the OS to treat a piece of software as a display. I suppose there is always the Frame Buffer monitor type that would allow this to be done arbitrarily. Once this is done, support for multiple mapping presets would effectively let you do what I personally need – so ‘All three monitors to macbook pro’ or ‘all three monitors to work PC’. Others may wish to vary combinations depending upon task. E.g. if in ‘work’ mode then the work PC has two and the macbook as one (for iTunes say), and a ‘home’ configuration to reverse which machine has 2/1 monitors.

I’m going to post to the Synergy2 questions site to see if this is feasible. In the meantime I’ll try and write a virtual monitor driver for my mac. I’ll start by creating a 1024×768 virtual display that shows the output on the macs physical display…