OS InputEvent
OS InputEvent
Kanata KeyEvent
Kanata KeyEvent
event loop
event loop

OsCode used as key matrix
index to update state machine
OsCode used as key matrix...
press/release OsCode
press/release OsCode
ServerMessage
(e.g. LayerChange)
ServerMessage...
processing loop
processing loop

advance state machine and
read active keyberon KeyCodes
advance state machine and...

keyberon layout
state machine
keyberon layout...
OS mechanism
OS mechanism
OS mechanism
OS mechanism
ServerMessage
(e.g. LayerChange)
ServerMessage...
handle ClientMessage
(e.g. change layer)
handle ClientMessage...
TCP server
TCP server
ClientMessage
(e.g. ChangeLayer)
ClientMessage...
TCP connection
TCP connection
Text is not SVG - cannot display