Index: uspace/lib/ui/private/resource.h
===================================================================
--- uspace/lib/ui/private/resource.h	(revision 45004f312900ee3fac48a6f8225519d5db5dfb9f)
+++ uspace/lib/ui/private/resource.h	(revision 1ebcb791cd2416a977f2be9b2a653635d83b5e57)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2020 Jiri Svoboda
+ * Copyright (c) 2021 Jiri Svoboda
  * All rights reserved.
  *
@@ -59,4 +59,7 @@
 	bool textmode;
 
+	/** UI background color */
+	gfx_color_t *ui_bg_color;
+
 	/** Button frame color */
 	gfx_color_t *btn_frame_color;
Index: uspace/lib/ui/private/ui.h
===================================================================
--- uspace/lib/ui/private/ui.h	(revision 45004f312900ee3fac48a6f8225519d5db5dfb9f)
+++ uspace/lib/ui/private/ui.h	(revision 1ebcb791cd2416a977f2be9b2a653635d83b5e57)
@@ -39,4 +39,5 @@
 
 #include <adt/list.h>
+#include <gfx/coord.h>
 #include <display.h>
 #include <io/console.h>
@@ -54,4 +55,6 @@
 	/** Display */
 	display_t *display;
+	/** UI rectangle (only used in fullscreen mode) */
+	gfx_rect_t rect;
 	/** Output owned by UI, clean up when destroying UI */
 	bool myoutput;
Index: uspace/lib/ui/src/resource.c
===================================================================
--- uspace/lib/ui/src/resource.c	(revision 45004f312900ee3fac48a6f8225519d5db5dfb9f)
+++ uspace/lib/ui/src/resource.c	(revision 1ebcb791cd2416a977f2be9b2a653635d83b5e57)
@@ -327,6 +327,5 @@
 		goto error;
 
-	rc = gfx_color_new_rgb_i16(0xffff, 0xffff, 0xffff,
-	    &btn_highlight_color);
+	rc = gfx_color_new_ega(0x20, &btn_highlight_color);
 	if (rc != EOK)
 		goto error;
Index: uspace/lib/ui/src/ui.c
===================================================================
--- uspace/lib/ui/src/ui.c	(revision 45004f312900ee3fac48a6f8225519d5db5dfb9f)
+++ uspace/lib/ui/src/ui.c	(revision 1ebcb791cd2416a977f2be9b2a653635d83b5e57)
@@ -39,4 +39,6 @@
 #include <errno.h>
 #include <fibril.h>
+#include <gfx/color.h>
+#include <gfx/render.h>
 #include <io/console.h>
 #include <stdbool.h>
@@ -109,4 +111,6 @@
 	ui_winsys_t ws;
 	const char *osvc;
+	sysarg_t cols;
+	sysarg_t rows;
 	ui_t *ui;
 
@@ -128,4 +132,10 @@
 			return EIO;
 
+		rc = console_get_size(console, &cols, &rows);
+		if (rc != EOK) {
+			console_done(console);
+			return rc;
+		}
+
 		console_cursor_visibility(console, false);
 
@@ -145,4 +155,10 @@
 
 		ui->cgc = cgc;
+		ui->rect.p0.x = 0;
+		ui->rect.p0.y = 0;
+		ui->rect.p1.x = cols;
+		ui->rect.p1.y = rows;
+
+		(void) ui_paint(ui);
 	} else {
 		return EINVAL;
@@ -284,5 +300,27 @@
 {
 	errno_t rc;
+	gfx_context_t *gc;
 	ui_window_t *awnd;
+	gfx_color_t *color = NULL;
+
+	gc = console_gc_get_ctx(ui->cgc);
+
+	rc = gfx_color_new_ega(0x11, &color);
+	if (rc != EOK)
+		return rc;
+
+	rc = gfx_set_color(gc, color);
+	if (rc != EOK) {
+		gfx_color_delete(color);
+		return rc;
+	}
+
+	rc = gfx_fill_rect(gc, &ui->rect);
+	if (rc != EOK) {
+		gfx_color_delete(color);
+		return rc;
+	}
+
+	gfx_color_delete(color);
 
 	/* XXX Should repaint all windows */
