Installation
Prerequisites
Section titled “Prerequisites”- Python 3.9 or later
- The PolyKybd keyboard connected via USB
Installation
Section titled “Installation”- Install Python: Download and install Python 3.9+ from python.org. Check “Add Python to PATH” during installation.
- Clone the repo:
Terminal window git clone https://github.com/thpoll83/PolyKybdHost.gitcd PolyKybdHost - Install dependencies:
Terminal window pip install -e . - Run:
Or use the included batch file
Terminal window python -m polyhostautorun_polyhost.bat.
- Install Python (if not already installed):
Terminal window brew install python - Clone the repo:
Terminal window git clone https://github.com/thpoll83/PolyKybdHost.gitcd PolyKybdHost - Create a virtual environment and install:
Terminal window python3 -m venv .venvsource .venv/bin/activatepip install -e . - Run:
Terminal window python -m polyhost
- Install system dependencies:
Terminal window # Debian/Ubuntusudo apt install python3 python3-venv python3-pip# Fedorasudo dnf install python3 python3-pip - Clone the repo:
Terminal window git clone https://github.com/thpoll83/PolyKybdHost.gitcd PolyKybdHost - Install the udev rule. It lets the app open the keyboard without root: the
HID interface, and the serial port that is the fast link for firmware and
font-pack updates. It also stops ModemManager from probing that port.
Then unplug the keyboard and plug it in again. From host 1.17.31 the tray app offers the same step under Updates → Allow access to the keyboard (udev rule)… while the rule is missing or older than the shipped file; it asks for your password through PolicyKit.
Terminal window sudo install -m 0644 polyhost/device/99-hid.rules /etc/udev/rules.d/99-hid.rulessudo udevadm control --reload-rules && sudo udevadm trigger - Create a virtual environment and install:
Terminal window python3 -m venv .venvsource .venv/bin/activatepip install -e . - Run:
Terminal window python -m polyhost
Startup options
Section titled “Startup options”A plain python -m polyhost launch starts the tray GUI and brings up the background daemon that owns the keyboard (spawning it if one isn’t already running). The other flags select different startup modes:
python -m polyhost # GUI + daemon (default)python -m polyhost --no-daemon # legacy in-process startup (development)python -m polyhost --connect # run the GUI as a client of a running daemonpython -m polyhost --headless # run only the daemon, no GUIpython -m polyhost --dev # developer mode + debug loggingpython -m polyhost --dev 2 # developer mode + verbose debug loggingpython -m polyhost --host <IP> # forwarder mode (remote machine)python -m polyhost --portable # skip autostart registrationAutostart
Section titled “Autostart”PolyKybdHost can register itself to launch at login. Run it once normally — on first launch it will offer to add itself to your OS startup entries (a non-elevated scheduled task on Windows, a .desktop entry on Linux, a launchd plist on macOS). Use --portable to skip this and remove any existing entry.