#include <output.h>
 #include <fb.h>
 
+#include "../aseg-paging/keyboard.h"
+
 #include "lwip/tcp.h"
 
 #include "rfb.h"
                case KEY_EVENT:
                        if (state->writepos < sizeof(struct key_event_pkt))
                                return NEEDMORE;
-                       outputf("RFB: Key");
 
-                       /* XXX stub */
+                       struct key_event_pkt * p = (struct key_event_pkt *)state->data;
+
+                       outputf("RFB: Key: %d (%c)", htonl(p->keysym), (htonl(p->keysym) & 0xFF));
+                       kbd_inject_keysym(htonl(p->keysym), p->downflag);
 
                        state->readpos += sizeof(struct key_event_pkt);
                        return OK;