1. LFS‎ > ‎


created : 2010-01-27   updated : 2010-01-27

X servers use two schemes to copy text between applications. The first one (old and deprecated) is the cutbuffer. It is a simple buffer in which any application can store text. The other scheme is the selection and works differently. There may be many selections in a single server. An application does not copy data in a selection, it "owns" it. When another application wants to retreive the content of a selection, it asks the owner.

Recent desktop applications (GNOME, KDE, ...) use two selections: the PRIMARY and the CLIPBOARD. The PRIMARY selection is used when you select some text with the mouse. You usually paste it using the middle button. The CLIPBOARD selection is used when you copy text by using, for example, the Edit/Copy menu. You may paste it using the Edit/Paste menu.

Windows VNC clients keep the Windows clipboard synchronized with the cutbuffer, but not with the selections. And since recent applications don't use the cutbuffer, the server's CLIPBOARD is never synchronized with Windows' one.

Autocutsel tracks changes in the server's cutbuffer and CLIPBOARD selection. When the CLIPBOARD is changed, it updates the cutbuffer. When the cutbuffer is changed, it owns the CLIPBOARD selection. The cutbuffer and CLIPBOARD selection are always synchronized. Since the VNC client synchronizes the Windows' clipboard and the server's cutbuffer, all three "clipboards" are always kept synchronized. When you copy some text in Windows, the cutbuffer and the CLIPBOARD selection are updated. When you copy text on the server using either the cutbuffer or the CLIPBOARD selection, the Windows's clipboard is always updated.

You can also use autocutsel to track the PRIMARY selection to copy text when it's selected. To do this, simply run autocutsel with the arguments "-s PRIMARY"

Some softwares (like Open Office Writer) have trouble when the PRIMARY selection is requested before the mouse button is released. As a workaround, you can run autocutsel with the "-buttonup" option and it will only get the selection when the first mouse button is not pressed.