The release below is from prior to Guacamole's acceptance into the Apache Incubator. It is not an Apache Software Foundation release, and is licensed under the MIT license.

Guacamole 0.9.4

The 0.9.4 release of Guacamole is our biggest update yet. It contains a complete rewrite of the web interface, standardized official support for WebSocket, improved and configurable logging, as well as cosmetic changes improving style and usability.

Massively improved interface

The Guacamole web interface has been completely rewritten as a single-tab application. You can still open connections in new tabs if you wish, but the new interface allows you to open multiple connections within the same tab. While these connections are running, their thumbnails on the home screen update in real time.

Opening the Guacamole menu, a common point of confusion among users, is now much easier. The Ctrl+Alt+Shift shortcut for showing/hiding the menu is much less picky. Pressing these keys in any order will toggle menu visibility - you no longer need to ensure that Shift is pressed last.

WebSockets for everyone

When users encounter latency or poor performance while using Guacamole, the answer has often been “enable WebSocket”. WebSocket is now enabled by default, and is supported for Tomcat 7.0.37 or later (including Tomcat 8), Jetty 8 or later, or any Java servlet container supporting JSR-356 (the Java standard for WebSocket support).

Username/password parameter tokens

If you or your users use the same username/password for Guacamole as in their remote desktop accounts, you can now specify the “${GUAC_USERNAME}” or “${GUAC_PASSWORD}” tokens in any connection parameter. Guacamole will substitute the current user’s username or password respectively when connecting.

If editing passwords through the management interface, using the above tokens can be difficult as passwords are masked by default, and you will be unable to see exactly what has been entered. You can now temporarily reveal the contents of a password connection parameter by clicking the lock icon next to the password field.

Improved (and configurable) logging

Guacamole’s logging is now configurable and much more readable. Both guacd and the web application may be configured to log at higher levels of detail and, by default, debugging information like stacktraces is omitted, replaced with human-readable descriptions of the problem at hand.

If you serve Guacamole through a reverse proxy, Guacamole will now take the de facto standard “X-Forwarded-For” header into account when logging IP addresses. No longer will your logs consist only of the IP address of your proxy server.

Improved mouse behavior

Guacamole will now automatically take advantage of browser support for local mouse cursors, using those in favor of its own software-rendered cursor. This is often noticeably faster, and feels more responsive.

Keyboard improvements and fixes

In past releases, pressing key combinations like Alt+Tab or the “Windows” key could result in those key(s) being stuck down in the remote connection. This is no longer the case - such keys are now automatically released when Guacamole detects that you have switched to a different application.

Guacamole 0.9.4 also adds support for Swedish keyboard to RDP, and fixes several recent keyboard-related bugs.

Other bug fixes