HaveFun.cz

HaveClip


Have you ever grown tired of thinking how to transfer a link or a text from one computer to another? Will you email yourself, use 3rd party service like Pastebin, or will you copy it by hand?

HaveClip is the solution. Ctrl+C on one computer, Ctrl+V on another. Simple.

Main features are:

Clipboard is instantly synchronized across all your devices. It can handle all forms of text, images and even application-specific data.

HaveClip is multiplatform. Copy something in one OS, paste in another. Supports Windows, Linux, Mac OS X and Sailfish OS.

Screenshots

Packages and executables

Arch Linux

Some good soul put HaveClip to AUR, thanks!

Windows

Download Windows 32bit executable

Others

You will have to build HaveClip from source.

If you like HaveClip and know how to create packages for your distribution, I’ll be happy to put it here for others to enjoy.

Requirements

HaveClip for desktop is written in C++ using the Qt framework.

Debian based distributions

# apt-get install g++ libqt4-dev libqt4-dev-bin libX11-dev libqxt-dev

Fedora and other RPM based distributions

# yum install gcc-c++ qt-devel xorg-x11-proto-devel libqxt-devel

Download source code

https://sourceforge.net/projects/haveclip/files/

Build

$ tar -xzf haveclip-desktop-0.12.1-src.tar.gz
$ cd haveclip-desktop-0.12.1-src
$ qmake (or qmake-qt4, qmake-qt5)
$ make

You should now have executable at bin/haveclip and a library at haveclip-core/bin/libhaveclipcore.so.1.

Installation

$ sudo make install

or as root

# make install

Usage

Desktop version of HaveClip runs in background. There is no window when you launch it, only tray icon will show up.

If you left-click the tray icon, menu with clipboard history will pop up. Right-click triggers menu with options and pasting. These two menus are merged in one in OS X.

When you copy something into clipboard, it will be sent to all devices listed in Pool.

Use HaveClip only on trusted networks.

Configuration

Configuration dialog is the same on all platforms and contains several tabs/sections described below.

Clipboard

Set your history size, whether to save it at all and to disk.

On Linux, you can choose to unite selection and clipboard. It means, that pasting using mouse middle button and Ctrl+V will always give the same. You can also select whether you want to sync only selection, clipboard, or both.

Pool

This section contains list of all devices clipboard will be synced to. You have to configure this in every HaveClip. When you copy something to clipboard, it will go through this list of devices and send it to each and every one.

Format for each entry is: IP address:port

For example 192.168.2.10:9999

Connection

Here you configure the IP address and port this HaveClip will listen on. You have to find out your IP address and put it there. By default, HaveClip listens on 0.0.0.0, which means it listens on ALL addresses. This IP address (not 0.0.0.0, but concrete IP address) is what you put to “Pool” on other devices.

Port can by anything higher than 1024 and lower than 65 535. Default port 9999 is just something I made up.

You can also configure encryption. For now, you have to generate your own certificates. It can be self-signed, you will just verify fingerprint and confirm untrusted certificate dialog, which will pop up on first use.

You cannot use encryption if you want to sync clipboard with Jolla. It’s in TODO list.

The last field is for password. You can leave this empty if you want. The password must be the same on all devices you sync. It is there just to ensure that no other program can insert something to your clipboard without the knowledge of this password. It makes sense only when used with encryption.

Example setup

Let’s say I have a PC, notebook and Jolla. I want to sync clipboards on them in my home network.

First discover their IP addresses. On Linux run ip a or ifconfig in terminal. On Windows or Mac look to network settings. On Jolla, do the same as on Linux if you have developer mode, or install application from Harbour that can show your IP address.

I will use following IP addresses:

Device IP address
PC 192.168.2.10
Notebook 192.168.2.11
Jolla 192.168.2.12

Configure PC

Configure notebook

Configure Jolla

Using this setup, I will always have the same thing in clipboard.

Features

Where as the main functionality is present on all platforms, not all other features are. The most equipped is the Linux version. It can show you a preview of clipboard contents in tooltip of tray icon and you can use serial batches. This is not possible to easily implement on other platforms.

HaveClip can be handy even if not used for clipboard syncing. It saves clipboard history, allowing you to jump back and forth. It has integrated support for paste services. With HaveClip you can easily create pastes from the contents of clipboard. Support of specific application you work in is not required.

Currently, HaveClip supports these paste services:

Linux specific features

Persistance

When you copy something and then close the application, the copied data is lost. HaveClip prevents that. If the clipboard contents suddenly disappears, it will be reset.

Serial batches

Copy a series of data into clipboard and then paste it in the same order.

Serial mode can be enabled in tray icon’s context menu (right click) or with a global keyboard shortcut Ctrl+Alt+S.

How to use serial mode:

Serial batches are of course also synchronized on all PCs in your pool, that support them. Therefore it is possible to copy/paste data into/from the same batch from all PCs in pool.

Serial mode has it’s limitations. It does not work in all applications, especially applications which are checking clipboard contents whenever it changes, e.g. VirtualBox, caja. HaveClip has problematic applications on blacklist and is ignoring them. Serial batches do not work in them. This blacklist is so far hardcoded, it will be user editable in the future versions.

Sailfish OS

Sailfish version does not support paste services, nor serial batches.

Encryption is currently not supported neither.

Known issues

In order to sync clipboard from Sailfish to PC, one must bring HaveClip to foreground after copying text, or else HaveClip will not notice it. Sync from PC to Sailfish works fine.

For planned features see TODO.

License

HaveClip is released under GNU/GPL.

WARNING

The clipboard is definitely a private thing, so be careful where and how you use HaveClip. Be sure to use SSL/TLS encryption, generate your own certificate and use access password.

Use HaveClip only on trusted networks.