XScreenSaver 5.30

XScreenSaver 5.30 out now. iOS version, too.

I wrote a new screen saver, WindupRobot. This is one of my finest, if I do say so myself. You saw a sneak preview of it last month when I was learning Maya. The original plan was to 3d-print this robot to use for the prize statues in the DNA Lounge Cocktail Robotics Grand Challenge (happening this Sunday!) but that didn't work out, and instead we built the statues by hand. But that 3d model did not go to waste, because, screen saver!

I also put an absurd, OCD-level of work into the Lament saver. When I first wrote that thing, back in 1998, I didn't have any 3D modeling software, so the way I cracked the problem was: 1) I modeled it out of clay, cutting apart a cube until I understood how it al fit together, and how the visual effects crew had cheated; 2) then I modeled it out of paper; 3) then I measured that paper, and typed in the numbers. So, anyway, it's 2014 now and flushed with my success at managing to export Maya and Sketchup models in a form that XScreenSaver can ingest, I made new models, re-built all the texture maps and added a bunch of models and behaviors that were missing, like "tube", "sphere" and most importantly, "Leviathan". You all laughed at me for the research I did on this a couple weeks ago, but who's laughing now, punk?

Also, using your finger to spin the various models around on iOS has inertia now. It's soothing.

And finally, I think the OSX auto-updater finally works. It was broken in a very unfortunate way: when it ran, it would give you a dialog showing that an update was available; download it; prompt you for the admin password; and then not actually update anything. Actually it updated the "XScreenSaverUpdater.app" program but not any of the savers! Doh. But I think that it works now. This time for sure. I think.

(If the auto-updater dialog popped up for you before 10:15pm on Sep 10 PDT, it probably didn't work and you're still running 5.29. If it ran later than that -- I think it worked!)

Tags: , , , ,

