for an 'easy' low dependency setup i found it pleasant you can map vulkan render target to the directfb in linux. then suck events for IO right from the kernel.
that way you can avoid even X :') (not always handy but fun).
nice writeup, really love all the traces are included and stepped through, real thorough and nice example of how to investigate things rather than just the results. thanks.