I have a desktop computer computer (running Windows 7), and a laptop (running OSX Mountain Lion, and maybe Ubuntu 12 eventually). When the laptop is at home, I want both the desktop and the laptop to use the same (2+) monitors, the keyboard, and the mouse (or mice, if I add a track pad). I know about KVM switches, but I want something more complicated.

I like to use Synergy to use both computers with one keyboard and mouse at the same time. Synergy requires that the keyboard and mouse be connected to one computer (the server), which shares them with other computers (clients) over wifi. the issue is that when one computer isn't logged in, Synergy doesn't work on it. Sometimes, I want my laptop to be the server (physically connected to the keyboard and mouse), and sometimes I want my desktop to be the server. This means that I need the keyboard/mouse/other USB devices to be able to switch computers without me playing musical plugs.

To complicate things further, I don't always want the same desktop set up in terms of monitors. Sometimes, I want the desktop to have both monitors. Other times, I want the laptop to control both monitors. Sometimes I want the desktop to control one monitor, and the laptop to control the other. In any case, the keyboard and mouse need to be able to be physically connected to either computer without lots of fussing with plugs. This breaks down to at least this set of possible combinations:

  • Desktop controls both monitors, and has a physical connection to keyboard and mouse
  • Laptop controls both monitors, and has a physical connection to keyboard and mouse
  • Desktop and laptop each control a monitor, but the desktop has a physical connection to the keyboard and mouse (which it shares with the laptop via wifi)
  • Desktop and laptop each control a monitor, but the laptop has a physical connection to the keyboard an mouse (which it shares with the desktop via wifi)
  • some usb devices connected via a usb hub need to be able to switch physical connection between computers, ideally without the keyboard and mouse switching computer connection

There may be other combinations, but these are the main ones at the moment. Basically, I need a KVM switch which allows me to switch individual monitors/keyboard/mouse/usb hub between computers independently of each other, or a better solution.

How can I set two computers up with the same monitors/mice/keyboard/usb hub without having to switch everything to one computer or the other all at the same time?

  • In other environments, something similar would be called a matrix switch, where each input can be connected to any output. I doubt that anything exists for what you want unless you custom built it. – sawdust Oct 17 '12 at 4:24

(This is hardly a complete answer, but contains some ideas which might help) I think you should first try to simplify your problem. Ignore the non-input usb devices for now; there are probably usb switches you could use for them.

You wrote that it is not possible to run synergy when the computer is not logged in. This is not entirely correct: You can run synergy in login screen. (At least for Windows XP and GDM).

I would suggest to create one synergy configuration for each of the four scenarios. (I.e, two on each computer.) You could then write a script file on each which does the following:

  • If this computer has the input devices (should be detectedable somehow)
    • then if this computer has two monitors attached
      • then run synergys with the two monitor config file (optional)
      • else run synergys with the one monitor config file
  • else run synergyc to connect to the other machine

How to detect whether the inputs are present and how to detect the number of monitors is now a different question which is no longer related to synergy. You also would need to re run the scripts each time you want to change your configuration.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.