Coder Social home page Coder Social logo

juliankominovic / clipboard-manager Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 8.65 MB

Another offline, cool looking, comfortable, clipboard manager.

HTML 1.16% JavaScript 3.70% Rust 23.79% TypeScript 66.07% CSS 5.28%
clipboard-manager local-first productivity react rust tauri typescript

clipboard-manager's Introduction

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.

clipboard-manager's People

Contributors

juliankominovic avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.