[weston](http://cgit.freedesktop.org/wayland/weston/), the Wayland reference
compositor.
+Architecture
+------------
+
+libinput is not used directly by applications, rather it is used by the
+xf86-input-libinput X.Org driver or wayland compositors. The typical
+software stack for a system running Wayland is:
+
+@dotfile libinput-stack-wayland.gv
+
+Where the Wayland compositor may be Weston, mutter, KWin, etc. Note that
+Wayland encourages the use of toolkits, so the Wayland client (your
+application) does not usually talk directly to the compositor but rather
+employs a toolkit (e.g. GTK) to do so.
+
+The simplified software stack for a system running X.Org is:
+
+@dotfile libinput-stack-xorg.gv
+
+Again, on a modern system the application does not usually talk directly to
+the X server using Xlib but rather employs a toolkit to do so.
+
Source code
-----------
diagram_files = \
$(srcdir)/dot/seats-sketch.gv \
$(srcdir)/dot/seats-sketch-libinput.gv \
+ $(srcdir)/dot/libinput-stack-wayland.gv \
+ $(srcdir)/dot/libinput-stack-xorg.gv \
$(srcdir)/svg/software-buttons.svg \
$(srcdir)/svg/clickfinger.svg \
$(srcdir)/svg/button-scrolling.svg \
--- /dev/null
+digraph stack
+{
+ rankdir="LR";
+ node [
+ shape="box";
+ ]
+
+ kernel [label="Kernel"];
+
+ libinput;
+ compositor [label="Wayland Compositor"];
+ client [label="Wayland Client"];
+
+ kernel -> libinput
+ libinput -> compositor
+ compositor -> client
+}
--- /dev/null
+digraph stack
+{
+ rankdir="LR";
+ node [
+ shape="box";
+ ]
+
+ kernel [label="Kernel"];
+
+ libinput;
+ xf86libinput [label="xf86-input-libinput"];
+ xserver [label="X Server"];
+ client [label="X11 client"];
+
+ kernel -> libinput
+ libinput -> xf86libinput
+ xf86libinput -> xserver
+ xserver -> client
+}