Skip to content
jernejmarcicPublic

About

C++ Linux clipboard history storage / scratchpad (currently only supports Wayland)

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

41 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clipser (C++ clipboard history utility)

Clipboard history keeper/scratchpad with language detection for text, image metadata extraction, and OCR. This is meant to be a clipboard history keeper and scratchpad.

Table of Contents

Why I built it

I noticed I was using my clipboard history for more than just keeping clipboard history. I found myself searching through it for some information I frequently had to copy and paste such as email addresses, phone numbers, addresses, and more. So I built Clipser to make it easier to access this information, and while I was at it a few extra features as well.

Dependencies

Required (core CLI + database):

  • g++ (C++23), make, and pkg-config
  • sqlite3 (core database storage)
  • libmagic (file type detection)
  • exiv2 (image metadata extraction)
  • libexttextcat (language detection)
  • tesseract + leptonica (OCR headers used by current core build)

Optional (build only if you need these targets):

  • gtkmm-4.0 (GTK UI in src/gui)

Installing Dependencies

Ubuntu/Debian

sudo apt-get update
sudo apt-get install build-essential pkg-config libmagic-dev libexiv2-dev libexttextcat-dev libsqlite3-dev libtesseract-dev libleptonica-dev
sudo apt-get install sqlite3

Optional (GTK UI):

sudo apt-get install libgtkmm-4.0-dev

Arch Linux

sudo pacman -S --needed base-devel pkgconf file exiv2 libexttextcat sqlite tesseract leptonica

Optional (GTK UI):

sudo pacman -S --needed gtkmm-4.0

Fedora

sudo dnf install gcc-c++ make pkgconfig file-devel exiv2-devel libexttextcat-devel sqlite-devel tesseract-devel leptonica-devel

Optional (GTK UI):

sudo dnf install gtkmm4.0-devel

Build Instructions

Open a terminal and navigate to the project directory. Then, run the make all command. Or copy paste the following that will do just that:

git clone https://github.com/jernejmarcic/Clisper
cd Clisper
make all

Maybe I will add precompiled binaries so you don't have to compile it yourself and install all the dependancies.

Running

You need two separate instances so both text and images are captured.

wl-paste --type image --watch /path/to/main
wl-paste --type text --watch /path/to/main

Auto-start (Hyprland)

Add the two commands to your Hyprland config

exec-once = wl-paste --type image --watch /path/to/main
exec-once = wl-paste --type text --watch /path/to/main

Auto-start (Sway)

Add the two commands to your Sway config

exec wl-paste --type image --watch /path/to/main
exec wl-paste --type text --watch /path/to/main

Roadmap

0.7

  • DB works
  • Integration for dmenu compatible interfaces

1.0.0

FULL RELEASE

  • Configurable database
  • Configurable metadata extraction
  • Configurable post-processing
  • Image OCR via tesseract
  • Custom GTK app

2.0.0

  • Custom cross platform copy/paste utility

Versions

About

C++ Linux clipboard history storage / scratchpad (currently only supports Wayland)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages