Mouse position: I wanted to use this for color comparisons, which hasn't happened yet

Action run time: This previously included setup and pixel hunting; it now also includes RGB and mouse parsing

After a fair amount of trial-and-error (X11 apparently gets cranky at some of the abrupt switches I was attempting), I finally settled on this approach using promises and subprocesses.

The runner creates a bunch of random points, then, for each script, moves the cursor to each point and captures data. It's untested right now (I'm sorry 🙃) but I did run it many, many times on my machine.

Raw Data

I did a quick run of 100 points (so 400 total data points) this afternoon. Rather than try to get a good table script up and running on my blog, I'm going to leave the data in GitHub. Check out the full CSV to see everything.

Munging Setup

I threw everything in RStudio because I don't know what else to look for or use (yet). Stick with what you know, right? I'm going to run mean and median as well as create violin plots. You can skim the whole thing at once or follow along below.

Conclusions

python-xlib is scary fast. That's so awesome.

pyautogui is slower than I thought. It does seem to maintain a fairly stable slow, pace, though, in comparison to the others.

Chaining commands via Python is actually, on average, faster than running things through bash. I don't know if that's because of the additional awk processing on the tail end of xwd-convert.sh or something else. It bears some investigation.