我已经能够将 Xscreensaver 破解到我想要的外观(非常感谢 luser droog 的帮助)。我添加了一些 Cairo 代码,因为单独使用 Xlib 很难实现我想要的。由于这对我来说只是一个 hack,我不打算分发它。
无论如何,当我在窗口中预览 Fuzzyflakes 时它看起来不错,但是当我全屏预览它时(就像任何好的屏幕保护程序一样)它给了我这个错误:
X error in fuzzyflakes:
X Error of failed request: BadMatch (invalid parameter attribute)
Major Optcode of failed request: 139 (RENDER)
Minor optcode of failed request: 4 (RenderCreatePicture)
Serial number of failed request: 528
Current serial number in output stream: 1654
这里有一些进一步的信息。我使用的是 Linux Mint 14,64 位版本。我正在使用 nVidia 专有驱动程序,版本 304.88。我不得不破解由 xscreensaver 配置脚本生成的 Makefile。我将 Makefile 的第 800 行更改为:
fuzzyflakes: fuzzyflakes.o $(HACK_OBJS)
$(CC_HACK) `pkg-config --cflags cairo` -g -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS) -lcairo -lm
有关完整的源代码,您可以查看此处。