1 This is a WindowManager implementation for the AGL Project.
6 ---------- ----- -- - -
7 Currently no configuration of where the ids.json and layouts.json
8 files are to be found is implemented, they will be searched in "..".
9 See "Building" and "Running" for more details.
14 ---------- ----- -- - -
15 The application source is located in src/ and is loosely structured c++.
17 The code base is c++14, and uses nlohmanns json implementation[1]. Also
18 the std::experimental::optional is used where sensible.
20 There is not a single source file for each class. The different
21 modules have the following resposibilities:
23 * wayland: implement the basic wayland proxy wrappers and listeners,
24 this includes the rather large ivi_controller and its
26 * app: the actual (or intended as) implementation of the application
27 * util: generic utilities
28 * main: AFB service entrypoint
29 * layout: layout related functionality (as of yet mostly unused/not functional)
30 * layers: layer related functionality (mostly just mapping surfaces
31 to layers, parsing configuration)
32 * result: a simple wrapper over optional, that allows to signal an error
34 * json_helper: some json helper functions, mainly used for transforming
36 * controller_hooks: hooks to be used be the genivi::ivi_controller
37 to call to the App class, without knowing of its
43 ---------- ----- -- - -
44 Prerequisites are the AGL app-framework-binder (which "infects" us with
45 json-c and libsystemd - i.e. these are needed too). Then proceed as follows:
55 ---------- ----- -- - -
56 Prerequisites: a compositor implementing the ivi_controller interface must
57 be running and XDG_RUNTIME_DIR must be set so the wayland socket can be found.
59 The configuration for the window manager (the layers.json file, as specified
60 int the next section) needs to be available. The environment variable
61 LAYERS_JSON=/path/to/layers.json needs to be set.
63 To run from the build directory use:
65 env LAYERS_JSON=/path/to/layers.json afb-daemon --ldpaths=/path/to/winman-binding/
70 ---------- ----- -- - -
71 layers.json: Layers and layout description. In order for the window manager to
72 work, this file needs to be available and passed to the window manager
73 using the environment variable LAYERS_JSON. An *example* layers.json is