/shared-clip

shared-clip helps to deal with clipboard when using multiple virtual displays

Primary LanguageRustApache License 2.0Apache-2.0

Shared Clip

This tool aim to help with usage of the clipboard when using virtual desktops (such as Xephyr) It was created to allows host and virtual guest display to share the virtually same clipboard. This is not really a shared clipboard as the implementation is heavily using copy of data from one clipboard to another. But in this case, the usage of Rust helps a lot as it really helps to handle some concurrency pitfalls.

How it works

Shared-clip will list all started virtual display at startup and then watch for each all events emitted by the clipboard using clipnotify when an event is emitted on a display, it will be forward to each other display which will sync their state with the first one.

Getting Started

Requirements

Make sure to have Rust toolchain installed (see: documentation) Shared-clip also rely on clipnotify and xclip tools that should be available for most distros through package manager

Install from source

In order to compile shared-clip firstly run this command:

$ cargo build --release

then you can copy the result binary in your path (you should find it at <shared_clip_source_dir>/target/release/shared-clip)

Run shared clip

Run shared-clip in foreground mode seeing all its logs:

$ shared-clip

Or run it in background (as a startup script or else)

$ shared-clip > /dev/null 2>&1 &