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 (you can use host:ip notation if you wish), the display number and your password and rock'n'roll...

Connection Dialog

You can also check RealVNC's web page for additional information on connection and configuring a VNC client.

More About Connections

The Chicken supports server autodiscovery using Bonjour (formerly known as Rendezvous). To enable it, select the Use Bonjour item in Chicken's application menu. Servers that advertise themselves using Bonjour will automatically show up in your bookmarks window!

If you wish to connect to a server without using bookmarks, just choose New Connection from the File menu. Of course, if you decide that you want to bookmark the server, you can always check the "Save Server" button before you connect.

You can get back to the bookmarks window you saw when you launched Chicken of the VNC by selecting Open Connection from the File menu.

You can connect to a server that is behind a firewall by using a listening connection. Choose Listen for Server from the File menu and then set the VNC server up to initiate a listening connection to your client machine.

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. Unfortunately, encodings that require less bandwidth also require more CPU utilization on both the server and client computers, so you may need to experience to find the encoding that's right for your situation.

The different encodings are (in rough order of efficiency)

Profile Dialog
Profile Dialog

If you are one of those cursed with a single button mouse, you have many mouse button emulation options.

You can emulate a button click by holding down a modifier key while clicking your single button mouse using the Modifier Click emulation option. For example, you can use this to imitate the familiar control-click paradigm used on your Macintosh.

The Multi-Tap option lets you emulate a button click by tapping a particular modifier key quickly. For example, you can right-click at the current mouse position by tapping the Command key twice quickly.

The Tap and Click option lets you emulate a button click by tappinga modifier key a single time and then clicking the mouse. This is the behavior that was in previous versions of Chicken of the VNC, so you may already be accustomed to it. Once you've tapped the modifier key, the mouse cursor will change to indicate that a mouse click will be emulated. You can cancel emulation by waiting for it to timeout, or by pressing the Escape key on your keyboard.

If you don't wish to use mouse button emulation, you can set the No Emulation option.

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.

Profile Dialog
Profile Dialog

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 Command-Option-Escape, Control-Alt-Delete and Other Strange Combos?

You can force-quit applications on a remote Macintosh by sending the CMD-OPT-ESC keystroke from the Connection menu's Special Keys submenu.

Likewise, Windows machines commonly use the CTRL-ALT-DEL keystroke. You can send this keystroke by choosing Send Ctrl-Alt-Del from the Connection menu's Special Keys submenu. 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.

Similarly, to send Alt-F4 on a laptop (where F4 is mapped to sound volume), you can use CMD-FN-F4.

You can see additional uses for the Function key on Apple's Laptop Technical Pages.

The Connection menu's Special Keys submenu has several other commonly used keystrokes that are not found on Macintosh keyboards.

Command Line Usage

You can use Chicken by calling it from the command line. To do this, you should 'cd' to the location of Chicken of the VNC. Then, do the following:

cd Chicken\ of\ the\ VNC.app/Contents/MacOS/
./Chicken\ of\ the\ VNC

To get help on command line invocation, add "--help" to the invocation.

Preferences

Preferences Dialog
Preferences Dialog
Preferences Dialog

Known Problems

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.0b4 (January 18, 2006)
  • - Chicken of the VNC is now a universal binary.
  • - Resolved an issue that caused an "ZLibHex unknown subencoding" error when using ZRLE encoding to connect to an UltraVNC server.
  • - Resolved an issue that caused pasting text to work incorrectly if the text contained repeating characters.
  • - Bonjour server discovery now works properly when the server uses a non-standard port or display number.
  • - Clicking an inactive connection window no longer passes that click through to the server.
Version 2.0b3 (August 22, 2005)
  • New Features
    • - Reimplemented mouse button emulation and added new options to either turn off emulation for a particular mouse button, emulate when holding a modifier key and clicking the left button, emulate when tapping a modifier key multiple times, or emulate when tapping a modifier key quickly and then clicking the left button.
    • - Added VNC view-only mode, used for watching a server without interacting with it.
    • - Added VNC listening mode, used for connecting to a server that is behind a firewall.
    • - Added menu commands to send cmd-option-escape, Insert, Delete, Pause, Break, Print and Execute keystrokes.
    • - Added a "New Connection..." menu item allows you to connect to a server without having to use a server in the server list.
    • - It's now possible to set bookmarked connections to always open in fullscreen mode.
    • - Settings for servers discovered via Bonjour are now saved when Chicken closes.
    • - Bonjour server discovery now looks for _rfb._tcp as well as the previous _vnc._tcp.
    • - It's now possible to explicitly specify a port number rather than a display number, either via the user interface or from the command line.
    • - Added French localization courtesy of Pascal Frey.
    • - Added Italian localization courtesy of Claudio Santucci.
    • - The server list in the Open Connection panel is now displayed in alphabetical order.
    • - Chicken now handles urls of type vnc:// and rfb://.
    • - Minimized connection windows no longer show a generic VNC icon.
    • - Connection windows now remember their size and location.
    • - Dropped connections now attempt to auto-reconnect.
    Bug Fixes
    • - Resolved compatibility issues with Apple Remote Desktop 2.2.
    • - The 'F1' key is now transmitted to servers correctly.
    • - Improved handling of double and triple clicks. They now work reliably.
    • - Colors are no longer mapped improperly when using millions of colors mode.
    • - Resolved an issue that caused error messages when connecting to TightVNC.
    • - Resolved issues that caused connections to die with the message "Unknown rectangle encoding" or "Inflate error".
    • - Resolved issues with pasting text to the remote machine.
    • - Window frames are now saved properly between launches.
    • - Resolved an issue that could cause a crash when using a Logitech mouse.
    • - The Set Title and Connection Information windows are now closed properly when a connection is closed.
    • - Rendezvous is now called Bonjour in the UI to fit new Apple naming conventions.
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.

Primary Contributors

Contact Information

You can always get the latest versions of Chicken of the VNC, news and updates at the Source Forge web site:

http://cotvnc.sourceforge.net/

To get support on Chicken of the VNC, you can submit a support request

http://sourceforge.net/tracker/?atid=507160&group_id=64347&func=browse

To submit an idea or suggestion for Chicken of the VNC, use this address:

http://sourceforge.net/tracker/?atid=507162&group_id=64347&func=browse

Alternately, if you prefer email, you can contact:

support@geekspiff.com