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="X server process"; subgraph cluster_1 { label="xf86-input-libinput" libinput; } } libinput; client [label="X11 client"]; event0 -> libinput; event1 -> libinput; libinput -> client [ltail=cluster_0 label="X protocol"]; }