XScreenSaver 5.38

XScreenSaver 5.38 is out now, including iOS and Android.

There are many minor improvements, such as: BSOD now accepts Dunning-Krugerrands. But only one new hack this time, Esper. I'd been meaning to write this for years, and finally got around to it in protest of a certain sequel.

Hacks like this are tricky because it's challenging to get lo-fi fuzz effects out of OpenGL's sharp-edged way of doing things. That sort of thing is easier if you can write in the GLES2 shader language, but alas, there's no way to do that and still maintain backward compatibility with old X11 desktops.

The Android version is much improved, again thanks to the hard work of Dave and Dennis. It should also work properly on Android TV now.

Some bad Android news, though: at some point since the previous release, some piece-of-shit within the Android tool chain decided to silently delete my .keystore file. It seems that this happened more than six months ago, so it has expired from my off-site backups too. This means that I no longer have the signing key that I previously used on the Google Play store, and that means that they won't let me upload a new version without changing the name of the app. That's stupid, so I'm not going to do that. I'm just going to stop uploading new versions to the Google store instead. You can install the APK file directly from my site. It does exactly the same thing, except that you won't get auto-updates. Bummer.

Tags: , , , , , , ,

46 Responses:

  1. koala says:

    F-Droid?

  2. J. Peterson says:

    Wait, their toolchain puts critical signing data in a hidden file?
    I can't even...

    • jwz says:

      No it wasn't a hidden file. But they decided to arbitrarily change the default file extension so I'm assuming some upgrade or other helpfully "migrated" it or something. Android development makes late-90s Gnome development feel polished.

  3. Nick Lamb says:

    Maybe try asking one of the people you previously gave the keystore file to by accident because you somehow didn't realise it was your private keys? Or did you create a separate keystore for each project and only leak some of them?

  4. PEAK says:

    GOOG used to be C001 decade ago. Not anymore. Analphabet, Incorporated sux.

  5. robert_ says:

    BTW when compiling on Ubuntu 17.10, I still get the error message implying it's not using the built in xmu in the absence of libxmu (solved if I install libxmu-dev myself).

    • jwz says:

      Figuring out the random assortment of dev packages you need to install would require some magical neural net shit or something. That's why my compilation instructions are basically "good luck with that".

  6. pavel_lishin says:

    Hm, mine seems to not want to load any of the images from any folder I specified:

    • jwz says:

      Someone else reported that too. Is it only failing with esper, or with other image loaders like glslideshow? Check for error messages from xscreensaver-getimage.

      • someone_else says:

        Seems to be localized to Esper. I tried with with several of the other image loaders. They all worked as expected. Also, the preview thumbnail in macOS System Prefs DOES (sometimes) display the images correctly, and "Preview" also does (sometimes).

        In other words - it's erratic as hell.

        • jwz says:

          Well, I've forgotten how to extract the logs from newer macOSses since the answer is (usually) no longer /var/log/system.log (though that is constantly filling with useless warnings from built-in daemons!) but if you find an actual error message somewhere let me know.

          • dzm says:

            I'm seeing a lot of these in /var/log/system.log:

            Dec 21 01:17:26 dzm-mbpro System Preferences[68674]: objc[68674]: Class InvertedSlider is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x114989728) and /Library/Screen Savers/Tessellimage.saver/Contents/MacOS/Tessellimage (0x116606488). One of the two will be used. Which one is undefined.
            Dec 21 01:17:26 dzm-mbpro System Preferences[68674]: objc[68674]: Class GlobalDefaults is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x114989778) and /Library/Screen Savers/Tessellimage.saver/Contents/MacOS/Tessellimage (0x1166064d8). One of the two will be used. Which one is undefined.
            Dec 21 01:17:26 dzm-mbpro System Preferences[68674]: objc[68674]: Class PrefsReader is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x1149897c8) and /Library/Screen Savers/Tessellimage.saver/Contents/MacOS/Tessellimage (0x116606528). One of the two will be used. Which one is undefined.
            Dec 21 01:17:26 dzm-mbpro System Preferences[68674]: objc[68674]: Class SimpleXMLNode is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x114989818) and /Library/Screen Savers/Tessellimage.saver/Contents/MacOS/Tessellimage (0x116606578). One of the two will be used. Which one is undefined.
            Dec 21 01:17:26 dzm-mbpro System Preferences[68674]: objc[68674]: Class TextModeTransformer is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x114989890) and /Library/Screen Savers/Tessellimage.saver/Contents/MacOS/Tessellimage (0x1166065f0). One of the two will be used. Which one is undefined.
            Dec 21 01:17:26 dzm-mbpro System Preferences[68674]: objc[68674]: Class XScreenSaverConfigSheet is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x1149898b8) and /Library/Screen Savers/Tessellimage.saver/Contents/MacOS/Tessellimage (0x116606618). One of the two will be used. Which one is undefined.
            Dec 21 01:17:26 dzm-mbpro System Preferences[68674]: objc[68674]: Class XScreenSaverView is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x114989908) and /Library/Screen Savers/Tessellimage.saver/Contents/MacOS/Tessellimage (0x116606668). One of the two will be used. Which one is undefined.
            Dec 21 01:17:26 dzm-mbpro System Preferences[68674]: objc[68674]: Class XScreenSaverGLView is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x114989958) and /Library/Screen Savers/Tessellimage.saver/Contents/MacOS/Tessellimage (0x1166066b8). One of the two will be used. Which one is undefined.

            • jwz says:

              Yes, those mean nothing and are impossible to eliminate because the way ScreenSaverEngine works is insanely stupid.

              I think that not all of the messages are showing up there these days.

            • dzm says:

              More spew!

              When I open System Preferences -> Screen Saver -> Esper the preview thumbnail shows the color bars. So does the Preview. There is no new log spew.

              If I then select GLSlideshow I see spew (see below) show up in system.log. If I THEN select Esper the thumbnail view is correctly loading images and Preview is correctly loading images. When working as an actual screen saver (activated via Hot Corner) it does NOT load images.

              The log spew:
              Dec 21 13:44:17 dzm-mbpro System Preferences[86523]: objc[86523]: Class InvertedSlider is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x10d8cd728) and /Library/Screen Savers/GLSlideshow.saver/Contents/MacOS/GLSlideshow (0x1275bd6a8). One of the two will be used. Which one is undefined.
              Dec 21 13:44:17 dzm-mbpro System Preferences[86523]: objc[86523]: Class GlobalDefaults is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x10d8cd778) and /Library/Screen Savers/GLSlideshow.saver/Contents/MacOS/GLSlideshow (0x1275bd6f8). One of the two will be used. Which one is undefined.
              Dec 21 13:44:17 dzm-mbpro System Preferences[86523]: objc[86523]: Class PrefsReader is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x10d8cd7c8) and /Library/Screen Savers/GLSlideshow.saver/Contents/MacOS/GLSlideshow (0x1275bd748). One of the two will be used. Which one is undefined.
              Dec 21 13:44:17 dzm-mbpro System Preferences[86523]: objc[86523]: Class SimpleXMLNode is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x10d8cd818) and /Library/Screen Savers/GLSlideshow.saver/Contents/MacOS/GLSlideshow (0x1275bd798). One of the two will be used. Which one is undefined.
              Dec 21 13:44:17 dzm-mbpro System Preferences[86523]: objc[86523]: Class TextModeTransformer is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x10d8cd890) and /Library/Screen Savers/GLSlideshow.saver/Contents/MacOS/GLSlideshow (0x1275bd810). One of the two will be used. Which one is undefined.
              Dec 21 13:44:17 dzm-mbpro System Preferences[86523]: objc[86523]: Class XScreenSaverConfigSheet is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x10d8cd8b8) and /Library/Screen Savers/GLSlideshow.saver/Contents/MacOS/GLSlideshow (0x1275bd838). One of the two will be used. Which one is undefined.
              Dec 21 13:44:17 dzm-mbpro System Preferences[86523]: objc[86523]: Class XScreenSaverView is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x10d8cd908) and /Library/Screen Savers/GLSlideshow.saver/Contents/MacOS/GLSlideshow (0x1275bd888). One of the two will be used. Which one is undefined.
              Dec 21 13:44:17 dzm-mbpro System Preferences[86523]: objc[86523]: Class XScreenSaverGLView is implemented in both /Library/Screen Savers/Esper.saver/Contents/MacOS/Esper (0x10d8cd958) and /Library/Screen Savers/GLSlideshow.saver/Contents/MacOS/GLSlideshow (0x1275bd8d8). One of the two will be used. Which one is undefined.
              Dec 21 13:44:17 dzm-mbpro System Preferences[86523]: objc[86523]: objc_disposeClassPair: class 'GlobalDefaults_Esper_0x604000269ac0_2226964951' still has subclasses, including 'NSKVONotifying_GlobalDefaults_Esper_0x604000269ac0_2226964951'!

      • margaret says:

        Esper is failing (shows the test screen), GLSlideshow is not failing.

        (blorticus 569) $ sw_vers -productVersion
        10.13
        (blorticus 570) $ ./GLSlideshow.saver/Contents/Resources/xscreensaver-getimage-file ~/Pictures/random/
        helloween-nz.tiff

        (no xscreensaver-getimage-file in Esper to test.)

      • pavel_lishin says:

        I tried to reproduce the error, but of course it seems to work fine now.

    • jwz says:

      Oh duh, try this:

      cp -p /Library/Screen\ Savers/GLSlideshow.saver/Contents/Resources/xscreensaver-getimage-file /Library/Screen\ Savers/Esper.saver/Contents/Resources/

  7. Ben says:

    I remain in awe of the sheer noise of your rig in these videos. It sends me back to my youth, freezing my ass off in a datacenter - it feels like any second, someone is going to suggest tapping the drive with a ball-peen hammer to overcome the stiction after a power-down.

  8. Acousticm says:

    with the 5.38 on an iPhone 7 running the latest iOS I also get the issue that it cannot find my pictures. Neither in Esper, nor in any other like the GLSlideShow.
    This worked for 5.37.

    I also compiled a 5.38 on linux, and there it does work (and Esper is really cool ).

    • jwz says:

      Did you answer yes to "allow photo access"? Check if that is checked in the Settings app.

      • Acousticm says:

        Yes. It’s set to read/write .

        I had 5.37 before and that worked fine.

        Anything i can do to help debugging?

        • Acousticm says:

          i just upgraded to iOS 11.2.1 the problem is still there.
          I have 1200+ photos according to the iphone
          Settings app shows I have read/write access to the photo library
          I checked photopile (to pick a random app that uses photos), made sure that one is also set to use the photo library, but I still get the default test image, not my photo library .

          An hints are appreciated :)

          • dzm says:

            Works for me.

            XScreenSaver 5.38
            iOS 11.2.5 (beta 2 I think)

            Settings -> XScreenSaver has "Allow Photos Access" set to "Read and Write"

            XScreenSaver -> Esper -> "Info" (circle-i) shows "Use photo library" enabled

            I had to accept the "Wants to use photos" dialog the first time.

            Have you tried completely uninstalling XScreenSaver, then reinstalling it from the App Store?

            • Acousticm says:

              Thanks,
              yes I've tried all that, no such luck.
              But there are other wierd things with my iPhone . The phone itself says I have almost 12G free, iTunes seems to think the phone is for more than 100% full, so iTunes refuses to load any music on the phone. :(

              • dzm says:

                Perhaps you're enjoying the iTunes Race to the Bottom. Or perhaps iOS has found a new way to suck really hard.

                I'd bet that if you took it to a Genius Bar they'd recommend:

                1) Back up your iOS device to iCloud
                1a) Oh, you need a lot more storage that iCloud makes available. Sorry about that. Back it up to iTunes instead.
                2) Wipe the iOS device
                3) Restore your iOS device
                3a) Notice that network passwords and HealthKit data did not get restored.
                3b) Oh, yeah, sorry. Forgot to mention that your backups have to be encrypted in order to backup/restore that data. Sorry.

                Good luck.

  9. Mark Crane says:

    I wish you had hidden a tiny little bitcoin generator in there years ago, and could now take your digital currency and anoint yourself king of San Francisco.

  10. Bing Liu says:

    I'm a Linux user. Is there any changes of the font setting? After upgrade to 5.38, the xscreensaver's dialog font cannot be changed anymore. Thank you.

    • jwz says:

      Check the .ad file. I made some changes to how that works because I learned that Ubuntu doesn't install such basic, standard fonts as Helvetica by default.

Leave a Reply

Your email address will not be published. But if you provide a fake email address, I will likely assume that you are a troll, and not publish your comment.

You may use these HTML tags and attributes: <a href="" title=""> <b> <blockquote cite=""> <code> <em> <i> <s> <strike> <strong> <img src="" width="" height="" style=""> <iframe src="" class=""> <video src="" class="" controls="" loop="" muted="" autoplay="" playsinline=""> <div class=""> <blink> <tt> <u>, or *italics*.