digraph stack { compound=true; rankdir="LR"; node [ shape="box"; ] subgraph cluster_2 { label="Kernel"; event0 [label="/dev/input/event0"] event1 [label="/dev/input/event1"] } subgraph cluster_0 { label="Compositor process"; libinput; } client [label="Wayland client"]; event0 -> libinput; event1 -> libinput; libinput -> client [ltail=cluster_0 label="Wayland protocol"]; }