guaclog [-f] [FILE]...
guaclog is an interpreter which accepts Guacamole protocol dumps, such as those saved when input logging is enabled for a Guacamole session recording, writing human-readable text logs as output. guaclog is essentially an implementation of a Guacamole client which accepts its input from files instead of a network connection, however unlike guacenc it only handles instructions related to user input.
Each FILE specified will be translated into a new human-readable text file named FILE.txt. Existing files will not be overwritten; the interpreting process for any input file will be aborted if it would result in overwriting an existing file.
Guacamole acquires a write lock on recordings as they are being written. By default, guaclog will check whether the each input file is locked and will refuse to read and interpret an input file if it appears to be an in-progress recording. This behavior can be overridden by specifying the -f option. Interpreting an in-progress recording will still work; the resulting human-readable text file will simply cover the user's session only up to the current point in time.
Overrides the default behavior of guaclog such that input files will be interpreted even if they appear to be recordings of in-progress Guacamole sessions.
The output format of guaclog is meant to match what the user would have typed within a typical text editor as closely as possible, while also representing non-printable characters and keyboard shortcuts in a human-readable way.
All output is on one line, with new lines started only as a result of the user pressing enter/return. Keys which produce printable characters are translated into their corresponding Unicode codepoints and encoded as UTF-8, while non-printable characters are enclosed within angle brackets and represented with their human-readable names. Keyboard shortcuts which are made up of more than one key are enclosed within angle brackets, with each key within the shortcut separated by plus signs.
Spaces and newlines are included as their Unicode character, except when represented within a keyboard shortcut, in which case their human-readable names are used instead. As the output of pressing tab can be easily mistaken for spaces, and as pressing tab frequently has special meaning within applications, tab is always represented by its human-readable name.
Modifiers are output as part of keyboard shortcuts only. Simple pressing and releasing of a modifier will be ignored, as are presses of shift or AltGr while typing.
For example, if the user typed "Hello WORLD!", selected everything by pressing Ctrl+a, copied the selected text by pressing Ctrl+c, switched to another application by pressing Alt+Shift+Tab, and then pasted the previously-copied text by pressing Ctrl+v, the resulting log from guaclog would look like: