An end-to-end encrypted global clipboard. Contribute to RastislavKish/clipshare development by creating an account on GitHub.
Hello everyone,
I would like to share my little project I've been working on recently. There are many awesome data sharing solutions around. However, I've always wanted to be able to just alt+C on one machine and Alt+P on another, clipboard is just such a handy thing!
so, I finally decided to get this done. Welcome Clipshare, a foss, end to end encrypted universal clipboard, written in Rust! Only Text and desktop platforms supported for now, but Android is definitely coming and files / images perhaps too.
I found Barrier to be quite good in that regard for text in the clipboard, but think it doesn't do file copying. Would be awesome if it had that feature, so clipshare might be good to extend Barrier.
This is neat, but what would be even better would be to have the option for a serverless infrastructure. i.e., use it like macOS does, where any device on the same network (logged into the same account) can copy/paste.
The reason for using Alt+C & Alt+P by default is to make sure Clipshare doesn't collide with the system clipboard. Since as awesome as a global clipboard is, most of the time I copy something I'm working just on a single machine, so there is no reason for the data to go anywhere. Clipshare simulates Ctrl+C & Ctrl+V keypresses on these occassions (unless the sync variants are used), so the shortcuts should in many cases integrate nicely with the graphical environment.
Serverless setups are absolutely cool, though, in this particular use-case, it depends. Many of the machines I need to copy data between are actually VMs, where NAT usually stands in the way (I mean yes, it doesn't need to, but I sort of like the network isolation it provides), some VM | remote access software provides clipboard synchronization, but it's usually either "way too synchronized" to my liking (weakening isolation), or, another extreme, requires carrying away the focus to activate.
Thanks for mentioning barrier, seems pretty fancy! It's a bit different use-case than Clipshare is aiming at, though, with multicomputer setups, it seems there is a considerable space where these two do overlap (or supplement each other).
Transferring files is a functionality I would really want to implement. Though, I'm not yet decided how to tackle the problem, I mean, I could certainly do the simplest possible approach - data streaming through the server. However, it feels sort of like reinventing the wheel, many people have already implemented sophisticated data transfer algorithms more or less exactly for what I'm trying to do. I need to check out crates.io, if I can find anything nice that could be usable in this context.