diff --git a/runtimes/ui/motif_decorator/README b/runtimes/ui/motif_decorator/README
new file mode 100644
index 000000000..3e14d80de
--- /dev/null
+++ b/runtimes/ui/motif_decorator/README
@@ -0,0 +1,3 @@
+
+ Motif-inspired window decorator
+
diff --git a/runtimes/ui/motif_decorator/Tupfile b/runtimes/ui/motif_decorator/Tupfile
new file mode 100644
index 000000000..f5c124671
--- /dev/null
+++ b/runtimes/ui/motif_decorator/Tupfile
@@ -0,0 +1,6 @@
+TARGET_NAME = motif_decorator
+include_rules
+
+PKG_DEPENDS += @(PUBLIC_SRC_MOTIF_DECORATOR)
+
+: runtime |> !collect_pkg_runtime |>
diff --git a/runtimes/ui/motif_decorator/runtime b/runtimes/ui/motif_decorator/runtime
new file mode 100644
index 000000000..539f80831
--- /dev/null
+++ b/runtimes/ui/motif_decorator/runtime
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/runtimes/ui/window_layouter/README b/runtimes/ui/window_layouter/README
new file mode 100644
index 000000000..9aacf5e87
--- /dev/null
+++ b/runtimes/ui/window_layouter/README
@@ -0,0 +1,3 @@
+
+ Default window layouter
+
diff --git a/runtimes/ui/window_layouter/Tupfile b/runtimes/ui/window_layouter/Tupfile
new file mode 100644
index 000000000..eabc25b86
--- /dev/null
+++ b/runtimes/ui/window_layouter/Tupfile
@@ -0,0 +1,7 @@
+TARGET_NAME = window_layouter
+include_rules
+
+PKG_DEPENDS += \
+ @(PUBLIC_SRC_WINDOW_LAYOUTER) \
+
+: runtime |> !collect_pkg_runtime |>
diff --git a/runtimes/ui/window_layouter/archives b/runtimes/ui/window_layouter/archives
new file mode 100644
index 000000000..9cd19eac9
--- /dev/null
+++ b/runtimes/ui/window_layouter/archives
@@ -0,0 +1,6 @@
+_/raw/window_layouter
+_/src/window_layouter
+_/src/init
+_/src/fs_report
+_/src/fs_rom
+_/src/vfs
diff --git a/runtimes/ui/window_layouter/runtime b/runtimes/ui/window_layouter/runtime
new file mode 100644
index 000000000..b1d47a874
--- /dev/null
+++ b/runtimes/ui/window_layouter/runtime
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/runtimes/ui/wm/README b/runtimes/ui/wm/README
new file mode 100644
index 000000000..3477acf5f
--- /dev/null
+++ b/runtimes/ui/wm/README
@@ -0,0 +1,19 @@
+
+ Window manager
+
+This package provides the central part of Genode's componentized GUI stack
+via a custom implementation of the nitpicker session interface.
+It must be complemented by a window layouter and a window decorator, each of
+which is a separate client component. Whereas the window decorator defines how
+windows look, the window layouter defines how they behave.
+
+The window manager, decorator, and layouter propagate their respective state
+(like the window layout or the decoration margins) via reports and ROMs. The
+window-manager package manages the flow of information between those parties
+by providing a report and ROM service to the external layouter and decorator.
+
+The special roles of the layouter and decorator among the window-manager
+clients are identified according to their names (labels), which are suffixed
+with "layouter" and "decorator" respectively. All other clients are expected
+to be regular windowed applications.
+
diff --git a/runtimes/ui/wm/Tupfile b/runtimes/ui/wm/Tupfile
new file mode 100644
index 000000000..5c55bacd4
--- /dev/null
+++ b/runtimes/ui/wm/Tupfile
@@ -0,0 +1,9 @@
+TARGET_NAME = wm
+include_rules
+
+PKG_DEPENDS += \
+ @(PUBLIC_SRC_WM) \
+ @(PUBLIC_SRC_INIT) \
+ @(PUBLIC_SRC_REPORT_ROM) \
+
+: runtime |> !collect_pkg_runtime |>
diff --git a/runtimes/ui/wm/runtime b/runtimes/ui/wm/runtime
new file mode 100644
index 000000000..6a316a7c9
--- /dev/null
+++ b/runtimes/ui/wm/runtime
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+