A fair number of users come to 6by9.net searching for “linux remote clipboard”. I find this interesting, as I’ve never had a use for such a thing. I do not know your use case, but I think it’s possible you’re not considering some of the more powerful options available. There are a couple remote clipboard software packages for you to consider, although you may end up having to pay a license fee. You may also be going about the solution in the wrong manner, so I’ll suggest some alternatives.
Remote Clipboard Options
One of the simplest options seems to be a Java-based research project from CMU named Remote Clip. The goal was to allow cross-platform, synchronized clipboard and file access between Windows, Palm OS and Unix. Unfortunately, the software is becoming old, is unmaintained and apparently no longer works properly for all platforms.
Simidude is a commercial, cross-platform clipboard and file drag & drop utility. It seems to be well regarded, but will require a license fee. It’s not available on mobile phones or PDAs, but does support Windows, Linux and Mac OS.
In my experience, virtualization and remote display configurations are the most commonly used. The above clipboard software options fight to synchronize the internal clipboards of several completely separate computers. This requires that you physically switch between two different computers, which is an inconvenience even when using a KVM. When I need to quickly and easily switch between applications, I either use virtualization or some type of remote display setup.
Remote windowing/desktop configurations vary from sharing a single window to the entire display of another system. Sharing single windows can be extremely efficient compared to duplicating the entire desktop of another computer, but is not possible in all circumstances.
Particularly between Linux, Unix and Mac OS systems, it’s incredibly easy to share a window. Simply ssh into the remote system with the
-Y flag and then start the application. SSH automatically takes care of setting up and forwarding the remote X connection (but read the ssh man page to learn about the security implications of
-Y). Adding the
-C flag will enable compression for slow connections. A remote session might look like this:
eliot@local$ ssh -CY email@example.com eliot@remote$ google-chrome & eliot@remote$ meld main.c main.c.rev255 & eliot@remote$ dbus-launch kmail
The same is possible when you need to launch a remote X11 application inside Windows. The setup is a bit more involved, as you’ll need to install Cygwin and an SSH client. The following page of the Cygwin manual has the full list of instructions.
Unfortunately, I don’t know of a way to launch a remote Windows application inside Linux, Unix or Mac OS. The alternative is to enable Remote Desktop on Windows (and find a compatible client), or to use a VNC client (see my post on Linux and VNC Clipboard for notes on this setup).
Running all your applications on one physical host using virtualization software will greatly simplify your workflow. I’ve had so many good experiences using VMware that I’ve never had to try anything else. Your virtualized operating system will run in a window right next to everything else, the clipboards will be automatically synchronized and directories from one OS can easily be accessed from the other. Using VMware’s Unity mode, applications from the virtual OS can actually break out into their own windows and appear to be running natively.
Virtualization has become much more efficient in recent years, but there are still overheads. Consider carefully before using virtualization when it’s possible to use a remote display configuration instead.