WIP split layouts, reading config, defining data layout.
[staging/windowmanager.git] / layers.json
1 {
2    "comment": "Surface ID to Layer ID mapping",
3
4    "main_surface": {
5       "surface_id": 1000,
6       "surface_role": "HomeScreen",
7       "comment": "This surface should never be made invisible (The HomeScreen)"
8    },
9
10    "mappings": [
11       {
12          "type": "single",
13          "surface_id": 1000,
14          "role": "^HomeScreen$",
15          "name": "HomeScreen",
16          "layer_id": 1000,
17          "area": { "type": "full" },
18          "comment": "Single layer map for the HomeScreen, XXX: type is redundant, could also check existence of id/first_id+last_id"
19       },
20       {
21          "type": "range",
22          "first_surface_id": 2000,
23          "last_surface_id": 2999,
24          "role": "^App.*",
25          "name": "apps",
26          "layer_id": 1001,
27          "area": { "type": "rect", "rect": { "x": 0, "y": 100, "width": -1, "height": -201 } },
28          "comment": "Range of IDs that will always be placed on layer 1001, negative rect values are interpreted as output_size.dimension - $value",
29
30          "split_layouts": [
31             {
32                "name": "Media Player",
33                "main_match": "^App MPlayer Main$",
34                "sub_match": "^App MPlayer Sub",
35                "priority": 500,
36                "comment": "All Media Player sub surfaces can be put in a sub layout with the Media Player"
37             },
38             {
39                "name": "Playlist",
40                "main_match": "",
41                "sub_match": "^App MPlayer Sub Playlist$",
42                "priority": 100,
43                "comment": "Always allow the media player playlist to be displayed as sub surface"
44             },
45             {
46                "name": "Map",
47                "main_match": "^App Navi Map",
48                "sub_match": "^App Navi Guidance",
49                "priority": 1000
50             }
51          ]
52       },
53       {
54          "type": "range",
55          "first_surface_id": 3000,
56          "last_surface_id": 3999,
57          "role": "^OnScreen.*",
58          "name": "popups",
59          "layer_id": 9999,
60          "area": { "type": "rect", "rect": { "x": 0, "y": 100, "width": -1, "height": -201 } },
61          "comment": "Range of IDs that will always be placed on the popup layer, that gets a very high 'dummy' id of 9999"
62       }
63    ],
64
65    "tests": [
66       { "surface_id": 1000, "expect_layer_id": 1000 },
67       { "surface_id": 1001, "expect_layer_id": -1, "comment": "check against -1 for not found entries" },
68       { "surface_id": 1999, "expect_layer_id": -1 },
69       { "surface_id": 2000, "expect_layer_id": 1001 },
70       { "surface_id": 2500, "expect_layer_id": 1001 },
71       { "surface_id": 2999, "expect_layer_id": 1001 },
72       { "surface_id": 3000, "expect_layer_id": 9999 },
73       { "surface_id": 3500, "expect_layer_id": 9999 },
74       { "surface_id": 3999, "expect_layer_id": 9999 },
75       { "surface_id": 4711, "expect_layer_id": -1 }
76    ]
77 }