aarzaak / rpi-kvm

Raspberry Pi K(V)M: Switch keyboard and mouse input between bluetooth clients.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Raspberry Pi K(V)M (USB - Bluetooth)

Overview

Overview

  • Use one keyboard/mouse at multiple bluetooth devices (PC/Laptop/Mac/Mobile Phones)
  • Switch via hotkey between the connected bluetooth clients
  • Build-in web service
    • Overview of the connected bluetooth clients
    • Change the hotkey configuration
  • Show active bluetooth clients via a LCD display on your desk

Getting started

Step 1: Install

Connect to your raspberry pi via ssh:

cd /home/pi
git clone https://github.com/BLeeEZ/rpi-kvm.git
cd rpi-kvm
sudo ./rpi-kvm.sh install

Step 2: Start the RPI-K(V)M service

sudo ./rpi-kvm.sh start

Step 3: Optional steps

a) Display status and additional information

RPI-K(V)M is running in a tmux session. To see the service logger messages:

sudo ./rpi-kvm.sh attach

b) Open the web interface

To see detailed bluetooth client information go the RPI-K(V)M web interface: http://raspberrypi:8080

Note: If the host name has been changed during inital Raspberry Pi setup the webserver is reachable at its new RPI-KVM host name or its IP address

Web page

c) Connect a HD44780 LCD display

Follow this wiring guide to display the bluetooth clients on a LCD display.

Animated lcd display bluetooth client switch

Technologies / Attributions

Linux

  • Tmux
  • D-Bus
  • Bluetooth (BLueZ)
  • HD44780-LCD support (optional)

Python

  • asyncio
  • evdev
  • dbus_next
  • aiohttp

Web

  • Typescript: JavaScript with syntax for types.
  • React Js: A JavaScript library for building user interfaces
  • Bootstrap: Responsive mobile-first web sites
  • Bootstrap Icons: Beatiful web icons and used for doc/overview pictures

About

Raspberry Pi K(V)M: Switch keyboard and mouse input between bluetooth clients.

License:GNU General Public License v3.0


Languages

Language:Python 69.3%Language:TypeScript 24.7%Language:Shell 4.0%Language:HTML 1.6%Language:CSS 0.4%