An Android VNC client built for playing games

Every VNC viewer out there is built for administering machines. Play a game through one and you spend the whole time fighting the client. This one is the other shape.

Ask for a test invite Source on GitHub Layout profile format Make a variant

Want to try it on your phone?

RemotePad is on Google Play, on the internal testing track. The track is live, but it is invitation only: Play matches the tester list against the account that opens the link, so a link does nothing at all for someone who is not on that list. That is why there is no link here.

Want in? Send the Google account address you would install it with to zirize@gmail.com — by email, not in an issue, so your address does not end up on a public page. I add you to the tester list and send the link back to you; it starts working once you are on the list, not before.

Would rather not hand over an address? Build it yourself — same app.

What a games-first viewer changes

What it does

Two names, one codebase. The project is vncviewer-for-games. The build published on Google Play is called RemotePad (tech.doldam.remotepad). Same source; only the application id differs, so a fork can never overwrite the published app.

Build

JDK 17 and an Android SDK with NDK.

git clone --recursive https://github.com/zirize/vncviewer-for-games.git
cd vncviewer-for-games
bash scripts/doctor.sh          # checks the toolchain; changes nothing
bash scripts/build.sh           # release APK
bash scripts/build.sh install   # ...and push it to a connected device

--recursive matters: libjpeg-turbo is a submodule. If you already cloned without it, git submodule update --init --recursive. If doctor.sh cannot find your JDK or SDK, add your path to scripts/_hostenv.sh — that file is the single place host-specific paths are allowed to live.

Use release builds for everyday use. Debug builds are visibly slower because debuggable makes ART give up optimisations — measured at 20.8 fps against 33.2 fps on a full-motion test. Release builds are signed with a debug key unless a keystore.properties exists.

Make it fit your hands

cp profiles/default.json profiles/mine.json
$EDITOR profiles/mine.json
bash scripts/build.sh preview                        # validate + draw an SVG of the result
bash scripts/build.sh release -PvncProfile=mine.json # build with it

The format is documented in docs/layout-profile.md, and docs/make-a-variant.md is a step-by-step recipe including what to do when each step fails. You do not need the device to check your work — validation and the SVG preview both run on a plain JVM.

This repository expects to be read by agents

Most of the time the person who wants a different layout will not edit the JSON themselves; they will ask a coding agent to do it. So the repository is built to let an agent prove it got it right without hardware:

The single most important rule: a layout must keep a way into settings. Remove that button and the person holding the phone can no longer change anything — the validator rejects it.

Licence

GPL-2.0-or-later. Not a preference: the viewer is built on the TigerVNC Java client, which is GPL-2.0-or-later, so the combined work is too. Third-party components and their notices are in NOTICE.