Skip to main content

Kybonet - software KM switch with encryption!

Description

Share your keyboard and mouse connected to a computer over the network!

This tool allows to share your input devices with many computers in the same network (one at a time). You can switch from one computer to the next one with a configurable hotkey (by default F7).

How does it work?

The host computer (the one with the keyboard/mouse) runs the server, and every computer where you want to use that keyboard run the client.

To keep things easy, there is no point-to-point connection here, but a zmq publish/subscribe scheme. The server'll publish the keyboard events encrypted with the public key of the selected client, so only that client'll be able to decode them. When pressing the hotkey, the server'll start using the public key of the 2nd client to encrypt the events. Now only the 2nd client'll be able to decode them.

Setup the client

  • Step 0 - (optional) Create a venv.
python3 -m venv venv
. venv/bin/activate
  • Step 1 - Install the required packages.
pip install kybonet
  • Step 2 - Generate public/private keys pair (one in each client).
# generate
kybonet-keygen
# Copy public key to the server
scp <public-key.pub> <user>@<server>:<path>/
  • Step 3 - Run.
kybonet-client <server-ip> -p <port> -i <private-key>

Setup the server

  • Step 0 - (optional) Create a venv.
python3 -m venv venv
. venv/bin/activate
  • Step 1 - Install the required packages.
pip install kybonet
  • Step 2 - List the available devices and identify the ones you want to be shared:
kybonet-devices

Note: It's likely that you need to add your user to the input group in order to have access to the input devies. Check that with ls -las /dev/input and add it with usermod -aG <group> <user>. You'll have to login again so the change take effect.

  • Step 3 - Open the default config file or get a copy of it (~/.local/kybonet/config.yml). Add as many clients as you want, with at least a name and the path to their public key (the hotkey field is optional). In case you don't like the default values, you can also assign the hotkeys you want to switch between clients and to exit the program.

  • Step 4 - Run.

kybonet-server -p <PORT> -c <config-file>

Note: If the config-file is ommited, it'll be loaded from ~/.local/kybonet/config.yml. If you want a fresh start, remove it and when you run kybonet-server a new one'll be created.

Info

Please report any issues here.

Start typing, and have fun!

Metadata

Release files for kybonet 0.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kybonet 0.0.9
File Size Uploaded
kybonet-0.0.9.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kybonet 0.0.9
File Interpreter ABI Platform
kybonet-0.0.9-py3-none-any.whl Python 3 none any Details

Total release size: 22.9 kB

Release files / kybonet-0.0.9.tar.gz

Download URL kybonet-0.0.9.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1008cae9753075482681969575b25c86125340202ef86dc4711cc81905754941
BLAKE2b-256 checksum
How to use checksums
918b55ade88b4b91e4026f4d92245e21d42c450e489998a1dee2303889f3b931
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / kybonet-0.0.9-py3-none-any.whl

Download URL kybonet-0.0.9-py3-none-any.whl
Size 11.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5b76f3c58646235e9c57162a910bdadc2a46d1731bbff6794b5c7267a788ffff
BLAKE2b-256 checksum
How to use checksums
76c40173ca3b85bb1bb5d0b1bbfcf771effca0db86b93b069ea99e2416547ff4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release history Release notifications | RSS feed

This release

0.0.9 This release

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page