Question
In Linux, I can have xmatrix run in a terminal window using this command:
sudo /usr/lib/xscreensaver/xmatrix -delay 20000 -small -density 40 -trace
I want to use it in GeekTool but can’t get it to run in either a GeekTool shell or a terminal window. I know the path is different on OS X but the actual command won’t run. Ideas or thoughts will be greatly appreciated.
Answer
The fun part here is that there’s two XScreenSaver distributions; one for X11 and one for Mac OS X. The bad news is that you can’t really do that with the OS X fork. But fear not, dear supplicant, you can get there from here.
If you visit jwz.org and download the source code instead of the OS X version. As is customary, you need to scatter the requisite amount of chicken blood (other fowl will not do), mixed with a pinch or two of kosher salt, and do the ./configure-make-make-install tango, leading with the right foot first.
$ tar zxf xscreensaver-5.01.tar.gz
$ cd xscreensaver-5.01
$ ./configure
[ ... ]
$ make
[ ... ]
$ sudo make install
If your a more advanced tangoer, you can lead with your left, but that’ll install somewhere other than /usr/local. If you did everything right, it compiles completely cleanly and the screensavers wind up in /usr/local/libexec/xscreensaver, and they behave exactly like you want them to.
Almost.
They require X11, so you need that installed. I mentioned that, right? I’m pretty sure I did. If you have it, just crank it up and wipe the chicken blood off, and enter whatever command you want.
$ /usr/local/libexec/xscreensaver/xmatrix -delay 20000 -small -density 40 -trace
So, a few things to consider. X11’s default xterm is lame and doesn’t support any of the alpha transparency or other cool features of the Terminal, so you kind of have to give up all that stuff.
Almost.
You can get around this with the DISPLAY environment variable. In your terminal and shell of choice, set DISPLAY to 0.0.0.0:0 while X11 is running, and any X11-based tools (including xscreensavers) will be directed correctly. For bash users:
$ export DISPLAY=0.0.0.0:0
Audio is another consideration. Apple’s X11 implementation doesn’t support sound, to my knowledge, so xscreensavers with sound won’t make any. Granted, I don’t really use X11 much, so maybe I’m wrong and there’s some way to get it working.
If you set DISPLAY to 0.0.0.0:0, it will not work (by default). Set DISPLAY to just :0 . If you include the “0.0.0.0” then you’re telling any X11 apps to use TCP to talk to the X server, which is disabled by default. furthermore, you ought not set it to 0.0.0.0 anyway, but instead use 127.0.0.1 which refers to your specific machine.
Also, X11 does not support sound. Not just Apple’s X11, but X itself does not support sound. It has no concept of sound. Many windowing environments (KDE, GNOME, &c.) have sound support, but not through X11. They include /other/ sound software.
JP
Ought not, maybe. But I think you’ll find, contrary to your statement, that it actually works just fine. Even by default.
JC thanks so much for this. I submitted this question and thought that no one would ever pick it up. In the meantime, I found a program, Wallsaver, that works too.
You should be able to do this w/ Quatrz Composer too…
Post new comment