About Chicken of the VNC
Chicken of the VNC is a VNC client for Mac OS X. A VNC client allows one to display and interact with a remote computer screen. In other words, you can use Chicken of the VNC to interact with a remote computer as though it's right next to you.
Chicken of the VNC was written by Helmut Maierhofer for OpenStep on Intel and Jason Harris (the author of this document) ported it to the Cocoa API on Mac OS X. Helmut's original version was called VNCViewer, but as there are already several VNC programs on Mac OS X with this name, I decided to save some confusion and call it by this horrible Chicken name instead.
More information about VNC can be found at the RealVNC website: http://www.realvnc.com/.
Using Chicken of the VNC
Note: If you have used a version of Chicken of the VNC prior to 1.3, you will need to either delete your preferences (in ~/Library/Preferences/com.geekspiff.chickenofthevnc.plist), or reset the modifier key mappings in all of your stored profiles. If you wish, you may also delete the "Chicken of the VNC" folder in your preferences, as it is no longer used.
Use it just like any other VNC client - enter the address of a working VNC server, the display number (or port) and your password and rock'n'roll...

- Servers: You can store commonly used servers in this section. Use the + and - buttons to add and remove servers.
- Host: The host to which you wish to connect. This can be either a DNS name (like myserver.com) or an IP address. You must be able to "ping" the host to connect to it.
- Display/Port: The display number or port for the connection. VNC server programs on Windows machines tend to default to display number 0, while older VNC servers on Mac OS X, such as OSXvnc version 0.7, tend to use display number 1. If you can't connect, you can try switching the display number between these two values. Display numbers less than 100 are interpreted as a port number. If you're having problems connecting, you should make sure that the port is not firewalled on the server machine. The port number is 5900 plus the display number - in other words, display zero is port 5900, display one is port 5901, etc.
- Shared Display: If selected, multiple clients can connect to the same server simultaneously. Otherwise, only one client can be connected to a given server at at time.
- Password: The password needed to connect to the server running at the specified host and display. If Remember Password was checked, this will be fetched from your keychain after you've entered it initially.
- Remember Password: If checked, the password will be stored in your Keychain and remembered for later use.
- Profile: The connection profile to use when connecting to this server. See the section below for more info about connection profiles.
You can also check RealVNC's web page for additional information on connection and configuring a VNC client.
Using Connection Profiles
You can use profiles to store settings for an individual VNC server or for a class of servers. For example, you might want to use full-color display for a server that is on your local area network, but drop down to 8-bit display for a remote machine.
You can also use profiles to specify your default encoding. VNC operates by transferring an image of the screen from the server to the client. This obviously requires lots of bandwidth. The better the encoding that you use to transfer this information, the less "lag" you'll experience while using the Chicken.
The different encodings are (in rough order of efficiency)
- ZRLE
- Tight
- Zlib
- ZlibHex
- Hextile
- CoRRE
- RRE
- Raw
- Profiles: A list of profiles that are available to use for your connections. Add a new profile by typing its name below the list and pressing New. Remove a profile other than the default by selecting it and pressing the Delete button. The information in the remainder of the window belongs to the selected profile.
- Encodings: The encoding to use for the connection. Encodings are described above. You can drag encodings to change your preferred encoding - the top one is tried first, and subsequent ones are tried until one is found that is supported by your server. To disable an encoding, uncheck it. CopyRect Encoding is an optimization that's useful in some situations. If you're connecting to a very old server, you may wish to turn it off, but we haven't run across any situations where it isn't supported.

