Index: uspace/lib/ui/include/ui/wdecor.h
===================================================================
--- uspace/lib/ui/include/ui/wdecor.h	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
+++ uspace/lib/ui/include/ui/wdecor.h	(revision ec8a1bf729633d598cbbcad31d55f267ed2c6237)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2020 Jiri Svoboda
+ * Copyright (c) 2021 Jiri Svoboda
  * All rights reserved.
  *
@@ -51,4 +51,5 @@
 extern void ui_wdecor_set_rect(ui_wdecor_t *, gfx_rect_t *);
 extern void ui_wdecor_set_active(ui_wdecor_t *, bool);
+extern errno_t ui_wdecor_set_caption(ui_wdecor_t *, const char *);
 extern errno_t ui_wdecor_paint(ui_wdecor_t *);
 extern ui_evclaim_t ui_wdecor_pos_event(ui_wdecor_t *, pos_event_t *);
Index: uspace/lib/ui/include/ui/window.h
===================================================================
--- uspace/lib/ui/include/ui/window.h	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
+++ uspace/lib/ui/include/ui/window.h	(revision ec8a1bf729633d598cbbcad31d55f267ed2c6237)
@@ -51,4 +51,5 @@
     ui_window_t **);
 extern void ui_window_set_cb(ui_window_t *, ui_window_cb_t *, void *);
+extern errno_t ui_window_set_caption(ui_window_t *, const char *);
 extern void ui_window_destroy(ui_window_t *);
 extern void ui_window_add(ui_window_t *, ui_control_t *);
Index: uspace/lib/ui/private/window.h
===================================================================
--- uspace/lib/ui/private/window.h	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
+++ uspace/lib/ui/private/window.h	(revision ec8a1bf729633d598cbbcad31d55f267ed2c6237)
@@ -95,4 +95,6 @@
 	/** Current cursor */
 	ui_stock_cursor_t cursor;
+	/** Window placement */
+	ui_wnd_placement_t placement;
 };
 
Index: uspace/lib/ui/src/ui.c
===================================================================
--- uspace/lib/ui/src/ui.c	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
+++ uspace/lib/ui/src/ui.c	(revision ec8a1bf729633d598cbbcad31d55f267ed2c6237)
@@ -50,4 +50,5 @@
 #include <ui/wdecor.h>
 #include <ui/window.h>
+#include "../private/wdecor.h"
 #include "../private/window.h"
 #include "../private/ui.h"
@@ -372,4 +373,5 @@
 		return EOK;
 
+	(void) console_set_caption(ui->console, "");
 	return console_gc_suspend(ui->cgc);
 }
@@ -386,4 +388,5 @@
 {
 	errno_t rc;
+	ui_window_t *awnd;
 
 	if (ui->cgc == NULL)
@@ -393,4 +396,8 @@
 	if (rc != EOK)
 		return rc;
+
+	awnd = ui_window_get_active(ui);
+	if (awnd != NULL)
+		(void) console_set_caption(ui->console, awnd->wdecor->caption);
 
 	return gfx_cursor_set_visible(console_gc_get_ctx(ui->cgc), false);
Index: uspace/lib/ui/src/wdecor.c
===================================================================
--- uspace/lib/ui/src/wdecor.c	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
+++ uspace/lib/ui/src/wdecor.c	(revision ec8a1bf729633d598cbbcad31d55f267ed2c6237)
@@ -157,4 +157,26 @@
 {
 	wdecor->active = active;
+}
+
+/** Change caption.
+ *
+ * @param wdecor Window decoration
+ * @param caption New caption
+ *
+ * @return EOK on success or an error code
+ */
+errno_t ui_wdecor_set_caption(ui_wdecor_t *wdecor, const char *caption)
+{
+	char *cdup;
+
+	cdup = str_dup(caption);
+	if (cdup == NULL)
+		return ENOMEM;
+
+	free(wdecor->caption);
+	wdecor->caption = cdup;
+
+	ui_wdecor_paint(wdecor);
+	return EOK;
 }
 
Index: uspace/lib/ui/src/window.c
===================================================================
--- uspace/lib/ui/src/window.c	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
+++ uspace/lib/ui/src/window.c	(revision ec8a1bf729633d598cbbcad31d55f267ed2c6237)
@@ -262,4 +262,6 @@
 			gfx_coord2_add(&dparams.rect.p0, &scr_dims,
 			    &dparams.rect.p1);
+			(void) console_set_caption(ui->console,
+			    params->caption);
 		}
 	} else {
@@ -355,4 +357,5 @@
 	window->wdecor = wdecor;
 	window->cursor = ui_curs_arrow;
+	window->placement = params->placement;
 	*rwindow = window;
 
@@ -412,4 +415,9 @@
 		ui_paint(ui);
 	}
+
+	if (ui->console != NULL &&
+	    window->placement == ui_wnd_place_full_screen) {
+		(void) console_set_caption(ui->console, "");
+	}
 }
 
@@ -599,4 +607,16 @@
 	window->cb = cb;
 	window->arg = arg;
+}
+
+/** Change window caption.
+ *
+ * @param window Window
+ * @param caption New caption
+ *
+ * @return EOK on success or an error code
+ */
+errno_t ui_window_set_caption(ui_window_t *window, const char *caption)
+{
+	return ui_wdecor_set_caption(window->wdecor, caption);
 }
 
