Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clipper

Clipboard history manager with retro visual (style-like Windows 3.1/95), wrote in C++ with Dear ImGui

  • SDL2 + OpenGL.

Features

  • Monitors the system clipboard using each operating system's native event system, without constantly polling for changes. As soon as something is copied, the application is notified immediately.
    • Windows: uses the operating system's native clipboard events.
    • Linux: uses the X11/XFixes event system, working on both X11 and Wayland through XWayland.
  • Automatically stores text and images copied to the clipboard. If you copy a screenshot, an image from a website, or any other graphical content, it will appear in the history with a thumbnail preview.
  • Simply click any item to copy it back to the clipboard. This works for both text and images, allowing you to paste them into any application as usual.
  • Lets you reorder the history by dragging and dropping items with the mouse.
  • Items can also be moved using the Up (^) and Down (v) buttons.
  • Each entry includes an X button to remove only that specific item (and its associated image, if applicable).
  • The CLEAR ALL button removes the entire history after confirmation.
  • The complete history, including both text and images, is automatically saved to disk, so nothing is lost when the application is closed.
    • Linux: ~/.local/share/clipper/
    • Windows: %APPDATA%\ClipboardRetro\

Building

sudo apt update
sudo apt install -y build-essential cmake git \
                     libsdl2-dev libgl1-mesa-dev \
                     libx11-dev libxfixes-dev libxext-dev \
                     mingw-w64
cd clipper

# Dear ImGui (graphical interface)
git clone --depth 1 --branch v1.90.9 https://github.com/ocornut/imgui.git third_party/imgui

# stb_image / stb_image_write (read/write PNG)
mkdir -p third_party/stb
curl -sL -o third_party/stb/stb_image.h \
  https://raw.githubusercontent.com/nothings/stb/master/stb_image.h
curl -sL -o third_party/stb/stb_image_write.h \
  https://raw.githubusercontent.com/nothings/stb/master/stb_image_write.h

2. Compiling (Linux)

cd clipper
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
./clipboard_retro

3. Windows (by cross-compile)

cd clipper
curl -L -o /tmp/sdl2mingw.tar.gz \
  https://github.com/libsdl-org/SDL/releases/download/release-2.30.9/SDL2-devel-2.30.9-mingw.tar.gz
mkdir -p mingw-sdl2
tar xzf /tmp/sdl2mingw.tar.gz -C /tmp
cp -r /tmp/SDL2-2.30.9/x86_64-w64-mingw32/* mingw-sdl2/

Now, using Minggw toolchain already included in the project: (mingw-toolchain.cmake):

mkdir build-win && cd build-win
cmake .. -DCMAKE_TOOLCHAIN_FILE=../mingw-toolchain.cmake \
         -DSDL2_DIR=../mingw-sdl2/lib/cmake/SDL2 \
         -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)

License?

Check the LICENSE file.

Releases

Packages

Used by

Contributors

Languages