EDID

Dear Lazyweb, anyone know how to get the EDID of an NSScreen? CGDisplayIOServicePort now always returns NULL. "ioreg -lw0" shows them, but I don't know how to map an NSScreenNumber to whatever IOKit nonsense corresponds to that.
Tags: , , ,

Designs for a creature that can walk down a pipe.

rich_lord:

Previously, previously, previously, previously, previously, previously, previously, previously, previously, previously, previously, previously, previously, previously.

Tags: , , , , , , , , ,

XScreenSaver 6.04 out now


XScreenSaver 6.04 is out now, including iOS and Android.

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.)

Previously, previously, previously.

Tags: , , , , ,

Lumon

Lumon Industries Macrodata Refinement Terminal, online:

I had been waiting for this. Someone please port this to XScreenSaver. Someone who is not me.

Previously, previously, previously, previously, previously.

Tags: , , , ,

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)

Previously, previously, previously, previously.

Tags: , , , ,

XScreenSaver 6.03 out now


XScreenSaver 6.03 is out now, including iOS and Android.

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/driver/test-xinput --grab". The logs printed should make the problem extremely clear. Update: I was mistaken, nevermind.

  • 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?
Tags: , , , , , , ,

Great moments in visualization

I was examining some data, and these surprisingly cool looking images popped out. I'll bet you can't guess what this is. But go ahead, give it a try!


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.

Previously.
Tags: , ,

Software Library: Screensavers

Were you looking for an emulated collection of promotional material for now-defunct media properties that sully the good name of screen savers? Internet Archive has you covered!

"Screensavers continued to be made and sold long after the issue was a problem, because they were enjoyable to look at."

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

Extremely soothing polyhedra

Anthony James:



Previously, previously, previously, previously, previously, previously, previously.

Tags: , , , ,

X11 multi-head

Lazyweb, how do I get a Pi 4 running Raspbian 11 into X11 multi-head mode, meaning displays :0.0 and 0.1, rather than display :0.0 spanning both monitors?

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
Tags: , ,