zvnc - fast VNC client for remote control
v <=1.5: Copyright 2001-2003 by David Gerber <firstname.lastname@example.org> - All Rights Reserved
v >1.5.1: No copyright. "You just do wtf you want"
Released under the DO WTF YOU WANT TO PUBLIC LICENSE.
See file COPYING for details.
This software comes with no guarantee, use it at your own risks, no batteries
zvnc is a fast and efficient VNC client designed to give smooth control of a
remote machine. Unlike other clients, zvnc has no display handling thus is
aimed at controlling machines with their own display. For example, 2 machines
sharing a monitor with dual input capability or a switchbox. No need to switch
keyboards and mice anymore.
- fast and optimized event handling (typically 50hz mouse refresh on most
- no continuous mouse polling, completely event driven
- no input.device bogdown at priority 20 like some broken GUI systems. Keeps
the host system always responsive
- 2 modes of operation: command line or commodity
- hotkeys support
- Support for laptop trackpad under MorphOS >=3.1
any version of MorphOS should do
Copy it somewhere (SYS:WBStartup is a good place if you want automatic launch).
zvnc runs from the Workbench and reads its settings from the tooltypes. It can
also be launched from the shell. If you run it twice, it'll exit.
The tooltypes/arguments are:
CX_PRIORITY: priority of the events (default: 0)
HOST: host to connect to (mandatory)
PORT: port to connect to (default: 5900)
PASSWORD: password for the vnc session (optional)
HOTKEY_CONNECT: if specified, zvnc will wait until this hotkey is pressed
before connecting, otherwise it connects immediately. If this hotkey is
pressed during a vnc session, zvnc will disconnect.
HOTKEY_DISCONNECT: hotkey to disconnect (optional).
NODEADKEY: disables the handling of dead keys (eg. ôêù, etc...).
The Help key immediately disconnects in all cases and quits the client.
- Q: Why another VNC client ?
- A: Because I don't need display support but a smooth and fast way of
controlling machines which already have their own displaying capabilities.
zvnc is the first VNC client doing that.
- Q: Why is there no display support ?
- A: Read that documentation again.
- Q: When I run zvnc my Amiga seems locked !
- A: But it's not. Only the inputevents are swallowed. Press the 'Help' key to
exit (or the hotkey to disconnect if you configured them).
- Q: Sometimes Windows seems to handle the input in a slower way when using
zvnc than when using the Windows mouse directly.
- A: Well, you just discovered some hack in Windows to make the input always
feel fast. PS/2 (and probably USB as well) mouse input is done on interrupts
and Windows processes mouse events there. When there's some heavy gfx
activity, interrupts get priority. The VNC server runs as a normal task and
therefore doesn't take advantage of this "hack".
- Q: The mouse is too slow/fast.
- A: zvnc sends mouse coordinate changes. If your Amiga has a 800x600 display
and your PC has a 1600x1200, the mouse will be 2x slower. Maybe it'll be
possible to adjust that in a future version.
- Q: The mouse is still too slow/fast, even though both monitor's resolutions
are the same.
- A: You have a mouse accelerator commodity somewhere. For example, MCP uses a
priority of 10 for its commodity broker so if you want to bypass it, set
CX_PRIORITY=11 and the mouse won't be accelerated.
- Q: Deadkeys don't work.
- A: This seems to be a difficult issue. There's no specifications for
deadkeys within the VNC protocol which just says "send them as-is" and
this obviously doesn't work. I added some hackery to make it work. You can
specify the NODEADKEY option to disable it. If it still doesn't work, please
report to me what keyboard/keymap you use and what VNC server you connect to.
- Q: I can click on DOpus' toolbars even when zvnc is supposed to eat the
- A: DOpus runs its commodity broker at priority 100 for some weird reasons.
Use the CX_PRIORITY=101 argument to circumvent this.
- Q: I see there's a PPC version. Could you add WarpOS support ? WarpOS is
official, 3000x faster than MorphOS, not programmed by Ralph Schmidt and
prevents loss of hair.
- A: Go away.
- Q: zvnc ate my hamster !
- A: Although zvnc has been thoroughly tested with different kind of hamsters,
I cannot guarantee that there's no bug left in that area. It is highly advised
that you don't let your hamster alone with zvnc especially if the room is
- Q: Hey! Why did you remove the 68k version?
- A: Because it's time to move on.
- Q: Why isn't David Gerber listed as the author anymore?
- A: He didn't modify or compile this version and probably isn't interested in
receiving bug-reports on software he no longer maintains.
Suggestions, comments and bug reports:
Ask God or something. Or download the source and modify it yourself.
- Provide a mode which reads input.device directly, bypassing the commodities
network and allowing mouse scaling.
- Use non blocking sockets.
- Add a GUI (MUI of course).
- Mark Olsen for giving me the idea to write it and the des encryption
- Matt Sealey for reporting stuff
- Neil Williams for suggestions and reports
- And everyone taking interest in it (not many people it seems)
- first public release
- fixed port and cx_priority arguments not being honoured
- fixed internal ReadArgs() parsing to be nicer (maybe some amateur "OS" would
barf on that)
- added mouse wheel support. You need a server that supports that as well (for
Windows, use http://www.realvnc.com/)
- removed HOTKEY_DISCONNECT
- added support for 4 hosts. Use HOST, HOST2, HOST3, HOST4, PORT2, PASSWORD2,
- fixed mouse wheel for rfbserver x11
- now only tries to reach an host for 5 seconds and reports the connection
error if it didn't manage to connect
- now tries to automatically reconnect when the server disconnected us. This
is handy for win32 machines as switching resolution seems to disconnect,
that way we still have input when running a game for example
- fixed a problem with ctrl keys and x0rfbserver
- added f11, f12 and some more keypad keys
- fixed major memleak happening with every event.. and it was there since the
- Minor changes to makefiles & debug.h in Source.
- Changed IECLASS_POINTERPOS to IECLASS_NEWPOINTERPOS in two (count 'em) locations to support PB trackpad.