A LAN-level clipboard utility.
Do you use multiple machines during the day? Are they all on the same LAN segment? Are you having to use third-party sites (like cl1p.net) to exchange text and URLs between them? Well, then, you need ClipNet
!
I fall into the above category. I use three or more machines during the day for various things--one is for communication software, like Skype and Slack, one is for software development, etc. Exchanging text information between them requires me to go out to the cloud to paste it, and then out to that same cloud again to retreive it. That alone is a pain in the ass, but when I think about the security nightmare involved when trying to convey sensitive information between machines that are literally feet apart, I just knew there had to be an easier way. Thus, the idea for ClipNet
was born.
ClipNet
uses UDP to create a "private" multicasting group where clipboard data from one machine is instantly transmitted to all other members of the group. These other members react to the event by placing the event data immediately onto their respective clipboards. In this fashion, the clipboards of all machines are instantly syncrhonized, and data is transmitted without any manual intervention--and, more importantly, any third-party involvement.
Exchanging plain-text data on your "isolated" home network may not send you into a sweaty, paranoid panick ... but you are not me. I have integrated two options for data security into ClipNet
to protect the clipboard data as it travels along the twisted pair.
The first is SimpleCrypt. This is more of an obfuscating library, and not really a full-fledged cryptographic system. It provides some light-weight obscuring of data, and in most cases, provides sufficient coverage of your clipboard plain text. This is the default security type in the build, as the code for SimpleCrypt
is included directly into the repo assets.
You also have the option of using Crypto++ for implementing actual, heavy weight cryptographic encryption of your clipboard data. Since this is an external library, it is not the default solution for the ClipNet
build.
NOTE: The Windows binary distribution available for this project uses
Crypto++
instead ofSimpleCrypt
. It employs CFB mode encryption (AES + SHA256) for encrypting clipboard text.
ClipNet
runs in the task tray. Initially, you will need to configure it, and will likely also need to allow it through your firewall (Windows will automatically prompt you to allow the process).
You can enable IPv4 multicast, IPv6 multicast, or both, depending upon your network configuration and communication needs.
Advanced users will know what they need--most everybody else will only need to use IPv4 multicasting, as IPv6 is not widely used in home networks (nor even in corporate offices, for that matter).
When you enable one of the protocols, you can use the default address values (not recommended), or you can enter multicast addresses manually (if you know what you're doing), or you can tell ClipNet
to randomize the multicast IP addresses for you.
In the latter two cases, you need to be sure that the resulting IP address is used by all other machines you expect to be members of your ClipNet
multicast group.
After establishing your multicast address(es), you can then press the "Join" button to launch ClipNet
into the specified multicast group, and clipboard activity will begin flowing between members. However, you may want to peform some further configuration before doing so.
Enabling this option will cause ClipNet
to rejoin the previous multicast group whenever it starts.
This is handy for use with the next option.
You can tell ClipNet
to start automatically when you log in.
Note that this option will only be avilable on Windows system--other operating systems have external mechanisms for achieving this.
Enabling automatic rejoin along with this option will result in a fire-and-forget run of ClipNet
, and it will always be available when you log into your machine.
The last section is concerned with securing your interactions on the network.
Encryption of network payloads is not enabled by default--I recommend you enable it. When you do, you should enter a passphrase that will be used to secure your clipboard data.
This passphrase needs to be identical on each member of the multicast group in order for the encrypted payload from one member to be successfully decrypted on all others.
Enabling this option tells ClipNet
to clear the text contents of the local machine clipboard after a given timeout period following its placement. This is handy if you routinely exchange very sensitive data that you don't want lingering in plain text on the system clipboard.
ClipNet
only processes text MIME types on the clipboard. No other clipboard data types are currently supported.Auto-launch
is a work in progress and does not currently function.- Passphrases are currently stored in clear text in the configuration file.
- Icons/images for the project were derived from glyphs.fyi.
ClipNet
was developed using Qt 5.14.1.
I hope you find ClipNet
useful.