Hemiola aims to turn any n-key rollover keyboard into a chordable keyboard. Instead of typing one letter at a time one would press multiple letters at the same time and the letters would show as if one had typed the letters in order. The only physical requirements are a usb keyboard and a Rapberry Pi Zero. There are no dependency requirements on the OS side of things.
- C++17 compiler, GCC >= v8, Clang >= v7, MSVC >= 2017
- CMake >= v3.12
- ICU4C
We also provide a Dockerfile
and devcontainer
for convenience.
We first need to download the dependencies. Some may already be preinstalled.
For Ubuntu and Debian:
sudo apt install gcc git cmake libicu-dev
To get the source code clone the repository
git clone --recurse-submodules https://github.com/erichlf/Hemiola.git
To build Hemiola
cd Hemiola
mkdir build
cmake -B ./build .
cmake --build ./build
cmake --install ./build
- Raspberry Pi Zero Running Raspberry Pi OS
- Micro USB Cable
ssh pi@<ip-address-of-rpi>
sudo apt install git
git clone https://github.com/erichlf/hemiola
cd hemiola/hid
chmod +x install.sh
chmod +x enableModules.sh
sudo ./install.sh
sudo shutdown
Now plug your raspberry pi into your computer. To test that things are working:
- on the machine connected to the rpi open a text editor and let it sit open
- on a separate machine from the one that is connected to your rpi
ssh pi@<ip-address-of-rpi>
cd hemiola/hid
sudo python3 testHID.py
- on the machine connected to the rpi you should see
Hemiola works in the editor that you left open.
To run hemiola one simply can execute the following command on your rpi:
sudo ./hemiola/build/hemiola
Currently logging is output to /var/log/hemiola/hemiola.log