I've been very happy to see kiosk-shell get introduced in the past year or so. 
It seems to tick nearly every box that I frequently find myself wanting when 
trying to do embedded deployment of pre-existing Wayland apps which expect to 
use the customary desktop-centric shells:


  *   declarative control over which output gets which surface
  *   force the apps full-screen by default
  *   no new protocols needed

So this is really nice. Much lower barrier to entry than IVI Shell, and 
certainly a better re-use story for off-the-rack applications.

But there's a niche that doesn't have any obvious answer yet: controlling the 
stacking order of different toplevel apps. It's fairly common to construct an 
embedded system using distributed rendering from separate programs. This means 
you need a way to control which things go above or below each other to achieve 
the overall effect.

Would there be any interest in a contribution to enhance kiosk-shell to support 
configurable stacking orders? This might take the form of either relative 
specifications ("desktop surface XYZ always goes above desktop surface UWV") or 
absolute z-order specifications ("desktop surface XYZ's surfaces go into 
weston_layer #17").

I haven't thought deeply yet about how the syntax for setting the 
stacking-order configuration in weston.ini would look. Maybe some kind of 
subscript annotation following the surface ID?

    [output]
    name=LVDS1
    # app1 goes in weston_layer 0. app2 goes in weston_layer 1
    app-ids=org.domain.app1[0],com.domain.app2[1]

Or maybe allow more than one "app-ids" line, keyed by a subscript?

    [output]
    name=LVDS1
    app-ids[layer0]=org.domain.app1,...
    app-ids[layer1]=org.domain.app3,...

-Matt

Reply via email to