XScreenSaver was released 30 years ago

Newgroups: comp.windows.x.announce
Subject: xscreensaver 1.0 now available
From: jwz@LUCID.COM (Jamie Zawinski)
Date: 17 Aug 92 14:47:50 GMT
Message-ID: <9208171447.AA20797@expo.lcs.mit.edu>
Organization: Lucid, Inc., Menlo Park, CA
Path: sparky!uunet!sun-barr!cs.utexas.edu!uwm.edu!bionet!LUCID.COM!jwz

Get it from export.lcs.mit.edu in the file contrib/xsaver.tar.Z. The xscreensaver program waits until the keyboard and mouse have been idle for a period, and then runs a graphics demo chosen at random. It turns off as soon as there is any mouse or keyboard activity.

This is not a screen locker, like xlock -- it does not prevent others from using your terminal. Its purpose is to display pretty pictures on your screen when it is not in use, in keeping with the philosophy that unattended monitors should always be doing something interesting, just like they do in the movies.

The benefit that this program has over the combination of the xlock and xautolock programs is the ease with which new graphics hacks can be installed: you don't need to recompile this program to add a new display mode, you just change some resource settings. Any program which can be invoked in such a way that it draws on the root window of the screen can now be used as a screensaver without modification [*]. The programs that are being run as screensavers don't need to have any special knowledge about what it means to be a screensaver.

The XIdle extension will be used if you have it (win win.) If you haven't installed XIdle, you need to change a line in the Imakefile.

Also included are several graphics hacks for use as screensavers. There's nothing magic about these: they're just programs that draw on the root window, which are pointed at by the screensaver's default resource settings.

qix - My own implementation of this, with many more options than you would have thought qix could have. helix - Generates spirally "stringart" patterns. rorschach - Random inkblot patterns. attraction - A bouncing ball demo, or a qix-like demo, or a wild color-cycling thing, with some odd rules. greynetic - Random colored/stippled rectangles. rocks - Flying through an asteroid field. pyro - Fireworks. Looks a lot like the version in xlock. hopalong - Fractals. I snarfed this code from xlock. noseguy - A guy with a big nose wanders around the screen saying things. I snarfed this code from xnlock.

All of these will pop up their own window unless given that -root option. See their man pages for more details.

Other reasonable things to use as screensavers, if you have them, are

xdaliclock -root -builtin2 - melting digital clock xswarm -r 2>&- - swimming sperm xwave -root - random 3d graphs xbouncebits - bounce arbitrary bitmaps around ico -r - it's dull, but it's there xv -root file.gif -quit - they don't all have to animate!

You can get all of these from export.lcs.mit.edu. If you know of (or write) any other interesting programs that can be used as screensavers, please let me know!

-- Jamie Zawinski <jwz@lucid.com>

[*] It may be necessary to include "vroot.h" in the program, but that would be necessary for it to work with virtual-root window managers anyway.

I completely forgot about this anniversary until someone pointed it out to me, which is why this post is two days late!

Now here's a really sad story: I don't have a copy of XScreenSaver 1.0! The oldest version I have is 1.17 from 1993.

That first version was served from the FTP server export.lcs.mit.edu but I can't find an archive of that anywhere. It may also have been uploaded to comp.sources.x, but again, archives from 1992 seem to not exist at all. Probably there's an ISO of some Linux distro from 1992 or 1993 that still has the source of these versions, but if there is, I have not found it.

Go search, please!

I wasn't even able to find the unadulterated version of that original announcement post, only the mangled version on Google's debasement of the USENET archives. If you can find an archive of comp.windows.x.announce or comp.sources.x from 1992, particularly one that shows the original Message-IDs, please let me know. I checked Internet Archive but found nothing good. Update: Found!

For posterity, and in case they vanish again, here are the announcement messages of versions 1.05 in Nov 1992, and 1.09 (the first version with locking and demo-mode) in Feb 1993.

Newsgroups: comp.windows.x.announce
Subject: XScreenSaver 1.5 released
From: jwz@LUCID.COM (Jamie Zawinski)
Date: 30 Nov 92 15:33:44 GMT
Message-ID: <9211301533.AA19757@expo.lcs.mit.edu>
Distribution: inet
Organization: Lucid, Inc., Menlo Park, CA
Path: sparky!uunet!zaphod.mps.ohio-state.edu!uwm.edu!biosci!LUCID.COM!jwz

