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]; }