this post was submitted on 26 Nov 2023
113 points (100.0% liked)

Open Source

31250 readers
260 users here now

All about open source! Feel free to ask questions, and share news, and interesting stuff!

Useful Links

Rules

Related Communities

Community icon from opensource.org, but we are not affiliated with them.

founded 5 years ago
MODERATORS
 

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.

top 14 comments
sorted by: hot top controversial new old
[–] [email protected] 14 points 11 months ago (3 children)

Do you really do Alt+C and Alt+P for copy paste? I usually press Ctrl+C and Ctrl+V

[–] [email protected] 14 points 11 months ago

Those shortcuts invoke clipshare. It looks like there's also a sync mode so you can use normal copy/paste and it will still sync.

[–] [email protected] 3 points 11 months ago (1 children)

Ctrl+Insert / Shift+Insert superiority. Works even in terminals!

[–] [email protected] 2 points 11 months ago (1 children)

I can never remember which is which

[–] [email protected] 7 points 11 months ago (1 children)

Insert to copy, and then Insert to paste.

[–] [email protected] 2 points 11 months ago

Aaargh, that makes so much more sense now.

Hopefully I'll remember this time.

[–] [email protected] 1 points 11 months ago

Command C, Command V, but only sometimes. #MacGang

[–] [email protected] 9 points 11 months ago (1 children)

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.

[–] [email protected] 4 points 11 months ago (1 children)

Barrier is great, I just need pasting images to work

[–] [email protected] 2 points 11 months ago
[–] [email protected] 5 points 11 months ago (1 children)

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.

[–] [email protected] 12 points 11 months ago

KDE Connect can do that

[–] [email protected] 2 points 11 months ago

Very cool. I was literally think about such a project yesterday lol.

[–] [email protected] 1 points 11 months ago

Thanks for all the awesome feedback!

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.