--- /dev/null
+#!/bin/bash
+
+source /a/bin/errhandle/err
+
+if [[ -s ~/.bashrc ]]; then . ~/.bashrc; fi
+
+rebuild=false
+case $1 in
+ -r) rebuild=true ;;
+esac
+
+# https://sw.kovidgoyal.net/kitty/build/
+deps=(
+ libdbus-1-dev
+ libxcursor-dev
+ libxrandr-dev
+ libxi-dev
+ libxinerama-dev
+ libgl1-mesa-dev
+ libxkbcommon-x11-dev
+ libfontconfig-dev
+ libx11-xcb-dev
+ liblcms2-dev
+ libpython3-dev
+ librsync-dev
+)
+
+pi ${deps[@]}
+
+cd /a/opt/kitty
+rev=$(cat $last_build 2>/dev/null) ||:
+head=$(git rev-parse HEAD)
+if ! $recompile && ! $bootstrap && [[ $rev == "$head" ]]; then
+ :
+fi
+
+
+# built it on one machine, the others it dies with the error illegal
+# instruction. building is pretty quick, so just detect if our version
+# works, and if not, rebuild and install.
+# I had an idea to test the failure like so:
+# timeout 5 kitty /bin/true, but that doesn't work over ssh
+if ! $rebuild && ! /bin/true; then
+ rebuild=true
+fi
+
+if $rebuild; then
+ s mkdir -p /usr/local/src/kitty
+ s mount -o bind /a/opt/kitty /usr/local/src/kitty
+
+ s install -o zu -g zu -d /usr/local/src/kitty
+ s chown -hR zu.zu /usr/local/src/kitty
+ cd /usr/local/src/kitty
+ m sudo -u zu firejail --read-write=/usr/local/src/kitty --profile=makekitty make clean
+ m sudo -u zu firejail --read-write=/usr/local/src/kitty --profile=makekitty make
+ cd /
+ s umount /usr/local/src/kitty
+ s chown -hR iank.iank /a/opt/kitty
+fi
+
+cd /a/opt/kitty
+s rsync -ar --chown root:root --delete __main__.py kitty logo kittens /usr/local/src/kitty
+s rsync -ar --chown root:root ./terminfo/x/xterm-kitty /usr/share/terminfo/x/xterm-kitty
+s ln -sf -T /usr/local/src/kitty/kitty/launcher/kitty /usr/local/bin/kitty