If you are one of those cursed with a single button mouse, you can emulate the right button by quickly tapping the Shift key on your keyboard. The mouse pointer will change to indicate that clicks will act like the third (right) mouse button. Likewise, you can emulate the middle button by quickly tapping the Alt (sometimes called Option) key on your keyboard. To cancel emulation, tap the key a second time or wait for the time interval specified in the bottom text field.
If you have a two-button mouse and wish to emulate a third-button click, press both buttons simultaneously. You can adjust how close together the presses must occur by tweaking the value in the top text field.
If you are lucky enough to have a two or three button mouse, you don't need to worry about emulation as Chicken of the VNC supports up to three mouse buttons, as well as scroll-wheels on compatible servers.
- Modifiers: You can use this section to map the modifier keys on your Macintosh keyboard to keys commonly used on other operating systems. This allows you to use the Alt key on a Windows server or the Meta key on a Unix server, for example.
- Color: You can use this section to select the color resolution you wish to use with your remote servers. Since VNC is a bandwidth-intensive protocol, you may obtain better responsiveness by reducing your color resolution. Let Server Decide uses the native color resolution of the server.
Full Screen Display
The Chicken can be toggled in and out of full screen display by pressing the keyboard combination command-option-control-`. The 'command' key is also known as the 'Apple' key. The back-quote (`) is the character immediately to the left of the number '1' on American keyboards.
If this key combination interferes with your work, or is not convenient on international keyboards, it can be changed in the Keyboard tab of the Preferences.
While in full screen mode, you cannot interact with the Dock or with any other programs running locally on your Macintosh. If the remote screen is larger than your local screen, the display will 'auto-scroll' when the mouse is close the edge of the screen. The scrolling speed and the presence of scrollbars can be adjusted in the Fullscreen tab of the Preferences.
I Get Strange Characters When I Type
Different operating systems interpret keystrokes to mean different things. Although standardization is in the works, not all servers are fully standardized.
Older versions of Chicken of the VNC tried to account for this difficulty by interrupting your VNC session to ask you to type certain keystrokes. As of Chicken of the VNC version 1.3, this process became automated.
How 'Bout CTRL-ALT-DEL and Other Strange Combos?
Windows machines commonly use the CTRL-ALT-DEL keystroke. You can send this keystroke by choosing "Send Ctrl-Alt-Del" from the "Connection" menu. If you'd prefer to type the keystroke, you can do this by simply hitting the keys that map to it. In the default configuration, this is CTRL-CMD-DEL (the CMD key is also referred to as the Apple key).
On machines that don't have a DEL key (such as recent PowerBooks and iBooks), you can use the function key and the ordinary delete key. In the default configuration, you would use CTRL-CMD-FN-DELETE.
Likewise, to send Alt-F4 on a laptop (where F4 is mapped to sound volume), you can CMD-FN-F4.
You can see additional uses for the Function key on Apple's Laptop Technical Pages.
Preferences
- Performance: Use the sliders to adjust how often your connections ask the server for updates. Generally, you want the frontmost connection to update as often as possible, while other connections can be less responsive. To force a connection to never update unless requested by choosing Refresh from the Window menu, set the slider to Only Update Manually.

- Autoscroll Speed: Controls how quickly your fullscreen connection scrolls when the mouse is moved to the edge of your screen.
- Display Scrollbars While in Fullscreen Mode: Controls whether scrollbars are displayed for fullscreen connections. They aren't necessary, since you can use the Autoscroll feature, but sometimes its nice to have an explicit scrollbar.
- Display Warning Before Entering Fullscreen Mode: Controls whether a warning panel is displayed before entering fullscreen mode. Since the only way to get back out of fullscreen mode is by knowing the keyboard command, the warning is an important reminder. If you're sure you know the keyboard command, you can use this to disable the warning.

