Skip to content
forked from BLeeEZ/rpi-kvm

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

License

Notifications You must be signed in to change notification settings

NSHenry/rpi-kvm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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 initial Raspberry Pi set up, then the webserver is reachable at its new RPI-KVM host name or its IP address

Web page

c) Connect a HD44780 LCD

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

Animated lcd 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 websites
  • Bootstrap Icons: Beautiful web icons and used for doc/overview pictures

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 70.4%
  • TypeScript 23.4%
  • Shell 4.1%
  • HTML 1.4%
  • CSS 0.7%