How is encoding specified by client?
Is the encoding auto-negotiated by the client to the "best" supported by the server? How can the encoding (like Hextile/ZRLE) be explicitly specified?
Currently, only RAW encoding is supported. https://github.com/sibson/vncdotool/pull/166, puts a foundation for ZRLE in place, but as it stands also hard-codes the encoding. Ideally, a negotiation would happen with possible override from a command line switch.
vncdotool/client.py:393: encodings = [self.encoding]
You can try overwrite vncdotool.VNCDoToolClient.encoding = vncdotool.rfb.Encoding.ZRLE in your code; then the code will send that different encoding during the connection setup, but I have not tried it myself.