Index: uspace/lib/ui/src/ui.c
===================================================================
--- uspace/lib/ui/src/ui.c	(revision b48e680f7fd780655df7bd1559d565a3abb1f45f)
+++ uspace/lib/ui/src/ui.c	(revision f05f413833a5111b7083577d666c37f4be97cdcc)
@@ -69,10 +69,4 @@
 	const char *cp;
 
-	if (ospec == UI_DISPLAY_DEFAULT) {
-		*ws = ui_ws_display;
-		*osvc = DISPLAY_DEFAULT;
-		return;
-	}
-
 	cp = ospec;
 	while (isalpha(*cp))
@@ -86,4 +80,6 @@
 		} else if (str_lcmp(ospec, "null@", str_length("null@")) == 0) {
 			*ws = ui_ws_null;
+		} else if (str_lcmp(ospec, "@", str_length("@")) == 0) {
+			*ws = ui_ws_any;
 		} else {
 			*ws = ui_ws_unknown;
@@ -123,23 +119,31 @@
 	ui_ospec_parse(ospec, &ws, &osvc);
 
-	if (ws == ui_ws_display) {
-		rc = display_open(osvc, &display);
+	if (ws == ui_ws_display || ws == ui_ws_any) {
+		rc = display_open(osvc != NULL ? osvc : DISPLAY_DEFAULT,
+		    &display);
 		if (rc != EOK)
-			return rc;
+			goto disp_fail;
 
 		rc = ui_create_disp(display, &ui);
 		if (rc != EOK) {
 			display_close(display);
-			return rc;
-		}
-	} else if (ws == ui_ws_console) {
+			goto disp_fail;
+		}
+
+		ui->myoutput = true;
+		*rui = ui;
+		return EOK;
+	}
+
+disp_fail:
+	if (ws == ui_ws_console || ws == ui_ws_any) {
 		console = console_init(stdin, stdout);
 		if (console == NULL)
-			return EIO;
+			goto cons_fail;
 
 		rc = console_get_size(console, &cols, &rows);
 		if (rc != EOK) {
 			console_done(console);
-			return rc;
+			goto cons_fail;
 		}
 
@@ -150,5 +154,5 @@
 		if (rc != EOK) {
 			console_done(console);
-			return rc;
+			goto cons_fail;
 		}
 
@@ -157,5 +161,5 @@
 			ui_destroy(ui);
 			console_done(console);
-			return rc;
+			goto cons_fail;
 		}
 
@@ -167,15 +171,21 @@
 
 		(void) ui_paint(ui);
-	} else if (ws == ui_ws_null) {
+		ui->myoutput = true;
+		*rui = ui;
+		return EOK;
+	}
+
+cons_fail:
+	if (ws == ui_ws_null) {
 		rc = ui_create_disp(NULL, &ui);
 		if (rc != EOK)
 			return rc;
-	} else {
-		return EINVAL;
-	}
-
-	ui->myoutput = true;
-	*rui = ui;
-	return EOK;
+
+		ui->myoutput = true;
+		*rui = ui;
+		return EOK;
+	}
+
+	return EINVAL;
 }
 
