Skip to content

JulianKominovic/clipboard-manager

Repository files navigation

Clippis icon

Clippis

Another offline, cool looking, comfortable, clipboard manager. Built with Tauri for Linux(gnome)

Screenshots

Captured in Ubuntu 22.04 x11. The app is not optimized for wayland yet. Clippis demo Clippis demo

Features

  • No internet connection required. - [x] No data is sent to any server.
  • All data is stored locally (scroll down to end of sidebar to see where database is located).
  • Filter by
    • Text
    • Type of clipboard item
    • Date
    • App where the item was copied
  • Search by text
  • Supports html, text and images (files, uris and urls soon)
  • Delete items from history
  • Copy items from history
  • Clipboard history items groupped by relative date
  • Dark mode
  • Some settings

Future features

  • Autocompress images
  • Support for files, uris and urls
  • Sync across devices in the same network
  • Blacklist apps
  • Whitelist apps
  • Drag and drop items from history
  • Generate previews for urls, files and uris
  • UI customization
  • Virtualization for history item list
  • Performance improvements (saving images to disk, loading images from disk, loading history items from database, optimizing image processing, etc)
  • Support for other linux desktop environments
  • Support for Windows
  • Support for MacOS

Installation

  1. Install dependencies
sudo apt install xclip
  1. Download the latest release from here
  2. Download the .deb file
  3. Install it with sudo apt install <package-downloaded>
  4. Replace <package-downloaded> with the path of the package downloaded in step 2
  5. Clippis should be installed now. You can open it from the applications menu or by running clippis in the terminal

Goal

  • Create a simple clipboard manager for linux
  • Save clipboard history to database (~/.clipboard_history/db)

Dev dependencies

# sudo apt install xclip
sudo apt-get install xorg-dev libxcb-shape0-dev libxcb-xfixes0-dev

Libraries used

  • arboard - for clipboard management
  • chrono - for date and time
  • clipboard_master - clipboard event listener
  • homedir - for getting home directory
  • once_cell - for lazy static initialization
  • serde - for serialization and deserialization
  • sled - for database
  • bincode - for binary serialization and deserialization

Changes

  • Clipboard listener working alone
  • Clipboard data saved to Sled database
  • Clipboard history tracking integrated with Tauri
  • Images are saved to app data directory
  • Images are loaded from disk and displayed in the UI as Recent images. A huge performance improvement
  • Database footprint reduced by using bincode for serialization and deserialization and keeping files in disk instead of in database file
  • Clipboard works with images. Now you can re-copy images from the clipboard history.