Index: uspace/lib/ui/src/entry.c
===================================================================
--- uspace/lib/ui/src/entry.c	(revision 77ffa018e96bf200a6d7a188492a0574ecda4c99)
+++ uspace/lib/ui/src/entry.c	(revision 9c7dc8e93da9abc90efb24bba56e275432050f20)
@@ -46,4 +46,5 @@
 #include <ui/paint.h>
 #include <ui/entry.h>
+#include <ui/ui.h>
 #include "../private/entry.h"
 #include "../private/resource.h"
@@ -55,5 +56,7 @@
 enum {
 	ui_entry_hpad = 4,
-	ui_entry_vpad = 4
+	ui_entry_vpad = 4,
+	ui_entry_hpad_text = 1,
+	ui_entry_vpad_text = 0
 };
 
@@ -173,6 +176,16 @@
 	gfx_text_fmt_t fmt;
 	gfx_coord2_t pos;
+	gfx_coord_t hpad;
+	gfx_coord_t vpad;
 	gfx_rect_t inside;
 	errno_t rc;
+
+	if (entry->res->textmode) {
+		hpad = ui_entry_hpad_text;
+		vpad = ui_entry_vpad_text;
+	} else {
+		hpad = ui_entry_hpad;
+		vpad = ui_entry_vpad;
+	}
 
 	/* Paint inset frame */
@@ -195,5 +208,5 @@
 	case gfx_halign_left:
 	case gfx_halign_justify:
-		pos.x = inside.p0.x + ui_entry_hpad;
+		pos.x = inside.p0.x + hpad;
 		break;
 	case gfx_halign_center:
@@ -201,9 +214,9 @@
 		break;
 	case gfx_halign_right:
-		pos.x = inside.p1.x - ui_entry_hpad;
+		pos.x = inside.p1.x - hpad;
 		break;
 	}
 
-	pos.y = inside.p0.y + ui_entry_vpad;
+	pos.y = inside.p0.y + vpad;
 
 	gfx_text_fmt_init(&fmt);
Index: uspace/lib/ui/src/resource.c
===================================================================
--- uspace/lib/ui/src/resource.c	(revision 77ffa018e96bf200a6d7a188492a0574ecda4c99)
+++ uspace/lib/ui/src/resource.c	(revision 9c7dc8e93da9abc90efb24bba56e275432050f20)
@@ -50,8 +50,10 @@
  *
  * @param gc Graphic context
+ * @param textmode @c true if running in text mode
  * @param rresource Place to store pointer to new UI resource
  * @return EOK on success, ENOMEM if out of memory
  */
-errno_t ui_resource_create(gfx_context_t *gc, ui_resource_t **rresource)
+errno_t ui_resource_create(gfx_context_t *gc, bool textmode,
+    ui_resource_t **rresource)
 {
 	ui_resource_t *resource;
@@ -83,17 +85,28 @@
 		return ENOMEM;
 
-	rc = gfx_typeface_open(gc, ui_typeface_path, &tface);
-	if (rc != EOK)
-		goto error;
-
-	finfo = gfx_typeface_first_font(tface);
-	if (finfo == NULL) {
-		rc = EIO;
-		goto error;
+	if (textmode) {
+		/* Create dummy font for text mode */
+		rc = gfx_typeface_create(gc, &tface);
+		if (rc != EOK)
+			goto error;
+
+		rc = gfx_font_create_textmode(tface, &font);
+		if (rc != EOK)
+			goto error;
+	} else {
+		rc = gfx_typeface_open(gc, ui_typeface_path, &tface);
+		if (rc != EOK)
+			goto error;
+
+		finfo = gfx_typeface_first_font(tface);
+		if (finfo == NULL) {
+			rc = EIO;
+			goto error;
+		}
+
+		rc = gfx_font_open(finfo, &font);
+		if (rc != EOK)
+			goto error;
 	}
-
-	rc = gfx_font_open(finfo, &font);
-	if (rc != EOK)
-		goto error;
 
 	rc = gfx_color_new_rgb_i16(0, 0, 0, &btn_frame_color);
@@ -177,4 +190,5 @@
 	resource->tface = tface;
 	resource->font = font;
+	resource->textmode = textmode;
 
 	resource->btn_frame_color = btn_frame_color;
Index: uspace/lib/ui/src/ui.c
===================================================================
--- uspace/lib/ui/src/ui.c	(revision 77ffa018e96bf200a6d7a188492a0574ecda4c99)
+++ uspace/lib/ui/src/ui.c	(revision 9c7dc8e93da9abc90efb24bba56e275432050f20)
@@ -254,4 +254,18 @@
 }
 
+/** Determine if we are running in text mode.
+ *
+ * @param ui User interface
+ * @return @c true iff we are running in text mode
+ */
+bool ui_is_textmode(ui_t *ui)
+{
+	/*
+	 * XXX Currently console is always text and display is always
+	 * graphics, but this need not always be true.
+	 */
+	return (ui->console != NULL);
+}
+
 /** @}
  */
Index: uspace/lib/ui/src/window.c
===================================================================
--- uspace/lib/ui/src/window.c	(revision 77ffa018e96bf200a6d7a188492a0574ecda4c99)
+++ uspace/lib/ui/src/window.c	(revision 9c7dc8e93da9abc90efb24bba56e275432050f20)
@@ -47,4 +47,5 @@
 #include <ui/control.h>
 #include <ui/resource.h>
+#include <ui/ui.h>
 #include <ui/wdecor.h>
 #include <ui/window.h>
@@ -255,5 +256,5 @@
 	window->gc = gc;
 #endif
-	rc = ui_resource_create(window->gc, &res);
+	rc = ui_resource_create(window->gc, ui_is_textmode(ui), &res);
 	if (rc != EOK)
 		goto error;
