zvnc - fast VNC client for remote control ========================================= v <=1.5: Copyright 2001-2003 by David Gerber - All Rights Reserved v >1.5.1: No copyright. "You just do wtf you want" Distribution: ------------- Released under the DO WTF YOU WANT TO PUBLIC LICENSE. See file COPYING for details. Disclaimer: ----------- This software comes with no guarantee, use it at your own risks, no batteries included, etc.. Introduction: ------------- 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. Features: --------- - fast and optimized event handling (typically 50hz mouse refresh on most systems) - 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 Requirements: ------------- any version of MorphOS should do Installation: ------------- Copy it somewhere (SYS:WBStartup is a good place if you want automatic launch). Usage: ------ 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. FAQ: ---- - 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 events. - 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 dark. - 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. Future plans: ------------- - 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). Thanks: ------- - Mark Olsen for giving me the idea to write it and the des encryption function - Matt Sealey for reporting stuff - Neil Williams for suggestions and reports - And everyone taking interest in it (not many people it seems) History: -------- 1.0 --- - first public release 1.1 --- - fixed port and cx_priority arguments not being honoured 1.2 --- - fixed internal ReadArgs() parsing to be nicer (maybe some amateur "OS" would barf on that) 1.3 --- - added mouse wheel support. You need a server that supports that as well (for Windows, use http://www.realvnc.com/) 1.4 --- - removed HOTKEY_DISCONNECT - added support for 4 hosts. Use HOST, HOST2, HOST3, HOST4, PORT2, PASSWORD2, etc.. - 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 1.5 --- - 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 beginning, sigh 1.5.1 --- - Minor changes to makefiles & debug.h in Source. - Changed IECLASS_POINTERPOS to IECLASS_NEWPOINTERPOS in two (count 'em) locations to support PB trackpad.