Index: uspace/srv/hid/display/display.c
===================================================================
--- uspace/srv/hid/display/display.c	(revision 0008c0f308db358a5d1b9584126efc6a22a065f1)
+++ uspace/srv/hid/display/display.c	(revision 22faaf294cff1ff8a344bf9bb31edc17a6e83f3d)
@@ -65,4 +65,8 @@
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "disp_window_create() -> EOK, id=%zu",
 	    wnd->id);
+
+	wnd->dpos.x = ((wnd->id - 1) & 1) * 400;
+	wnd->dpos.y = ((wnd->id - 1) & 2) / 2 * 300;
+
 	*rwnd_id = wnd->id;
 	return EOK;
Index: uspace/srv/hid/display/output.c
===================================================================
--- uspace/srv/hid/display/output.c	(revision 0008c0f308db358a5d1b9584126efc6a22a065f1)
+++ uspace/srv/hid/display/output.c	(revision 22faaf294cff1ff8a344bf9bb31edc17a6e83f3d)
@@ -61,6 +61,6 @@
 	}
 
-	vw = 400;
-	vh = 300;
+	vw = 800;
+	vh = 600;
 
 	pixbuf = calloc(vw * vh, sizeof(pixel_t));
Index: uspace/srv/hid/display/types/display/window.h
===================================================================
--- uspace/srv/hid/display/types/display/window.h	(revision 0008c0f308db358a5d1b9584126efc6a22a065f1)
+++ uspace/srv/hid/display/types/display/window.h	(revision 22faaf294cff1ff8a344bf9bb31edc17a6e83f3d)
@@ -39,4 +39,5 @@
 #include <adt/list.h>
 #include <gfx/context.h>
+#include <gfx/coord.h>
 
 typedef sysarg_t ds_wnd_id_t;
@@ -48,4 +49,6 @@
 	/** Link to @c display->windows */
 	link_t lwindows;
+	/** Display position */
+	gfx_coord2_t dpos;
 	/** Window ID */
 	ds_wnd_id_t id;
Index: uspace/srv/hid/display/window.c
===================================================================
--- uspace/srv/hid/display/window.c	(revision 0008c0f308db358a5d1b9584126efc6a22a065f1)
+++ uspace/srv/hid/display/window.c	(revision 22faaf294cff1ff8a344bf9bb31edc17a6e83f3d)
@@ -90,7 +90,9 @@
 {
 	ds_window_t *wnd = (ds_window_t *) arg;
+	gfx_rect_t drect;
 
 	log_msg(LOG_DEFAULT, LVL_NOTE, "gc_fill_rect");
-	return gfx_fill_rect(wnd->display->gc, rect);
+	gfx_rect_translate(&wnd->dpos, rect, &drect);
+	return gfx_fill_rect(wnd->display->gc, &drect);
 }
 
@@ -152,6 +154,12 @@
 {
 	ds_window_bitmap_t *cbm = (ds_window_bitmap_t *)bm;
-
-	return gfx_bitmap_render(cbm->bitmap, srect0, offs0);
+	gfx_coord2_t doffs;
+
+	if (offs0 != NULL)
+		gfx_coord2_add(&cbm->wnd->dpos, offs0, &doffs);
+	else
+		doffs = cbm->wnd->dpos;
+
+	return gfx_bitmap_render(cbm->bitmap, srect0, &doffs);
 }
 