- Keyboard Equivalents: Use this section to change the keyboard equivalents for various menu commands for different connection scenarios. The popup menu controls the scenario. Non-Connection Window is the scenario in which a window other than a VNC connection is the frontmost window. In other words, something like the Connection dialog or the preferences window is frontmost. Windowed Connection is the scenario in which a VNC connection in a window is frontmost. Fullscreen Connection is the scenario in which Fullscreen Mode is active. You can change the keyboard equivalent used to move in and out of Fullscreen Mode by changing it in both the Windowed Connection and Fullscreen Connection scenarios.
- Keyboard Equivalent Table: Change a keyboard equivalent by navigating to the desired menu command and double-clicking the Shortcut next to it. Press the keyboard equivalent you wish to use, or press Space on your keyboard to remove an equivalent.
- Restore Defaults: Use this to restore the default keyboard equivalents. These are the standard keyboard equivalents when a non-connection window is frontmost, and no keyboard equivalents other than to switch in and out of Fullscreen Mode whenever a connection is frontmost.
Known Problems
- It is not possible to auto-scroll diagonally in full-screen mode, only horizontally or vertically.
- Modifier keys such as cmd, option, etc. may be in a strange state after switching in or out of full-screen mode.
- Window size may be incorrect after switching out of fullscreen mode.
- A server window smaller than the client screen is not centered in fullscreen mode.
Source Code
Because this program is distributed under the GNU license, source code is available for it. If you're interested in contributing to Chicken of the VNC, it is hosted collaboratively on SourceForge. The address is
http://cotvnc.sourceforge.net/.
Version History
- Version 2.0b2 (August 26, 2004)
- - Resolved a crash on startup that could occur in some situations when upgrading from 1.3.6.
- - Resolved an issue that would prevent the creation of Connection Profiles if none had been created in an earlier version of Chicken. This manifested itself as an insistence upon connection to port 5900 of localhost.
- - Resolved an issue that prevented connecting when no servers were present in the list, while appearing as though it would work properly. This manifested itself as a successful, but very slow connection, in which modifier keys would not work at all.
- - Resolved an issue that caused closing a windowed connection via a customizable key equivalent to crash.
- - Revamped the Profile Manager window to act more sensibly and be easier to use.
- - Revamped the Preferences and removed settings that never get used.
- - Added html documentation that's accessible from within Chicken.
- - It's now possible to specify a profile name when launching Chicken via the command line.
- - The "Use Rendezvous" setting is now remembered between launches.
- - Changed the default order of encodings so that the fastest one defaults to the first one to try.
- - Newly created servers are now created with their names immediately editable.
- - Widened the Display text field in the connection dialog.
- Version 2.0b1 (August 18, 2004)
- - New connection manager that stores commonly used servers.
- - Auto-discovery of servers via Rendezvous.
- - Added keychain support.
- - Added support for keyboard commands when connection windows are not the frontmost windows.
- - Added support for customizable menu key equivalents.
- - Clarified menus. rearranged them, and made them more "Mac-like".
- - Drastically improved documentation.
- - Added timers for mouse button emulation that help prevent accidental emulation.
- - Added ability to specify connection options from the command line.
- - Shift-Tab now works properly on Windows machines.
- - Capslock now works on Windows machines.
- - Resolved errors when connection to RealVNC using ZLibHex encoding.
- - Resolved errors when connecting to OSXVNC using Tight encoding.
- - Miscellaneous other encoding fixes.
- - Tight encoding is no longer the default encoding.
- - Widened "Port (or Display)" text field so it can hold 5 digits.
- - Port numbers below 100 are now interpreted as a display number, instead of numbers below 10.
- - Mouse tracking no longer breaks after exiting from full-screen mode.
- - Resolved an issue that could cause Chicken to crash if the server connection unexpectedly died.
- - When a server connection dies, Chicken now notifies the user with a sheet so that the user can see which connection it was.
- - Removed the "Quit" option from the notification presented when a server has died.
- - Changed release date in "About Chicken of the VNC" for 1.3.6 to properly reflect the year 2003.
- - New VNC graphics in About dialog by Tobia Conforto tobix@linux.it
- Version 1.3.6 (January 17, 2003)
- - Fixed a nasty memory leak and checked all encodings to verify that none of them memory problems.
- - Added preferences to modify the CPU performance of the frontmost connection independently of all other connections.
- - Finally fixed Tight Encoding - previously, it only worked when the server had a small screen.
- - More speed optimization when running under Jaguar.
- - Redid the scheduler to fix a problem that caused excessive CPU usage.
- - Added lots of internal error-checking.
- - Modified many default preferences to have more reasonable values - display and preferred encodings particularly. If upgrading, you will need to restore the order of your preferred encodings.
- Version 1.3.5 (January 13, 2003)
- - More improvements to Tight Encoding
- - JPEG encoding support in Tight Encoding (only available for expert users who install jpeglib and recompile Chicken)
- - ZRLE encoding
- - ZLIB encoding
- - Added "Send Ctrl-Alt-Del" menu item
- - Fixed several full-screen windowing bugs
- - Added support for mouse scroll-wheels when connecting to servers that support this extension to the VNC protocol
- - Works with OSXvnc 1.0
- - When a connection is dropped, Chicken asks if you'd like to reconnect
- - Presents the connection dialog when Chicken is brought frontmost and there are no open sessions
- - Improvements to window drawing speed
- - The Login dialog window now stores the server addresses you've connected to
- Version 1.3.1 (October 24, 2002)
- - Restored support for versions of Mac OS X lower than 10.2.
- - Improved connection issues when using Tight encoding, although it's still not perfect.
- - Added support for specification of a port number instead of a display number.
- - Added native support for three-button mice.
- - Fixed a bug that caused Chicken to crash on machines with Unsanity's FruitMenu installed.
- - Chicken is now hosted on SourceForge.
- Version 1.3 (October 8, 2002)
- - Added a full-screen, auto-scrolling mode and associated preference settings.
- - Connection windows no longer default to being larger than your main screen.
- - Windows now initially appear scrolled to the top-left instead of the bottom left.
- - You are no longer prompted to type a key without a modifier when you type special characters.
- - Revamped the text sending engine.
- - Arrow keys are no longer sent twice.
- - Revamped and reorganized the profile window so that it makes more sense for Mac OS X (and follows the Aqua guidelines). Also, the profile window could now be localized if someone felt the urge to do it (it no longer uses string constants). However, this change means that previous users will either need to reset their modifier keymappings in all of their profiles, or delete their preferences.
- - Changed the rectangle drawing options in the Preference window so that they more accurately reflect behaviour on Mac OS X.
- - The rectangle drawing options in the Preferences window now show their current value. Previously, they always showed the default value, although they used whatever value had been set.
- - Synced with Helmut's 1.2.5 release. This adds the ability to paste a file's path into your VNC window by dragging the corresponding file into the window (untested).
- Version 1.2.3 (March 22, 2002)
- - Initial Mac OS X release.
Distribution and License Agreement
Chicken of the VNC is released under the GNU license.
Chicken of the VNC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
Main Contributors
- Jason Harris — Project manager, port to Mac OS X, various code enhancements, documentation
- Jared McIntyre — GUI additions, Rendezvous implementation, additional development
- Helmut Maierhofer — Original implementation for NeXTStep, encoding guru extraordinaire
- Kurt Werle — Development, speed and feature enhancements
- Sean Kamath — Additional development and feedback