let Genode = env:DHALL_GENODE let Prelude = Genode.Prelude let XML = Prelude.XML let Init = Genode.Init let Child = Init.Child let Resources = Init.Resources let ServiceRoute = Init.ServiceRoute let Policy = Init.Config.Policy let DefaultPolicy = Init.Config.DefaultPolicy let LabelSelector = Init.LabelSelector let label = λ(label : Text) → { local = label, route = label } : Child.Attributes.Label in Init::{ , children = toMap { nitpicker = Child.flat Child.Attributes::{ , binary = "nitpicker" , config = Init.Config::{ , attributes = toMap { focus = "rom" } , content = [ XML.text '' '' ] , policies = [ Policy::{ , label = LabelSelector.prefix "pointer" , attributes = toMap { domain = "pointer" } } , Policy::{ , label = LabelSelector.suffix "-> decorator" , attributes = toMap { domain = "decorator" } } , Policy::{ , label = LabelSelector.prefix "wm" , attributes = toMap { domain = "desktop" } } , Policy::{ , label = LabelSelector.label "backdrop" , attributes = toMap { domain = "backdrop" } } ] , defaultPolicy = Some DefaultPolicy::{ , attributes = toMap { domain = "default" } } } , provides = [ "Nitpicker" ] , resources = Resources::{ caps = 256, ram = Genode.units.MiB 64 } , routes = [ ServiceRoute.parent "Framebuffer" , ServiceRoute.parent "Input" ] } , pointer = Child.flat Child.Attributes::{ , binary = "pointer" , routes = [ ServiceRoute.child "Nitpicker" "nitpicker" ] } , wm = Child.flat Child.Attributes::{ , binary = "wm" , config = Init.Config::{ , policies = [ Policy::{ , attributes = toMap { role = "decorator" } , label = LabelSelector.prefix "decorator" } , Policy::{ , attributes = toMap { role = "layouter" } , label = LabelSelector.prefix "layouter" } ] , defaultPolicy = Some DefaultPolicy::{=} } , provides = [ "Nitpicker", "Report", "ROM" ] , reportRoms = [ label "focus", label "resize_request" ] , romReports = [ label "focus_request" , label "pointer" , label "shape" , label "window_list" ] , resources = Init.Resources::{ , caps = 256 , ram = Genode.units.MiB 8 } , routes = [ ServiceRoute.childLabel "Nitpicker" "nitpicker" (Some "") (Some "focus") , ServiceRoute.child "Nitpicker" "nitpicker" , ServiceRoute.parentLabel "Report" (Some "clipboard") (Some "clipboard") , ServiceRoute.parentLabel "Report" (Some "shape") (Some "shape") ] } , layouter = Child.flat Child.Attributes::{ , binary = "window_layouter" , config = Init.Config::{ , attributes = toMap { rules = "rom" } , content = [ XML.text '' '' ] } , provides = [ "Nitpicker", "Report", "ROM" ] , romReports = [ label "focus" , label "resize_request" , label "rules" , label "window_layout" ] , reportRoms = [ label "decorator_margins" , label "focus_request" , label "hover" , label "rules" , label "shape" , label "window_list" ] , resources = Init.Resources::{ , caps = 256 , ram = Genode.units.MiB 8 } , routes = [ ServiceRoute.child "Nitpicker" "wm" ] } , decorator = Child.flat Child.Attributes::{ , binary = "decorator" , config = Init.Config::{ , content = [ XML.element { name = "controls" , attributes = XML.emptyAttributes , content = [ XML.leaf { name = "maximizer" , attributes = XML.emptyAttributes } , XML.leaf { name = "title", attributes = XML.emptyAttributes } ] } ] , defaultPolicy = Some DefaultPolicy::{=} } , provides = [ "Nitpicker", "Report", "ROM" ] , reportRoms = [ label "window_layout", label "pointer" ] , romReports = [ label "decorator_margins", label "hover" ] , resources = Init.Resources::{ , caps = 128 , ram = Genode.units.MiB 12 } , routes = [ ServiceRoute.child "Nitpicker" "wm" ] } } , routes = [ ServiceRoute.parent "Timer" ] , services = [ ServiceRoute.child "Nitpicker" "wm" , ServiceRoute.child "Report" "wm" , ServiceRoute.child "ROM" "wm" ] }