41 Responses:

  1. Cindy says:

    WebCollage doesn't work.

  2. Ron Waldon says:

    Great work! I've always been a big fan of the Lament Configuration and source Hellraiser films. :D

    I noticed that the 5.30 pkg for OSX still gets blocked by GateKeeper. Have you investigated having your installer signed with your developer certificate? Is it possible to use the one you have for the iOS App Store?

    Also, I'd love to hear/read your thoughts regarding the Mac App Store. Some developers seem to be disappointed by it (Atlassian), and others seems to thrive in it (OmniGroup). Where do you lie on this spectrum?

    I promise I will never ask about a Windows version, but I do wonder if Android has ever crossed your mind? :)

    Keep up the great work!

    • jwz says:

      No, you can't sign OSX apps with an iOS cert. I tried. So to make that gatekeeper warning go away for you would cost me an additional $100/year, every year.

      So you can just click "OK" is what I'm saying.

      App stores are bullshit. I don't need some rent-seeking middleman interposing himself between me and my audience, tithing us just to give you the privilege of clicking the download link for my software on hardware that you purportedly own.

      "If you want to make this irritating dialog box go away, pay us $100/year forever." It's extortion.


      Last time I tried to install an Android development environment it was a labyrinthine joke, and that was even before you got as far as trying to write in C instead of Java, so I'm afraid that I still have zero fucks to give for that.

      • mip says:

        I've heard good things about the Qt Creator package for Android. It's supposedly a much better environment.

        Also, it's C++ and not Java so there's that.

      • Lars Schotte says:

        "I don't need some rent-seeking middleman interposing himself between me and my audience" thats exactly how musicians/performers/singers are feeling about the content mafia.

  3. add "search" to scrolling list page on iOS?

    • jwz says:

      What would you want that to search on? Also I'm not sure where to put that where it wouldn't make the interface be weirdly cluttered.

  4. eSyr says:

    config.status: error: cannot find input file: `driver/xscreensaver-demo.glade2.in'

    • Joe says:

      Not an real fix, but I ran into this, and found creating an empty file with that name worked for me.

      Be warned that I only downloaded the source to look at the more recent hacks (Debian is still on 5.15). AFAIK glade is used for the UI stuff (xscreensaver-demo), therefore there's a good chance that the UI will fail, so you may not want to rely on this if you plan on doing a full install.

      • eSyr says:

        Well, i've provided glade file from 5.29 and it kinda worked (i mean, xscreensaver-demo), the message was rather for feedback purporses.

        Btw, in sid there is 5.26 and you always can build your own package with apt-get build-dep, apt-get source, replacing source tarball and dpkg-buildpackage (or using pbuild, which is better, but i still have to figure out how to use it effectively).

      • eSyr says:

        There's also missing configure check for libXmu presence:

        xscreensaver-5.30/hacks/screenhack.c:239: undefined reference to `XmuPrintDefaultErrorMessage'

        • jwz says:

          It's in utils/xmu.[ch]. Something went wrong with your ./configure I guess.

          • eSyr says:

            Well, looks like Debian Wheezy is pretty fucked up, as configure comment states: it has separate libxmu-headers package, so check against compiling with X11/Xmu/Error.h included passes successfully. I suppose it's better to (or, in addition) try to link against -Xmu.

    • jwz says:

      Oops. Updated tar file.

  5. Ed says:

    Thank you for continuing to work on this, it is still fun and cool. I remember emailing you back in 1998/1999 about Lament crashing X on my linux box, and you took the time to answer me and help. I appreciate it.

  6. Are you aware of this XScreensaver

  7. demcanulty says:

    Auto-installer worked perfectly, very convenient!

  8. Appreciate the updates! WindupRobot is my new favorite screensaver :)

  9. You might want to add a check for /etc/X11/app-defaults, which is the default on Slackware, on mine it finds /usr/OpenMotif-2.1.32/lib/X11/app-defaults, which I had never even noticed was there (and am now purging from my motif-2.1.32 Slackware package).

  10. Also, at the risk of being nit-picky, gcc 4.5.2 craps out on the pragma in memscroller.c; "no pragmas allowed inside functions," so I moved the pragma out (still ifdefed with HAVE_SBRK) and it seems to work fine (running memscroller in its own window for quite a while with no issues).

  11. jdog says:

    WindupRobot is the best ever ^^

  12. pvg says:

    I also put an absurd, OCD-level of work into the Lament saver. [...]

    This sounds like a fun story. Did you start some other way that ended up not working (I dunno, orthographic sketches on paper or something) or were you just like, fuck it, I'll do it live/in clay?

    • jwz says:

      It was so long ago. I'm sure I doodled something first, but the clay idea came pretty fast, I think.

      • pvg says:

        Ah, that's too bad. Looking at the finished product (for way too long) your mistakenly overconfident inner nerd is yelling "I could have totally figured this out from basic geometry". So the 'and here I reached for my slab of clay' moment sounds entertaining and interesting.

  13. andr00 says:

    I, too, love winduprobot. I like that the robots have taken advantage of the ability to rotate their adorable chubby red arms to different orientations. This is their only opportunity to express their individuality. Well, that and their different ways of being unable to walk straight.

  14. Rhombus says:

    Running XScreenSaver 5.30 on a new mac laptop with Yosemite. When the adorable windup bots try to talk, all they ever say is "sh: xscreensaver-text: command not found". I verified that the xscreeensaver-text binary exists in the .saver package (in all of them I checked) and that I can launch it from terminal and have it return the appropriate text

    Here is one other instance of a guy complaining of the same problem: (http://arstechnica.com/civis/viewtopic.php?f=19&t=1259493).

    I only looked at a couple but this seems to be the case with any saver that calls xscreensaver-text. Thanks for the eye-candy. Any ideas?

    • jwz says:

      I haven't upgraded because fuck 10.10, but I'm told this fixes it:

      --- a/utils/textclient.c
      +++ b/utils/textclient.c
      @@ -99,9 +99,24 @@ launch_text_generator (text_data *d)
        XtAppContext app = XtDisplayToApplicationContext (d->dpy);
        char buf[255];
        const char *oprogram = d->program;
      -  char *program = (char *) malloc (strlen (oprogram) + 50);

      -  strcpy (program, "( ");
      +#ifdef HAVE_COCOA
      +  /* /bin/sh on OS X 10.10 wipes out the PATH. */
      +  const char *path = getenv("PATH");
      +  char *program = (char *) malloc (strlen (path) + strlen (oprogram) + 79);
      +  char *program = (char *) malloc (strlen (oprogram) + 65);
      +  *program = 0;
      +#ifdef HAVE_COCOA
      +  strcat (program, "export PATH=");
      +  strcat (program, path);
      +  strcat (program, "; ");
      +  strcat (program, "( ");
        strcat (program, oprogram);

        /* Kludge!  Special-case "xscreensaver-text" to tell it how wide

  15. Rhombus says:

  16. jfaulken says:

    BoxFit 5.30 on Yosemite doesn't open images correctly. It lets me choose a folder in the preferences panel but only ever uses the default color bars image. Tried to debug in XCode 6.1 SDK 10.10 but I couldn't get it to build (gives a handful of "Garbage collection is no longer supported" errors).