Index: uspace/lib/clui/tinput.c
===================================================================
--- uspace/lib/clui/tinput.c	(revision 64d2b101abaf56a6f7c27f0d6b099785aa173f36)
+++ uspace/lib/clui/tinput.c	(revision 0eff68e2235e2f4737160b4f06cd3e6c1b217a5e)
@@ -54,8 +54,8 @@
 static void tinput_sel_all(tinput_t *);
 static void tinput_sel_delete(tinput_t *);
-static void tinput_key_ctrl(tinput_t *, console_event_t *);
-static void tinput_key_shift(tinput_t *, console_event_t *);
-static void tinput_key_ctrl_shift(tinput_t *, console_event_t *);
-static void tinput_key_unmod(tinput_t *, console_event_t *);
+static void tinput_key_ctrl(tinput_t *, kbd_event_t *);
+static void tinput_key_shift(tinput_t *, kbd_event_t *);
+static void tinput_key_ctrl_shift(tinput_t *, kbd_event_t *);
+static void tinput_key_unmod(tinput_t *, kbd_event_t *);
 static void tinput_pre_seek(tinput_t *, bool);
 static void tinput_post_seek(tinput_t *, bool);
@@ -88,7 +88,7 @@
 	tinput_sel_get_bounds(ti, &sa, &sb);
 	
-	console_set_pos(fphone(stdout), (ti->col0 + start) % ti->con_cols,
+	console_set_pos(ti->console, (ti->col0 + start) % ti->con_cols,
 	    ti->row0 + (ti->col0 + start) / ti->con_cols);
-	console_set_style(fphone(stdout), STYLE_NORMAL);
+	console_set_style(ti->console, STYLE_NORMAL);
 	
 	size_t p = start;
@@ -101,6 +101,7 @@
 	
 	if (p < sb) {
-		fflush(stdout);
-		console_set_style(fphone(stdout), STYLE_SELECTED);
+		console_flush(ti->console);
+		console_set_style(ti->console, STYLE_SELECTED);
+		
 		memcpy(dbuf, ti->buffer + p,
 		    (sb - p) * sizeof(wchar_t));
@@ -110,6 +111,6 @@
 	}
 	
-	fflush(stdout);
-	console_set_style(fphone(stdout), STYLE_NORMAL);
+	console_flush(ti->console);
+	console_set_style(ti->console, STYLE_NORMAL);
 	
 	if (p < ti->nc) {
@@ -123,5 +124,5 @@
 		putchar(' ');
 	
-	fflush(stdout);
+	console_flush(ti->console);
 }
 
@@ -133,5 +134,5 @@
 static void tinput_position_caret(tinput_t *ti)
 {
-	console_set_pos(fphone(stdout), (ti->col0 + ti->pos) % ti->con_cols,
+	console_set_pos(ti->console, (ti->col0 + ti->pos) % ti->con_cols,
 	    ti->row0 + (ti->col0 + ti->pos) / ti->con_cols);
 }
@@ -516,4 +517,5 @@
 static void tinput_init(tinput_t *ti)
 {
+	ti->console = console_init(stdin, stdout);
 	ti->hnum = 0;
 	ti->hpos = 0;
@@ -533,9 +535,9 @@
 int tinput_read(tinput_t *ti, char **dstr)
 {
-	fflush(stdout);
-	if (console_get_size(fphone(stdin), &ti->con_cols, &ti->con_rows) != EOK)
+	console_flush(ti->console);
+	if (console_get_size(ti->console, &ti->con_cols, &ti->con_rows) != EOK)
 		return EIO;
 	
-	if (console_get_pos(fphone(stdin), &ti->col0, &ti->row0) != EOK)
+	if (console_get_pos(ti->console, &ti->col0, &ti->row0) != EOK)
 		return EIO;
 	
@@ -548,8 +550,8 @@
 	
 	while (!ti->done) {
-		fflush(stdout);
-		
-		console_event_t ev;
-		if (!console_get_event(fphone(stdin), &ev))
+		console_flush(ti->console);
+		
+		kbd_event_t ev;
+		if (!console_get_kbd_event(ti->console, &ev))
 			return EIO;
 		
@@ -596,5 +598,5 @@
 }
 
-static void tinput_key_ctrl(tinput_t *ti, console_event_t *ev)
+static void tinput_key_ctrl(tinput_t *ti, kbd_event_t *ev)
 {
 	switch (ev->key) {
@@ -635,5 +637,5 @@
 }
 
-static void tinput_key_ctrl_shift(tinput_t *ti, console_event_t *ev)
+static void tinput_key_ctrl_shift(tinput_t *ti, kbd_event_t *ev)
 {
 	switch (ev->key) {
@@ -655,5 +657,5 @@
 }
 
-static void tinput_key_shift(tinput_t *ti, console_event_t *ev)
+static void tinput_key_shift(tinput_t *ti, kbd_event_t *ev)
 {
 	switch (ev->key) {
@@ -681,5 +683,5 @@
 }
 
-static void tinput_key_unmod(tinput_t *ti, console_event_t *ev)
+static void tinput_key_unmod(tinput_t *ti, kbd_event_t *ev)
 {
 	switch (ev->key) {
Index: uspace/lib/clui/tinput.h
===================================================================
--- uspace/lib/clui/tinput.h	(revision 64d2b101abaf56a6f7c27f0d6b099785aa173f36)
+++ uspace/lib/clui/tinput.h	(revision 0eff68e2235e2f4737160b4f06cd3e6c1b217a5e)
@@ -37,4 +37,9 @@
 #define LIBCLUI_TINPUT_H_
 
+#include <stdio.h>
+#include <async.h>
+#include <inttypes.h>
+#include <io/console.h>
+
 #define HISTORY_LEN     10
 #define INPUT_MAX_SIZE  1024
@@ -45,4 +50,7 @@
  */
 typedef struct {
+	/** Console */
+	console_ctrl_t *console;
+	
 	/** Buffer holding text currently being edited */
 	wchar_t buffer[INPUT_MAX_SIZE + 1];
