After finding a slick way to incorporate a screensaver for the console, I’m keeping my eyes open for other options in the splashy-text-thingy department.
Each one is more or less an analogue for an xscreensaver display, albeit somewhat chunky and text-built. But even at 550Mhz, it’s doing quite well in the framerate department.
One small note if you run a purely X-less machine like me: In Crux and probably in other distributions, installing libcaca can call in some packages that fall under the X umbrella. I frown upon that since I have discovered how nice it is to omit anything X-governed, but I did build the package on a machine with X installed, which is easier than trying to filter through the dependencies and make it work.
Once the package itself is built you can transplant it to an X-less machine, and the only loss of function is when the caca libraries need to display an image (like a jpg photo) translated into their text-style output. But I have fim for displaying images; I wouldn’t use caca for that anyway.
No, what I want out of caca is that cache of demo-style programs. That, coupled with cmatrix (and maybe asciiquarium, if I could ever figure out the dependencies ) makes for a nice, small suite of screensavers.
Now: How about triggering them randomly from within screen?
Easier done than said, really. This is an exceedingly primitive script that creates a random number, selects a screensaver by case, and uses that as the blanker for screen.
RANGE=4 number=$RANDOM let "number %= $RANGE" case $number in 0) cmatrix -ab -u 2 ;; 1) cacaball ;; 2) cacaplas ;; 3) cacafire ;; esac
(I omitted the moire screensaver because it seems somehow exceptionally taxing. I had a hard time regaining the system’s attention when it was running.) Please feel free to improve upon this; as I have mentioned before, I have all the programming skills of a rock. As in, “Hit it with a rock, and maybe it will start working.”
The next step is to adjust your .screenrc file to point to the script with the blankerprg option, like this:
or input that line directly into screen with CTRL+A : (that’s control-plus-a, followed by a colon).
Depending on your idle variable, the script should throw out a random “screensaver,” when it reaches the timeout.
In the mean time, I’m going to keep looking for more console-based autonomous screensaverish doodads. Maybe there’s a category or a list somewhere. …