autocutsel http://www.nongnu.org/autocutsel/ https://github.com/sigmike/autocutsel Copyright (c) 2001-2021 - Michael Witrant 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. To build autocutsel: ./configure make If you downloaded autocutsel from git you first have to run ./bootstrap to build the configure script. If configure fails because it can't find X or Xaw libraries, you may have to install the devel packages of these libraries. On Ubuntu, you may need to install these packages : sudo apt-get install libc6-dev libxtst-dev xorg-dev To install it (as root): make install To run it: autocutsel By default, autocutsel synchronizes the CLIPBOARD selection. You may want to use the PRIMARY selection instead, if your applications use Motif or another toolkit not using the CLIPBOARD. To do that, simply run autocutsel -selection 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. Any feedback is welcome. Michael Witrant This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA