What I'm thinking is that we should replace TerminalView with an equivalent class that uses a fork of the st terminal, which depends only on X11. We can use Xembed to embed the st window in the TerminalView, and wire in the existing methods to equivalent functionality in st.
st is MIT licensed, so we're free to include it in a GPL project without conflict, and the code is very small, and there are lots of interesting patches to add functionalty. (see https://st.suckless.org/patches/ )