Get it from export.lcs.mit.edu: contrib/xsaver.tar.Z. New in this release:

- you can run it from xdm, so that the screensaver operates while nobody is logged in.

- imsmap is much faster with slow server connections (like dialup X terminals) and picks its colors more sensibly.

- you can use "xv" as a screensaver program without having it consume colormap entries even while the screensaver is inactive.

- xscreensaver-command has a new argument, -restart, which causes the existing screensaver process to restart itself (and thus notice any changes you've made to your resource database.)

- fixed a few bugs, including one that would cause the xscreensaver process to occasionally die of BadDrawable errors when in non-XIdle mode.

----------------------------------------------------------------- file: README

The xscreensaver program waits until the keyboard and mouse have been idle for a period, and then runs a graphics demo chosen at random. It turns off as soon as there is any mouse or keyboard activity.

This is not a screen locker, like xlock -- it does not prevent others from using your terminal. Its purpose is to display pretty pictures on your screen when it is not in use, in keeping with the philosophy that unattended monitors should always be doing something interesting, just like they do in the movies.

The benefit that this program has over the combination of the xlock and xautolock programs is the ease with which new graphics hacks can be installed: you don't need to recompile this program to add a new display mode, you just change some resource settings. Any program which can be invoked in such a way that it draws on the root window of the screen can now be used as a screensaver without modification [*]. The programs that are being run as screensavers don't need to have any special knowledge about what it means to be a screensaver.

The XIdle extension will be used if you have it (win win.) If you haven't installed XIdle, you need to change a line in the Imakefile.

Also included are several graphics hacks for use as screensavers. There's nothing magic about these: they're just programs that draw on the root window, which are pointed at by the screensaver's default resource settings.

qix - My own implementation of this, with many more options than you would have thought qix could have. helix - Generates spirally "stringart" patterns. rorschach - Random inkblot patterns. attraction - A bouncing ball demo, or a qix-like demo, or a wild color-cycling thing, with some odd rules. greynetic - Random colored/stippled rectangles. rocks - Flying through an asteroid field. blitspin - Rotate a bitmap using bitblts. imsmap - generates random maps or cloud formations pyro - Fireworks. Looks a lot like the version in xlock. hopalong - Fractals. I snarfed this code from xlock. noseguy - A guy with a big nose wanders around the screen saying things. I snarfed this code from xnlock.

All of these will pop up their own window unless given that -root option. See their man pages for more details.

Other reasonable things to use as screensavers, if you have them, are

xdaliclock -root -builtin2 - melting digital clock xswarm -r 2>&- - swimming sperm xwave -root - random 3d graphs xbouncebits - bounce arbitrary bitmaps around ico -r - it's dull, but it's there xv -root file.gif -quit - they don't all have to animate! xsplinefun - bouncing splines kaleid -root - qix-like kaleidescope patterns

You can get all of these from export.lcs.mit.edu. If you know of (or write) any other interesting programs that can be used as screensavers, please let me know!

-- Jamie Zawinski <jwz@lucid.com>

[*] It may be necessary to include "vroot.h" in the program, but that would be necessary for it to work with virtual-root window managers anyway.

Newsgroups: comp.windows.x.announce
Subject: XScreenSaver
From:jwz@LUCID.COM (Jamie Zawinski)
Date: Feb 25, 1993, 10:30:44 AM
Message-ID: <9302251830.AA15563@expo.lcs.mit.edu>
Distribution: inet
Path: sparky!uunet!ukma!wupost!howland.reston.ans.net!agate!biosci!LUCID.COM!jwz

XScreenSaver can now lock your display as well, and has a totally winning "demo" mode. You can get it from export.lcs.mit.edu in the file contrib/xscreensaver.tar.Z. Also, the install-colormap-mode works better now than it did in the last released version.

---------- slice 'n' dice --------------------------------------- file: README

The xscreensaver program waits until the keyboard and mouse have been idle for a period, and then runs a graphics demo chosen at random. It turns off as soon as there is any mouse or keyboard activity.

The purpose of xscreensaver is to display pretty pictures on your screen when it is not in use, in keeping with the philosophy that unattended monitors should always be doing something interesting, just like they do in the movies.

However, xscreensaver can also be used as a screen locker, to prevent others from using your terminal while your are away.

The benefit that this program has over the combination of the xlock and xautolock programs is the ease with which new graphics hacks can be installed: you don't need to recompile this program to add a new display mode, you just change some resource settings. Any program which can be invoked in such a way that it draws on the root window of the screen can now be used as a screensaver without modification [*]. The programs that are being run as screensavers don't need to have any special knowledge about what it means to be a screensaver.

The XIdle extension will be used if you have it (win win.) See the Imakefile for configuration parameters.

Also included are several graphics hacks for use as screensavers. There's nothing magic about these: they're just programs that draw on the root window, which are pointed at by the screensaver's default resource settings.

qix - My own implementation of this, with many more options than you would have thought qix could have. helix - Generates spirally "stringart" patterns. rorschach - Random inkblot patterns. attraction - A bouncing ball demo, or a qix-like demo, or a wild color-cycling thing, with some odd rules. greynetic - Random colored/stippled rectangles. rocks - Flying through an asteroid field. blitspin - Rotate a bitmap using bitblts. imsmap - generates random maps or cloud formations. hypercube - 2d projection of a hypercube rotating on all four axes. slidescreen - Divides the screen into a grid and plays a 16-puzzle on it. pyro - Fireworks. Looks a lot like the version in xlock. hopalong - Fractals. I snarfed this code from xlock. noseguy - A guy with a big nose wanders around the screen saying things. I snarfed this code from xnlock.

All of these will pop up their own window unless given that -root option. See their man pages for more details.

Other reasonable things to use as screensavers, if you have them, are

xdaliclock -root -builtin2 - melting digital clock xswarm -r 2>&- - swimming sperm xwave -root - random 3d graphs xbouncebits - bounce arbitrary bitmaps around ico -r - it's dull, but it's there xv -root file.gif -quit - they don't all have to animate! xsplinefun - bouncing splines kaleid -root - qix-like kaleidescope patterns

You can get all of these from export.lcs.mit.edu. If you know of (or write) any other interesting programs that can be used as screensavers, please let me know!

-- Jamie Zawinski <jwz@lucid.com>

[*] It may be necessary to include "vroot.h" in the program, but that would be necessary for it to work with virtual-root window managers anyway.

And here's what appears to be my first XScreenSaver-related LiveJournal post but that's from only twenty years ago. 4.03.

So my first thought was to fire up the oldest computer I still own and shoot a video of XScreenSaver running on that. I pulled my SGI Indy and SGI O2 off the shelf, but though they both make the still-delightful startup chime, I don't have a VGA monitor (or a PS/2 mouse...) and neither of them wants to play nice with the VGA to HDMI adapter I have. The Indy displays solid black, the O2 solid green. Beats me!

(A reminder that XScreenSaver predates not only HDMI, but USB...)

So instead, here are a couple of YouTube videos of what might be my first two screen savers. Imagine these running in 1-bit monochrome on a 960x640 CRT.

I probably wrote the first line of code in April or May 1991. If a time traveller had told me then, "this will be your life's work", I probably would have been as surprised by that as by ...gestures wildly... the Current State Of Affairs.

Previously, previously, previously, previously, previously.
Tags: , , , , , ,

36 Responses:

  1. narf says:
    2

    I don't have a VGA monitor (or a PS/2 mouse...) and neither of them wants to play nice with the VGA to HDMI adapter I have.

    OH, man! Today was my last day of doing Desktop support. Could have easily scored you both. And, yeah, those VGA to HDMI adapters are... finicky, at best.

    (Your comment box. It has changed? I like it.)

    • James C. says:

      (Your comment box. It has changed? I like it.)

      Apropos of the comment box, there’s no way to make it go away after you press “Reply”. A nice feature would be that if you press “Reply” again it would disappear. This would help people resist adding a comment.

      • narf says:

        +1 for James C feature request. Happy to have his comments be memory holed if he doesn't want them to hit the interwebs. Where is the gofundme for this?

  2. Zygo says:
    3

    (A reminder that XScreenSaver predates not only HDMI, but USB...)

    ...and EDID, but not XGA (close, though).

    I'm guessing that SGI didn't spend a whole lot of effort on making their VGA output signalling compatible with cheap PC monitors, so they may be too exotic for the tame subset of signal parameters that a modern VGA->HDMI can handle.  My experience with HP and Sun monitors of that era was that almost every timing signal was the opposite of the typical PC's signal polarity, and my experience with VGA converters of this era is that they really only understand a few standard image sizes.

    Back in the day, I'd run xscreensaver on monochrome portrait-orientation NCD X terminals...for about 5 minutes, because the network bandwidth required for 2 FPS animation would cripple the entire computer lab.

    • jwz says:
      1

      Yeah, I did some searching and did not find that post I hoped for, the one that said "here's how I got my Indy or O2 to display HDMI." Oh well, back on the shelf they go.

      • Glaurung says:

        SGI machines expect the monitor to understand the "sync on green" signal.  Lots of LCDs do not support this anymore.

        There's a list of known compatible monitors here: https://wiki.preterhuman.net/Monitors_on_SGI_Machines
        and here (mixed up with lots of "does not work" entries, unfortunately):
        http://ps-2.kev009.com/sog/

        And there's a way to hack a cable to make an SGI work with any LCD.  Someone was selling their homemade cables on ebay as of 2018:
        https://forums.irixnet.org/thread-382.html

        • jwz says:

          Non-promising non-answer. Non-answer that seems to solve the VGA step but does not verify the HDMI step.

          • Glaurung says:

            This sort of incompatibility is why I gave up on retrocomputing.  If you want to use your antique computer from time to time, you'll need to get a separate monitor that speaks its language. Mercifully there are made-this-century flat panels that can be had fairly cheaply which understand sync on green, so you won't be as badly off as those with old NEXT systems who have to use a massive proprietary CRT.

        • A. Wilcox says:

          I've never managed to have an SGI system display anything using anything but a 13W3->VGA adaptor.  Daisy-chaining to DVI, HDMI, DP, mDP, etc have never worked – even to monitors that will display the signal fine on VGA (so SOG shouldn't be an issue for the panel itself).  You'd probably need a "sync stripper" in the path, since I don't think the convertors for VGA to [Foo] would create a valid signal given an SOG input.

    • jwz says:
      1

      I did quite a bit of lemacs development on an NCD xterm at what, 48kbps frame relay? Maybe 56? That was luxury after... you know... Obviously XScreenSaver was not ideal in that situation, but I think lemacs worked out pretty well. Redisplay was super tuned; I was way down near the metal counting bytes of X11 protocol for that. And I still used that slow-ass terminal at home through like... early 1997? So that's why Netscape 1.x and 2.x were fucking speed demons, because I had to use them with a dixie-cup-and-string between my computer and my monitor. "How do I make anim-GIFs play at 30fps when the CPU and the screen are communicating by smoke signal? Well, pull up a chair, kids..."

  3. Waider says:
    1

    I recall running Rocks on the root window of a NCD Xterminal because I enjoyed the random lurching that made it so much more interesting than your typical starfield. Lay a couple of xterms and a Lucid Emacs window over it and you've got my sometimes development setup circa 1994.

    • Waider says:
      1

      (also because I did not pay attention, I was not aware of the connection between lemacs and XScreensaver and probably XDaliclock until much later.)

  4. cdavies says:
    6

    You're not a hoarder? It blows my mind when I think of people who aren't hoarders. I've got PS/2 keyboards and mice for days. Hell, I've got keyboards that are daisy chained AT -> PS/2 -> USB that I still use. You want a rad 486 with a 2x CDROM that plugs in to the not-IDE connector on the sound card? I've got your hookup. A PCI card that has a PCMCIA controller on it that only supports one card, which is an external SCSI adaptor? I have that. Pre-standard 802.11b boards rated for 2Mbps? Check. I was sorting though a bunch of stuff today and I found a trove of PCI parallel port cards... just one port on a half width card which can't remember ever buying or using. Why do I have these?

    I am down to one VGA monitor now though, having finally gotten rid of the last CRT in the house. It's a terrible old 12" no brand LCD TV that happens to do VGA at 800x600 that I keep for just this kind of situation.

    • jwz says:
      5

      I certainly have hoarder impulses but I don't have that much storage space, so I do purge old crap pretty regularly, especially large old crap.

    • andy says:

      For reasons beyond my comprehension, the AOC 2560x1440 IPS LCDs that I'd using right now have VGA inputs.Haven't even checked if that works though, because HDMI and DP exist.

  5. Frank says:

    The drive noises are so soothingly nostalgic

    • jwz says:
      1

      Nice, thanks! That ISO also has two copies of XDaliClock: 1.05, which I have, and elsewhere the unpacked 1.0 version which I was missing...

    • jwz says:
      2

      And xbiff++! I had forgotten about that entirely.

      • Krisjohn says:

        I found some references to your contributions to pcal, but nothing that implies that the source for xscreensaver was posted to usenet.

        I did see that the announcement was cross-posted to fj.mail-lists.x-window and that "xsaver.tar.z" was listed in "Uploads to http://ftp.Germany.EU.net (and modified files) between
        Sun Oct 11 1992 and Sun Oct 18 1992", but I couldn't work out what to do with those bits of info.

        The problem is that CDROMs were compiled irregularly at that point in time, so there's no expectation that, for example, Walnut Creek will definitely have a CD with unix source code between August and December 1992. Also, the x11r5 archives I did find are all from the end of the date range for that release; 1994.  Linux distros themselves were being born right as you were working on the early versions and CDROM support was a work in progress.

  6. Nope says:

    I looked through some old Linux distros, and I'm reporting my negative results so future archeologists can can direct their efforts elsewhere.

    I first checked these old SLS releases, mounting FAT filesystems and checking tar files. I didn't see it.

    Then I checked Slackware. It looks like xscreensaver-3.17 was the first one they included, in Slackware 7.0.

  7. vince says:
    3

    congrats.  I recently had the 25th anniversary of a project just barely popular enough it still ships in Debian, but not exciting enough that anyone cared about the anniversary.  I did manage to dredge up the original posting from comp.os.linux.announce though as there's a surprisingly good archive of that from 1997 still just sitting there on whatever it is sunsite got archived to

    it's shocking the way the internet changed just between 1992 and 1997 though maybe a lot of that is down to it still being September

  8. Alan Ralph says:

    That VT220 font on your Usenet posts takes me back to my university days in the computer labs, late 80s and early 90s. Most were green or orange screen, there might have been a few terminals capable of doing colours (alongside the various standalone PCs). Most of the Macs were Plus or SE models, the few colour Macs were only for select people, as were the HP Apollo workstations and the solitary NeXTcube that arrived in my final year.

    I got access to Usenet around the same time, though I didn't use it much as I was still on dial-up at home (slow and expensive, thanks BT /sarcasm).

  9. David says:
    2

    You can download mbox archives from Usenet groups here:

    https://archive.org/download/usenet-comp

    While the messages do contain Google headers they seem to be untouched otherwise, and the original message-id from your announcement seems to be 9208171447.AA20797@expo.lcs.mit.edu.

    I became excited for a few seconds because comp.sources.x *does* contain a "xscreensaver", but it's a different one from 1989, written by Jonathan Kamens. I checked a few of the other comp.sources.* archives, but no luck so far...

    • David Engster says:

      Before someone else tries: I checked old Yggdrasil ISOs, it's not on there. Also, I didn't know that http://ftp.x.org actually points to export.lcs.mit.edu and still runs. There are contrib-*.tar.Z files in xorg/X11R5, but they also come up empty...

  10. Congratulations! Thank you so much for the fun with your code.

    Cheers!

    * best!

  11. Jeff Warnica says:

    xmodelines were a hella' thing.

    Its not clear if the consumer side of the world was better, or lazier, or had tighter tolerances. VGA was not really that configurable, so I'm not sure who was fucking up that it had to be that configurable.

    See: https://youtu.be/l7rce6IQDWs

  12. jwz says:
    2

    Also I am really amused at seeing bangpaths again.

    • Carlos says:

      Made me feel nostalgic too.  But I was ashamed, back in the day, because my bangpath address pointed to a Vax running VMS, the horror...

      C.

  13. LaSombra says:

    Congratulations! Another piece of software that lived longer than many would expect, I believe. :)

  14. Radosh231 says:

    I am using xscreensaver since 2014. Thank you all people who made and who are developing this software. I hope this project will live forever.

  • Previously