您可以使用 xscreensaver 作为壁纸,glslideshow 可以满足您的需求。尽管它有一个-root
选项,但您通常需要xwinwrap才能使其正常工作:
xwinwrap -ov -fs -- \
/usr/lib/xscreensaver/glslideshow -window-id WID -zoom 100
# location of xscreensavers may vary between distros
Run Code Online (Sandbox Code Playgroud)
该-zoom
选项将图像设置为填满屏幕,这样它们就不会平移。
您无法使用此解决方案手动选择图像,但您可以设置一个目录,glslideshow 将从该目录中获取随机图像(它递归到子目录)。这可以在“高级”选项卡上完成,也可以通过在主目录中xscreensaver-demo
创建一个包含以下内容的文件来完成:.xscreensaver
chooseRandomImages: True
imageDirectory: /your/wallpaper/path
Run Code Online (Sandbox Code Playgroud)
有关更多自定义选项,请参阅 glscreensaver 的联机帮助页。
如果没有 xwinwrap,glslideshow 可能会做奇怪的事情,例如在使用合成(例如使用 xcompmgr)时在所有窗口上绘制。但是,当禁用合成时,根图像仅在移动时才会重绘,因此您必须设置 glslideshow 来进行连续图像转换,否则自上次重绘后窗口所在的位置将出现黑框。有时它可以工作,但使用 xwinwrap 更安全。