EDID
Designs for a creature that can walk down a pipe.
Previously, previously, previously, previously, previously, previously, previously, previously, previously, previously, previously, previously, previously, previously.
XScreenSaver 6.04 out now
I wrote two new hacks this time, Nakakin and ChompyTower.
I've long been fascinated by the Nakagin Capsule Tower, and since it is being demolished this month, I figured I'd write a screen saver about it.
I also recently picked up a couple of very cool books: Nakagin Capsule Tower, The Last Record and Nakagin Capsule Style. I don't speak Japanese, but the photos are great!
Other notable stuff:
- On X11, I figured out how to work around the antisocial idiocy inflicted upon us by the GNOME and KDE built-in screen lockers, so it's no longer necessary for each user to hack GNOME and KDE in order for video players to inhibit screen blanking. See the comments at the top of xscreensaver-systemd.c for the vile details.
The installation instructions in the man page reflect this: let me know if they seem inaccurate.
- You can now set your image directory to the URL of an Internet Archive "collection" and it might even work. I added special-case for scraping IA, which was necessary because their implementation of RSS feeds is criminally negligent. See the comments in xscreensaver-getimage-file for the vile details.
And if you know who is responsible for the code on their end, please try to convince them to make their RSS feeds not be completely useless. (My contact there just laughs and backs away like it's the third rail.)
Lumon
I had been waiting for this. Someone please port this to XScreenSaver. Someone who is not me.
COVID winding
"COVID winding down" (taps ear piece) sorry, I'm being told that should be "COVID winding rule even-odd."I have Safari configured to use Reader Mode by default, and this is what one of NYT's "interactive" graphics looked like. It's beautiful.
(Preferences / Websites / Reader / Other / On)
XScreenSaver 6.03 out now
I wrote two new hacks this time:
Squirtorus, which I can't really explain or justify except that it came to me in a dream. The pandemic has been weird, ok?
And also MapScroller, which suggested itself following my investigations of OpenStreetMap while trying to figure out how to plot a heat map of my ticket sales.
MapScroller is not available on iOS or Android because network access happens through a Perl subprocess, since doing HTTPS from C code is untenable.
Also Sphere Eversion has a freaky new mode.
Two years ago I said: "fixed rotation on iOS 13 (Apple incompatibly breaks rotation every two years as a matter of policy)". As it has been two years, they broke it again, and I fixed it again. As foretold by prophecy.
And on X11, by popular demand, holding down backspace in the password entry field will clear it. For some reason the XInput2 extension does not send keyboard auto-repeat events, so I had to special case this in the client, like an animal.
A couple of things I could use some help with:
-
Speaking of XInput2, if you are the sort of person who is concerned about the fact that this popular and universally-deployed component of the X server is reproducibly returning uninitialized and/or freed data from server memory to any old client that connects, might I recommend that you build and run "xscreensaver/Update: I was mistaken, nevermind.driver/ . The logs printed should make the problem extremely clear.test-xinput --grab" - If you are the sort of person who cares about localization: the eldrich horror known as "intltoolize" has gurgled to the surface again: if you upgrade autoconf beyond 2.69_5, then the po/ directory stops working. Something has angered the many-angled ones who squat and gibber at the bottom of the potfile. So if you could install a recent autoconf, Make It Go, and send me a patch, that would be great.
I'm sorely tempted to just delete the po/ directory entirely and let each distro figure that shit out on their own. I've just about had it.
As I said years ago in a comment in configure.ac:
This IT_PROG_INTLTOOL nonsense has so many self-modifying levels of insanity that it must have been written by RMS, or an equally demented protégé. Why does po/Makefile.in.in exist?? Why does aclocal.m4 exist?? Why can't I ever upgrade it without everything breaking?? Won't someone please have mercy on us all and write a normal po/Makefile.in that uses wildcards, and write a sane set of rules to detect gettext(3) and msgfmt(1) and just do the obviously straightforward thing?
Great moments in visualization
Update:
Well it's from a screen saver, of course, specifically Dymaxion Map.
These images are maps translating Equirectangular coordinates (longitude × latitude) to XY coordinates on a flat image containing the triangles of the traditional Dymaxion projection. Input XY are the pixel positions on the input Equirectangular image; output XY coordinates for the Dymaxion image are packed into the RGBA color values at 16 bits each, though I had to delete the alpha channel (and thus the top 8 bits of Y) to make anything show up. The two images represent the same mapping, but the second one is at half the resolution of the first: the colors and shapes are different because the coordinate space is smaller, and smaller values affect the coloration.
It's not a particularly useful visualization -- it clarifies nothing -- but it looks cool.
Software Library: Screensavers
"Screensavers continued to be made and sold long after the issue was a problem, because they were enjoyable to look at."
Extremely soothing polyhedra
X11 multi-head
If you answer, "Here's something that works on my machine that is not a Pi 4" that will not help me.
I gather that the video driver I want is called "modesetting", but if I use that, I can only ever get a single spanning screen that is 3200x1200x24. If I use the "fbdev" driver, I can get 2 screens, but both are 640x480x16.
Here's some crap that does not work when dropped into /usr/share/X11/xorg.conf.d:
Section "ServerLayout"
Identifier "Dual"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
EndSection
Section "Monitor"
Identifier "Monitor0"
EndSection
Section "Monitor"
Identifier "Monitor1"
EndSection
Section "Device"
Identifier "Card0"
Driver "modesetting"
# Driver "fbdev"
Option "Monitor-HDMI-1" "Monitor0"
Option "Monitor-HDMI-2" "Monitor1"
Option "ZaphodHeads" "HDMI-1,HDMI-2"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
# DefaultDepth 24
# SubSection "Display"
# Modes "1920x1080"
# Modes "1280x720"
# Depth 24
# EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Card0"
Monitor "Monitor1"
# DefaultDepth 24
# SubSection "Display"
# Modes "640x480"
# Depth 24
# EndSubSection
EndSection
(Why someone would voluntarily run X11 this way in this modern world I cannot fathom, but here we are.)
Update: I have reached the conclusion that it is not possible to make X11 do this on Raspberry Pi 4 hardware. However, I was able to debug the thing I was trying to debug by running a nested server with:
- Xephyr :1 -ac -screen 1280x720 -screen 640x480x8



