genode/repos/gems/run/sculpt/leitzentrale.config
Norman Feske d3d6b643f1 wm: shape report interception mechanism
This patch simplifies the propagation of pointer shapes from
window-manager clients to the pointer. The "shape" report is routed to
the wm server, which, in turn, reports it to the pointer. This way, the
pointer can easily correlate the label of the application's "shape"
report with the label of the application's Nitpicker session. The
formerly used manual rewriting of the "shape" label is not needed
anymore.

Since the wm server provides a "Report" service now, its <provides>
declaration must cover "Report" in addition to "Nitpicker" to avoid
runtime error messages. Vice versa, the wm is now expected to request
"shape" reports, which should be routed to the pointer (using the
'label_last' routing attribute).

Fixes #3165
2019-02-26 14:45:07 +01:00

286 lines
11 KiB
Plaintext

<config>
<input name="leitzentrale_enabled" rom="leitzentrale" node="leitzentrale">
<attribute name="enabled" /> </input>
<output node="config">
<inline>
<parent-provides>
<service name="ROM"/>
<service name="PD"/>
<service name="RM"/>
<service name="CPU"/>
<service name="LOG"/>
<service name="Report"/>
<service name="Nitpicker"/>
<service name="Timer"/>
<service name="File_system"/>
</parent-provides>
<default-route> <any-service> <parent/> </any-service> </default-route>
<default caps="100"/>
<service name="Nitpicker">
<default-policy> <child name="wm"/> </default-policy> </service>
</inline>
<if>
<has_value input="leitzentrale_enabled" value="yes" />
<then>
<inline>
<start name="fader">
<binary name="nit_fader"/>
<resource name="RAM" quantum="50M"/>
<provides> <service name="Nitpicker"/> </provides>
<config alpha="210"/>
<route>
<service name="Nitpicker"> <child name="manager"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
</inline>
</then>
<else>
<inline>
<start name="fader">
<binary name="nit_fader"/>
<resource name="RAM" quantum="50M"/>
<provides> <service name="Nitpicker"/> </provides>
<config alpha="0"/>
<route>
<service name="Nitpicker"> <child name="manager"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
</inline>
</else>
</if>
<inline>
<start name="nit_fb">
<resource name="RAM" quantum="18M"/>
<provides> <service name="Framebuffer"/> <service name="Input"/> </provides>
<config/>
<route>
<service name="Nitpicker"> <child name="fader"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="nitpicker" caps="200">
<resource name="RAM" quantum="6M"/>
<provides> <service name="Nitpicker"/> </provides>
<config focus="rom">
<background color="#272f45"/>
<domain name="default" layer="1" content="client" label="no" hover="always" focus="click"/>
<default-policy domain="default"/>
</config>
<route>
<service name="Input"> <child name="nit_fb"/> </service>
<service name="Framebuffer"> <child name="nit_fb"/> </service>
<service name="ROM" label="focus"> <child name="report_rom"/> </service>
<service name="Report"> <child name="report_rom"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
<start name="report_rom">
<resource name="RAM" quantum="4M"/>
<provides>
<service name="Report"/>
<service name="ROM"/>
</provides>
<config verbose="no">
<policy label="decorator -> window_layout" report="manager -> window_layout"/>
<policy label="wm -> resize_request" report="manager -> window_layout"/>
<policy label="wm -> focus" report="manager -> wm_focus"/>
<policy label="decorator -> pointer" report="wm -> pointer"/>
<policy label="gui -> config" report="manager -> gui_config"/>
<policy label="gui -> menu -> dialog" report="manager -> menu_dialog"/>
<policy label="gui -> popup -> dialog" report="manager -> popup_dialog"/>
<policy label="manager -> menu_view_hover" report="gui -> menu -> hover"/>
<policy label="manager -> popup_view_hover" report="gui -> popup -> hover"/>
<policy label="manager -> window_list" report="wm -> window_list"/>
<policy label="manager -> decorator_margins" report="decorator -> decorator_margins"/>
<policy label="nitpicker -> focus" report="manager -> focus"/>
</config>
</start>
<start name="wm" caps="200">
<resource name="RAM" quantum="2M"/>
<provides> <service name="Nitpicker"/> <service name="Report"/> </provides>
<config>
<policy label_prefix="decorator" role="decorator"/>
<default-policy/>
</config>
<route>
<service name="ROM" label="resize_request"> <child name="report_rom"/> </service>
<service name="ROM" label="focus"> <child name="report_rom"/> </service>
<service name="Report"> <child name="report_rom"/> </service>
<service name="Nitpicker"> <child name="nitpicker"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
<start name="decorator" caps="300">
<binary name="themed_decorator"/>
<resource name="RAM" quantum="8M"/>
<config>
<libc/>
<vfs>
<dir name="theme">
<inline name="metadata">
<theme>
<aura top="5" bottom="5" left="5" right="5"/>
<decor top="6" bottom="6" left="6" right="6"/>
</theme>
</inline>
<rom name="default.png"/>
</dir>
<dir name="dev"> <log/> </dir>
</vfs>
<policy label="log" decoration="yes"/>
<policy label="runtime -> leitzentrale -> runtime_view" decoration="no" motion="20"/>
<policy label_prefix="gui" decoration="no"/>
<default-policy/>
</config>
<route>
<service name="ROM" label="default.png"> <parent label="drop_shadow.png"/> </service>
<service name="ROM" label="window_layout"> <child name="report_rom"/> </service>
<service name="ROM" label="pointer"> <child name="report_rom"/> </service>
<service name="Report" label="decorator_margins"> <child name="report_rom"/> </service>
<service name="Report" label="hover"> <child name="report_rom"/> </service>
<service name="Nitpicker"> <child name="wm"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="config_fs_report">
<binary name="fs_report"/>
<resource name="RAM" quantum="2M"/>
<provides> <service name="Report"/> </provides>
<config> <vfs> <fs/> </vfs> </config>
<route>
<service name="File_system"> <parent label="config"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="manager" caps="300">
<binary name="sculpt_manager"/>
<resource name="RAM" quantum="3M"/>
<provides> <service name="Nitpicker"/> </provides>
<config/>
<route>
<service name="Report" label="runtime_config">
<child name="config_fs_report" label="managed -> runtime"/> </service>
<service name="Report" label="deploy_config">
<child name="config_fs_report" label="managed -> deploy"/> </service>
<service name="Report" label="wifi_config">
<child name="config_fs_report" label="managed -> wifi"/> </service>
<service name="Report" label="fonts_config">
<child name="config_fs_report" label="managed -> fonts"/> </service>
<service name="Report" label="nic_router_config">
<child name="config_fs_report" label="managed -> nic_router"/> </service>
<service name="Report" label="fb_drv_config">
<child name="config_fs_report" label="managed -> fb_drv"/> </service>
<service name="Report" label="input_filter_config">
<child name="config_fs_report" label="managed -> input_filter"/> </service>
<service name="Report" label="installation_config">
<child name="config_fs_report" label="managed -> installation"/> </service>
<service name="Report" label="depot_query">
<child name="config_fs_report" label="managed -> depot_query"/> </service>
<service name="Report" label="runtime_view_dialog"> <parent/> </service>
<service name="Report"> <child name="report_rom"/> </service>
<service name="ROM" label="nitpicker_hover"> <parent/> </service>
<service name="ROM" label_prefix="report ->"> <parent/> </service>
<service name="ROM" label="menu_view_hover"> <child name="report_rom"/> </service>
<service name="ROM" label="popup_view_hover"> <child name="report_rom"/> </service>
<service name="ROM" label="runtime_view_hover"> <parent/> </service>
<service name="ROM" label="window_list"> <child name="report_rom"/> </service>
<service name="ROM" label="decorator_margins"> <child name="report_rom"/> </service>
<service name="Nitpicker"> <parent/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="fonts_fs" caps="100">
<binary name="vfs"/>
<resource name="RAM" quantum="4M"/>
<provides> <service name="File_system"/> </provides>
<route>
<service name="ROM" label="config">
<parent label="config -> managed/fonts"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="gui" caps="1400">
<binary name="init"/>
<resource name="RAM" quantum="20M"/>
<route>
<service name="ROM" label="config"> <child name="report_rom"/> </service>
<service name="ROM" label_last="dialog"> <child name="report_rom"/> </service>
<service name="Nitpicker"> <child name="wm"/> </service>
<service name="File_system" label="fonts"> <child name="fonts_fs"/> </service>
<service name="Report" label_last="hover"> <child name="report_rom"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="log_nit_fb">
<binary name="nit_fb"/>
<resource name="RAM" quantum="4M"/>
<provides> <service name="Framebuffer"/> <service name="Input"/> </provides>
<config origin="top_right" xpos="-412" ypos="2" initial_width="400" initial_height="400"/>
<route>
<service name="Nitpicker"> <child name="wm" label="log"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="log_terminal">
<binary name="terminal"/>
<resource name="RAM" quantum="4M"/>
<provides> <service name="Terminal"/> </provides>
<config>
<color index="0" bg="#2f3953"/>
<color index="8" bg="#2f3953"/>
<vfs>
<rom name="VeraMono.ttf"/>
<dir name="fonts">
<dir name="monospace">
<ttf name="regular" path="/VeraMono.ttf" size_px="10"/>
</dir>
</dir>
</vfs>
</config>
<route>
<any-service> <child name="log_nit_fb"/> <parent/> </any-service>
</route>
</start>
<start name="log_noux" caps="200">
<binary name="noux"/>
<resource name="RAM" quantum="8M" />
<config>
<fstab>
<tar name="coreutils-minimal.tar" />
<dir name="dev"> <zero/> <null/> </dir>
<dir name="report"> <fs label="report"/> </dir>
</fstab>
<start name="/bin/tail">
<env name="TERM" value="screen" />
<arg value="-f"/>
<arg value="/report/log"/>
</start>
</config>
<route>
<service name="File_system"> <parent label="report"/> </service>
<any-service> <child name="log_terminal"/> <parent/> </any-service>
</route>
</start>
</inline>
</output>
</config>