An implementation of the GKOS keyboard standard
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


From the official GKOS website

GKOS - a new category of full-featured physical keyboards:

Not QWERTY, not exactly Wearable - but for Small Wireless Devices!

The basic idea of GKOS is that you've got six buttons on the back of a device (either a dedicated input device, or on the back of a handheld computing device, phone, etc), one for the index through ring fingers of each hand (or two for each finger if you have a device made for one-handed use). You press the keys in various chords to type, switch between modes, and operate a pointer (when in pointer mode).

This project is an implementation of GKOS for Linux (and soon to be for AVR microcontrollers), made mostly so I can try out GKOS for myself.

The Linux version (currently the only version), takes over a standard USB HID keyboard (most likely a USB number pad) via libhid, and uses 6 of its keys to function as a GKOS keyboard, sending keypresses via libsuinput. It will be configurable (right now it's "configurable" by changing a couple of lines in main-linux.c) at some point in the near future.

The AVR version will work together with V-USB and/or LUFA to implement an actual HID keyboard/mouse, and therefore won't need drivers for any OS.

The current implementation has the basic key scanner implemented (meaning you have to let go of all keys before a keypress is sent), with nearly all of the characters in the spec implemented (a few international ones aren't done because they aren't things that can be typed by just sending a keycode or SHIFT+keycode, I'll add in Compose support at some point, probably to make those work).