Wednesday, July 19, 2006

Using 2 computers on one desk

The Challenge: How to best use the 2 computers at my desk to increase my productivity.
Comp #1: 3.2ghz laptop, 2 gb ram
Comp #2: 2ghz desktop w/lcd, 2gb ram

Attempt #1
Tried Multiplicity from Stardock. It let me use one computers keyboard/mouse to control both computers. To switch computers, I simply slide the mouse pointer to edge of screen towards the desktop I'd like to switch to.

Advantages
  1. Automatic clipboard sharing

  2. Let's you use all the hardware
Disadvantages

  1. Encountered too many bugs to use on a regular basis.

  2. Ability to switch can depend on responsiveness of the computer you're on (as opposed to a H/W kvm)
Attempt #2:

Use both comps. with their own keyboards/mice. Rotate my desk chair to reach each.

Advantages

  1. Full power of both comps. Easy for someone to pull up a chair and work on one of my spare comps pair style.
Disadvantages

  1. Too much rotating. Can't seem to get in a comfortable position for both keyboards/mice.

  2. No clipboard sharing without another external tool (see Resources)
Attempt #3:
Plug the display from comp2 into comp1, and use the windows extend desktop feature.

Advantages
  1. Lots of desktop space to work in. Can lay out my eclipse windows in some interesting ways (since the views undock). Tip: Create a two-monitor version of each perspective and save it under a custom perspective name, like "Java - 2 monitors" or "Debug - 2 monitors". Then you can easily flip to your 2 monitor layout or your 1 monitor layout depending on which computers are available on your desk at the time.
Disadvantages
  1. Dialogs in JAVA programs (namely eclipse tend to pop up in the wrong monitor, and/or eclipse incorrectly checks for focus based only on the current monitor).

  2. Sometimes when waiting on the cpu of comp1, I could be doing something useful. not using the full power of comp2 (no cpu)
NOTE: There is an option in windows to center the mouse on a dialog when it pops up (which saves you from having to slide the mouse very far when a dialog pops up on the wrong monitor).


Attempt #4 (what I'm using currently):
Bought a hardware usb KVM switch (IOGear miniview GCS632U KVMl). Uses one keyboard/mouse to connect to both computers. Allows me to tap Ctrl twice to switch computers
Advantages

  1. When an activity (i.e. - recompiling a workspace in eclipse) is bogging down one machine, I can switch to the other to accompllish something in the meantime.

Disadvantages

  1. Switching takes about a second.

  2. Can't see both computer's desktops at any instant.

Other options that I have not tried yet:

  1. Distributing the responsibilities of the software I'm using which bogs down. I.e. - put the database, app server, or both on a single machine which the other machine (running my development IDE for instance) then acts like a client for.

  2. Software to investigate: http://synergy2.sourceforge.net

Additional Resources
RemoteClip - http://www.cs.cmu.edu/~rcm/RemoteClip/ -- Synchronizes the clipboards on both computers

2 comments:

Anonymous said...

I've used Synergy in the past with 2 WinXP systems. It worked great. I actually used it with a laptop, a desktop, and a monitor that had dual inputs.

I used the laptop as my primary "typing" station and had it set up to use both the built-in screen and the external monitor. Actually, at one point I had two monitors and did not use the built-in. That was very nice.

The desktop was used for CPU or memory-intensive tasks that I did not need to specifically interact with a large portion of the time. However, when I did need to interact, I just pressed the "switch input" button on the monitor, moved my mouse far enough to the left (in my configuration), and started working.

It was quite seemless. I could work on both at the same time if I was willing to put up with moving the mouse one monitor's width to get from one the visible space on one to the other.

Another option would be to run a VNC-style client (or remote desktop) and not have a display set up at all. Or, if one of the boxes is *nix-based, you could run an XServer (cygwin has them for WinXP) and have programs from the other box display to your primary.

Matt said...

Thanks for the feedback and additional idea (VNC or XServer)!

So far, I have to admit I'm pretty happy with my hardware KVM switch. The nicest thing about it is [having the full power of both CPU's] when a machine gets bogged down, and I tap Ctrl twice to switch machines . . . I don't have to wait on something in the software on the busy machine to respond and do the switch. I find that pretty convenient. With the clipboard sharing (RemoteClip), I find myself using both machines quite a bit, and sometimes having 1 development workspace open on each machine in order to work on different tasks in parallel.