guaclog(1)

πŸ“¦
version 1.6.0 Β· 2 versions
, in alpine 3.24, epel 10, epel 9, fedora 43, fedora 44, nixos 26.05

πŸ’– guaclog(1) β€” Apache Guacamole πŸ’–

okay bestie, sit down, hydrate, and let me tell you about guaclog, aka the Guacamole input log interpreter. yes, the manual name is right there in the title, we're being ✨official✨ about it.


🌸 SYNOPSIS 🌸

guaclog [-f] [FILE]...

✨ DESCRIPTION ✨

so guaclog is an interpreter, and what it interprets is Guacamole protocol dumps β€” like, the ones you get saved when input logging is turned on for a Guacamole session recording. it reads those and writes out human-readable text logs as its output. πŸ’…

ngl, the way to think about it is: guaclog is basically an implementation of a Guacamole client, except it takes its input from files instead of a network connection. but β€” and this is the key tea β€” unlike guacenc, it only deals with instructions related to user input. that's it, that's the whole job. 🫢

every FILE you hand it gets translated into a brand new human-readable text file named FILE.txt. and no cap: existing files will not be overwritten. if interpreting some input file would end up clobbering a file that's already there, the interpreting process for that input file gets aborted. periodt. πŸ›‘

here's the important bit about locks, bestie: Guacamole acquires a write lock on recordings while they're being written. by default, guaclog checks whether each input file is locked, and it will refuse to read and interpret an input file if it looks like an in-progress recording. πŸ™ˆ you can override this whole vibe by passing the -f option. and fyi β€” interpreting an in-progress recording will still work just fine; the resulting human-readable text file will simply cover the user's session only up to the current point in time. iconic, honestly. ⏳


πŸŽ€ OPTIONS πŸŽ€

  • -f β€” overrides the default behavior of guaclog so that input files will be interpreted even if they appear to be recordings of in-progress Guacamole sessions. (the "bestie I know what I'm doing" flag πŸ’…)

🌈 OUTPUT FORMAT 🌈

the output format of guaclog is designed to match what the user would have typed inside a typical text editor as closely as possible β€” while also representing non-printable characters and keyboard shortcuts in a way that's human-readable. best of both worlds, we love to see it. ✨

so like, all output is on one line. new lines only start when the user actually pressed enter/return. keys that produce printable characters get translated into their corresponding Unicode codepoints and encoded as UTF-8. non-printable characters? they get wrapped up in angle brackets and shown with their human-readable names. keyboard shortcuts that are made up of more than one key also get enclosed within angle brackets, with each key inside the shortcut separated by plus signs. πŸ”₯

spaces and newlines are included as their Unicode character β€” EXCEPT when they show up inside a keyboard shortcut, in which case their human-readable names are used instead. and tab? tab is always represented by its human-readable name, because (a) the output of pressing tab can easily be mistaken for spaces, and (b) pressing tab frequently has special meaning within applications. two very good reasons, honestly. πŸ‘‘

modifiers are output as part of keyboard shortcuts only. simply pressing and releasing a modifier gets ignored, and so do presses of shift or AltGr while typing. not every keypress is main character energy and that's fine. πŸ’œ

πŸ¦‹ the example, because it eats πŸ¦‹

say the user typed "Hello WORLD!", then 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 this:

Hello WORLD!<Ctrl+a><Ctrl+c><Alt+Shift+Tab><Ctrl+v>

yes. that's it. that's the whole thing. slay. πŸŽ€


πŸ‘‘ SEE ALSO πŸ‘‘


version 1.6.0 Β· 26 Jan 2018 Β· Apache Guacamole Β· and that's the whole page bestie, ty for reading, go interpret some input logs, mwah πŸ«ΆπŸ’–βœ¨