Copyright (c) 2015-2024 David Capello
Library to copy/retrieve content to/from the clipboard/pasteboard.
Available features on Windows, macOS, and Linux (X11):
- Copy/paste UTF-8 text.
 - Copy/paste user-defined data.
 - Copy/paste RGB/RGBA images. This library use non-premultiplied alpha RGB values.
 
#include "clip.h"
#include <iostream>
int main() {
  clip::set_text("Hello World");
  std::string value;
  clip::get_text(value);
  std::cout << value << "\n";
}#include "clip.h"
int main() {
  clip::format my_format =
    clip::register_format("com.appname.FormatName");
  int value = 32;
  std::string str = "Alternative text for value 32";
  clip::lock l;
  l.clear();
  l.set_data(clip::text_format(), str.c_str(), str.size());
  l.set_data(my_format, (const char*)&value, sizeof(int));
}- If two versions of your application (32-bit and 64-bit) can run at
at the same time, remember to avoid storing data types that could
change depending on the platform (e.g. 
size_t) in your custom format data. - Windows:
 - Linux:
- To be able to copy/paste on Linux you need 
libx11-dev/libX11-develpackage. - To copy/paste images you will need 
libpng-dev/libpng-develpackage. 
 - To be able to copy/paste on Linux you need 
 
CLIP_ENABLE_IMAGE: Enables the support to copy/paste images.CLIP_ENABLE_LIST_FORMATS(only for Windows): Enables theclip::lock::list_formats()API function and the list_clip_formats example.CLIP_EXAMPLES: Compile examples.CLIP_TESTS: Compile tests.CLIP_INSTALL: Generate installation rules for CMake.CLIP_X11_WITH_PNG(only for Linux/X11): Enables support to copy/paste images using thelibpnglibrary on Linux.
Check the wiki
to know what projects are using the clip library.