I do believe you can actually get a desktop going by installing https://play.google.com/store/apps/details?id=x.org.server and setting the display environment variable in termux.
It runs X, using the XServer XDSL app previously mentioned in this thread. I found some things rather quirky, but certainly fun to play with. My older Nexus 5 could do HDMI out with a dongle, add in BT keyboard and mouse, and it's mostly usable.
Doesn't run on Android 8.0 yet, and no HDMI out on my newer Pixel, so it's Termux + keyboard for on-the-go hacking.
Linux Deploy (also on Google Play) for those who have rooted their devices looks to be another choice.