9front and Android

There is drawterm for android[1] but here I'm gonna write down the steps to build and run plain 9front's drawterm on your aarch64 Android phone without ever touching a PC.

[1] drawterm for android

This is weird

Building

Install termux and run there:

pkg install unstable-repo && apt upgrade
pkg install x11-repo build-essential libx11 libxt xorgproto git binutils
git clone git://git.9front.org/plan9front/drawterm
cd drawterm
make CONF=unix -j4

At this point you have a functional `./drawterm` that you can run with `-G` to skip graphics.

Running in graphics mode

If you really want to run rio, install xserver-xsdl, run it and go to "Configuration". In "Downloads" check "additional fonts", go back. There are useful settings to configure your mouse emulation and remap physical keys, but that's up to you to figure out, I'm using a USB keyboard with a trackpoint instead. Check out video settings as well (DON'T enable 24-bit display).

After you're done configuring, leave the settings and once a black screen appears tap fast once, choose your desired resolution and zoom, press "OK" and a blue screen should appear. Notice the "display" number (usually it's just 0).

Now go back to termux and run:

export DISPLAY=:0
pkg install xorg-twm
twm &
drawterm <INSERT YOUR ARGUMENTS HERE>

Switch to xserver-xsdl, now position the window and start working with your drawterm.

Caveats

Chording is hard without a proper mouse. Maybe `drawterm -G` is all one needs.

~~`/mnt/term` is all wrong?~~ 2020-07-01 `sirjofri : sigrid: from termux/drawterm you can access phone files at /mnt/term/root/data/data/com.termux/ directly (no ls before this path)`

Bonus

If you want to access files on Android from 9front (although in read-only and non-encrypted mode for now) you can do this:

pkg install git socat
git clone https://git.sr.ht/~ft/9pro
cd 9pro
./build.sh
termux-setup-storage    ### click Allow
ifconfig | grep 'inet ' ### notice your phone's IP address
socat TCP4-LISTEN:5640 EXEC:"./9pex -e $HOME/storage"

In 9front run `9fs tcp!phoneIPaddress!5640 /n/phone && ls /n/phone`.