digraph arch_x { edge[ fontname="DejaVu Sans", dir="both", arrowtail="dot", arrowsize=.5, fontname="DejaVu Sans", fontsize="18", ] node[ shape="Mrecord", color=none, fillcolor="#ffbc00", style="filled", fontname="DejaVu Sans", fontsize="18", ] { rank=same; c1 [label="X Client", URL="#c1"] c3 [label="X Client", URL="#c3"] } c2 [label="X Client", URL="#c2"] { rank=same; xserver [tooltip="X Server", label="|{|X Server|}|", URL="#xserver"] comp [tooltip="Compositor", label="|{|Compositor|}|", URL="#comp"] } impl [tooltip="KMS evdev Kernel", label="|{{KMS|evdev}|Kernel}|", URL="#impl"] c1 -> xserver [taillabel="③", labeldistance=2, URL="#step_3"]; c2 -> xserver; c3 -> xserver; xserver -> c1 [taillabel="②", labeldistance=2, URL="#step_2"]; xserver -> c2; xserver -> c3; xserver -> impl [taillabel="⑥", labeldistance=1.75, URL="#step_6"]; xserver -> impl [style=invis, label=" "]; impl -> xserver [taillabel="①", labeldistance=1.75, URL="#step_1"]; xserver -> comp [style=invis]; xserver -> comp [taillabel="④", labeldistance=1.75, labelangle=-45, URL="#step_4"]; comp -> xserver [taillabel="⑤", URL="#step_5"]; comp -> xserver [style=invis] c1 -> c2 [style=invis]; c3 -> c2 [style=invis]; }