cut-paste with VNC on linux - why it is currently wrong
Ron Goldman
rgoldman@cs.stanford.edu
Wed Feb 12 08:04:00 2003
On Sun, 09 Feb 2003 13:38:21 Jerry McBride wrote:
> Can you clarify that a bit better? I've been cut-n-pasting on linux
> servers and
> clients without any problems what-so-ever.
Sure, I'll try to expand on why the current way VNC on Linux handles
cut-and-paste creates problems for our users.
(Short answer: If you just use emacs & xterm, VNC handles cut-and-paste
just fine. If you use more "modern" apps like Netscape, Mozilla, Gnome
apps, then VNC loses, especially for beginner Linux users.)
The source of the problem is that X clients do not handle cut-and-paste
in a consistent way. X defines several mechanisms for making
"selections". The oldest is the CUTBUFFER, which most apps no longer
use, but is what VNC relies on. Then there are the PRIMARY, SECONDARY &
CLIPBOARD selections. If you are used to selecting with your mouse and
then pasting using the middle button then that generally uses the
PRIMARY selection. Using the cut/copy/paste menu items sets the
CLIPBOARD.
The way VNC works is that whenever a client sets the CUTBUFFER, the VNC
server sends the text along to the remote VNC viewer. When the user on
their remote system makes a selection (which for another Linux system
means either the CUTBUFFER or the PRIMARY selection) then their VNC
viewer sends over the text and the VNC server copies it to the
CUTBUFFER and clears the PRIMARY selection.
For apps like emacs and xterm that always set the CUTBUFFER along with
the PRIMARY selection this all works fine with VNC. For apps that just
use the PRIMARY selection VNC never sees the selected text---try using
something like gnome-terminal. To work around this people use xcutsel
so after they make a selection they can manually tell xcutsel to copy
it to the CUTBUFFER. Likewise when they select text on their remote
machine, they use xcutsel to copy the CUTBUFFER to the PRIMARY
selection so they can paste it. Some folks use autocutsel which
automatically keeps the CUTBUFFER in sync with the PRIMARY selection by
checking them every second or so. Beginners don't have a clue and just
think that VNC is not able to cut-and-paste between the server & remote
systems.
In the modern world of PCs & Macs & GNOME & KDE, folks now use the
cut/copy/paste menu items to copy text between applications. (Only
advanced Unix types use the middle mouse button.) In my original note I
referenced an old email from when GNOME made just this switch. What I'm
proposing is that it is now time for VNC to also join the modern world.
In our particular case with WorkSpot (www.workspot.com) we provide
people with access to a remote Linux desktop through their browser
using VNC. So we are often working with people new to Linux and we need
to make things like cut-and-paste work as they would expect them to.
Thus we will shortly upgrade our Linux VNC server to use the clipboard.
We hope other folks might want to do likewise.
Anyway hope that makes it clear why I'm bringing this issue up.
-- Ron --