Add keyboard input to terminal.
diff --git a/window.c b/window.c
index 4f4b704..4f94c50 100644
--- a/window.c
+++ b/window.c
@@ -55,6 +55,7 @@
 	window_resize_handler_t resize_handler;
 	window_frame_handler_t frame_handler;
 	window_acknowledge_handler_t acknowledge_handler;
+	window_key_handler_t key_handler;
 	void *user_data;
 };
 
@@ -293,6 +294,10 @@
 		} else if (button == 0 && state == 0) {
 			window->state = WINDOW_STABLE;
 		}
+	} else if (opcode == 2) {
+		if (window->key_handler)
+			(*window->key_handler)(window, p[0], p[1],
+					       window->user_data);
 	}
 }
 
@@ -343,6 +348,14 @@
 }
 
 void
+window_set_key_handler(struct window *window,
+		       window_key_handler_t handler, void *data)
+{
+	window->key_handler = handler;
+	window->user_data = data;
+}
+
+void
 window_set_minimum_size(struct window *window, uint32_t width, int32_t height)
 {
 	window->minimum_width = width;