However, I also like to use a huge pager in fvwm2, and just leave terminals open a long time. This means I don't have to log in and out again and again throughout a workday; instead I can just leave terminals open on the common hosts, and reuse those. This usually makes a day a little more productive.
The combination wasn't ideal - using script(1) and not logging out much - because although I was dating my script(1) logs, they were dated solely by the start date. Yes, I modified my PS1 (shell) prompts to give a timestamp, but that's not quite as useful when you have thousands of (potentially compressed) tty log files you want to look through quickly.
So I wrote pypty, which is a reimplementation of script(1) with a little more functionality thrown in. It should be a drop in replacement for traditional use (right down to interoperating with scriptreplay(1)), and being only slightly slower if you use psyco (script(1) was around 2.6 times faster when doing a huge find - which should be an imperceptible difference for all but the most egregiously large output streams).
The main benefit at this time is that it has a -d option implementing a "dated files" mode. In this mode:
To contend with this, we could probably have another file analogous to today's .timing file, that would have just terminal resize data. We could then either have a automatically-resized GUI for replaying logs, or just ask the user to stretch their terminal as big as it'll go at the beginning and resize to whatever subregion will work best for a given point in the log.
The usage message looks like:
$ ./pypty -h Usage: ./pypty [file] -a Append the output to file or typescript, retaining the prior contents -c command -f Flush output after each write. -q Be quiet. -d Use dated files. -t Output timing data In dated mode, using a .timing file. In non-dated mode, use standard error. --verbosity levelno -v --help
Example usage looks like:
$ ./pypty -d Pypty started, file is 2008/06/01/typescript-1ZVUCW9Pvdnl-SXtwRhH9WEDZ dstromberg-desktop-dstromberg:~/public_html/pypty/pypty-1.00 i486-pc-linux-gnu 24546 - above cmd done 2008 Sun Jun 01 01:21 PM $ pwd /home/dstromberg/public_html/pypty/pypty-1.00 dstromberg-desktop-dstromberg:~/public_html/pypty/pypty-1.00 i486-pc-linux-gnu 24546 - above cmd done 2008 Sun Jun 01 01:21 PM $ Pypty finished, file was 2008/06/01/typescript-1ZVUCW9Pvdnl-SXtwRhH9WEDZ ...To be continued Pypty started, file is 2008/06/02/typescript-1ZVUCW9Pvdnl-Hp8cV4ZpH06V ls 2008 COPYING pypty dstromberg-desktop-dstromberg:~/public_html/pypty/pypty-1.00 i486-pc-linux-gnu 24546 - above cmd done 2008 Mon Jun 02 05:51 PM $ exit Pypty finished, file was 2008/06/02/typescript-1ZVUCW9Pvdnl-Hp8cV4ZpH06V
Then there's script-replay, which is also part of the pypty distribution.
It just lets you walk through a file, forward and back, a character, line or page at a time. It doesn't require a special timing file - script(1) timing files often being rather large compared to the tty logs themselves.
It's a little primitive, but I've found it functional.
It should work fine with both script(1) typescript's and pypty typescript's.
It has a curses interface as well as a gi.repository.Gtk interface; it works with CPython 2.x or 3.x.
You can e-mail the author with questions or comments: