diff --git a/repos/gems/recipes/src/sculpt_manager/used_apis b/repos/gems/recipes/src/sculpt_manager/used_apis
index c7b53ffe6d..e213a51c5a 100644
--- a/repos/gems/recipes/src/sculpt_manager/used_apis
+++ b/repos/gems/recipes/src/sculpt_manager/used_apis
@@ -13,3 +13,5 @@ gui_session
terminal_session
rtc_session
input_session
+event_session
+capture_session
diff --git a/repos/gems/run/sculpt.run b/repos/gems/run/sculpt.run
index a9641255fb..04d66f8075 100644
--- a/repos/gems/run/sculpt.run
+++ b/repos/gems/run/sculpt.run
@@ -407,6 +407,8 @@ install_config {
+
+
@@ -490,6 +492,10 @@ install_config {
+
+
+
+
diff --git a/repos/gems/run/sculpt/leitzentrale.config b/repos/gems/run/sculpt/leitzentrale.config
index 8c39ccd3e2..99084b71cf 100644
--- a/repos/gems/run/sculpt/leitzentrale.config
+++ b/repos/gems/run/sculpt/leitzentrale.config
@@ -23,6 +23,12 @@
+
+
+
+
+
+
@@ -76,11 +82,15 @@
-
+
+
+
+
+
diff --git a/repos/gems/src/app/sculpt_manager/main.cc b/repos/gems/src/app/sculpt_manager/main.cc
index 3f0fd7ae51..6e5ad0547e 100644
--- a/repos/gems/src/app/sculpt_manager/main.cc
+++ b/repos/gems/src/app/sculpt_manager/main.cc
@@ -21,6 +21,8 @@
#include
#include
#include
+#include
+#include
/* included from depot_deploy tool */
#include
@@ -1668,6 +1670,8 @@ void Sculpt::Main::_generate_runtime_config(Xml_generator &xml) const
gen_parent_service(xml);
gen_parent_service(xml);
gen_parent_service(xml);
+ gen_parent_service(xml);
+ gen_parent_service(xml);
});
xml.node("affinity-space", [&] () {
diff --git a/repos/gems/src/app/sculpt_manager/model/route.h b/repos/gems/src/app/sculpt_manager/model/route.h
index 7ae5eae67c..233dec4e7a 100644
--- a/repos/gems/src/app/sculpt_manager/model/route.h
+++ b/repos/gems/src/app/sculpt_manager/model/route.h
@@ -31,6 +31,8 @@ struct Sculpt::Route : List_model::Element
case Service::Type::AUDIO_IN: return "audio_in";
case Service::Type::AUDIO_OUT: return "audio_out";
case Service::Type::BLOCK: return "block";
+ case Service::Type::EVENT: return "event";
+ case Service::Type::CAPTURE: return "capture";
case Service::Type::FILE_SYSTEM: return "file_system";
case Service::Type::NIC: return "nic";
case Service::Type::GUI: return "gui";
@@ -58,6 +60,8 @@ struct Sculpt::Route : List_model::Element
case Service::Type::AUDIO_IN: return "Audio input";
case Service::Type::AUDIO_OUT: return "Audio output";
case Service::Type::BLOCK: return "Block device";
+ case Service::Type::EVENT: return "Event";
+ case Service::Type::CAPTURE: return "Capture";
case Service::Type::FILE_SYSTEM: return "File system";
case Service::Type::NIC: return "Network";
case Service::Type::GUI: return "GUI";
diff --git a/repos/gems/src/app/sculpt_manager/model/runtime_config.h b/repos/gems/src/app/sculpt_manager/model/runtime_config.h
index e0d92b45a9..c67b4fdba3 100644
--- a/repos/gems/src/app/sculpt_manager/model/runtime_config.h
+++ b/repos/gems/src/app/sculpt_manager/model/runtime_config.h
@@ -74,7 +74,9 @@ class Sculpt::Runtime_config
|| (service == "IO_MEM")
|| (service == "Rtc")
|| (service == "IRQ")
- || (service == "TRACE");
+ || (service == "TRACE")
+ || (service == "Event")
+ || (service == "Capture");
if (hardware) {
result = "hardware";
return;
@@ -327,6 +329,10 @@ class Sculpt::Runtime_config
_backdrop { _r, Type::GUI, "desktop background", "backdrop" },
_lockscreen{ _r, Type::GUI, "desktop lock screen", "lock_screen" },
_nitpicker { _r, Type::GUI, "system GUI server" },
+ _lz_event { _r, Type::EVENT, "management GUI events", "leitzentrale" },
+ _event { _r, Type::EVENT, "system input events", "global" },
+ _lz_capture{ _r, Type::CAPTURE, "management GUI", "leitzentrale" },
+ _capture { _r, Type::CAPTURE, "system GUI", "global" },
_config_fs { _r, Type::FILE_SYSTEM, "writeable system configuration", "config" },
_report_fs { _r, Type::FILE_SYSTEM, "read-only system reports", "report" },
_capslock { _r, Type::ROM, "global capslock state", "capslock" },
diff --git a/repos/gems/src/app/sculpt_manager/model/service.h b/repos/gems/src/app/sculpt_manager/model/service.h
index 2cca0d5a4e..930c8982c5 100644
--- a/repos/gems/src/app/sculpt_manager/model/service.h
+++ b/repos/gems/src/app/sculpt_manager/model/service.h
@@ -25,9 +25,9 @@ struct Sculpt::Service
typedef String<32> Info;
enum class Type {
- AUDIO_IN, AUDIO_OUT, BLOCK, FILE_SYSTEM, NIC, GUI,
- RM, IO_MEM, IO_PORT, IRQ, REPORT, ROM, TERMINAL, TRACE,
- USB, RTC, PLATFORM, VM, PD, UNDEFINED };
+ AUDIO_IN, AUDIO_OUT, BLOCK, EVENT, CAPTURE, FILE_SYSTEM, NIC, GUI,
+ RM, IO_MEM, IO_PORT, IRQ, REPORT, ROM, TERMINAL, TRACE, USB, RTC,
+ PLATFORM, VM, PD, UNDEFINED };
enum class Match_label { EXACT, LAST };
@@ -46,6 +46,8 @@ struct Sculpt::Service
case Type::AUDIO_IN: return "Audio_in";
case Type::AUDIO_OUT: return "Audio_out";
case Type::BLOCK: return "Block";
+ case Type::EVENT: return "Event";
+ case Type::CAPTURE: return "Capture";
case Type::FILE_SYSTEM: return "File_system";
case Type::NIC: return "Nic";
case Type::GUI: return "Gui";