Copyright (c) 2015-2026 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.
This library is distributed under the terms of the MIT License. Contributions using generative AI are not allowed.