Você pode usar um xscreensaver como papel de parede e o glslideshow faz o que você deseja.
Embora tenha uma opção -root
, você normalmente precisará do xwinwrap para que ele funcione corretamente:
xwinwrap -ov -fs -- \
/usr/lib/xscreensaver/glslideshow -window-id WID -zoom 100
# location of xscreensavers may vary between distros
A opção -zoom
define as imagens para preencher a tela, para que elas não se movimentem.
Você não pode selecionar manualmente uma imagem com esta solução, mas você pode definir um diretório, de onde o glslideshow pegará imagens aleatórias (recursões em subdiretórios). Isso pode ser feito na guia "avançado" em xscreensaver-demo
ou criando um arquivo .xscreensaver
em seu diretório pessoal com o seguinte conteúdo:
chooseRandomImages: True
imageDirectory: /your/wallpaper/path
Veja a manpage do glscreensaver para mais opções para personalizar.
Sem xwinwrap, o glslideshow pode fazer coisas estranhas, como desenhar sobre todas as janelas, ao usar composição (por exemplo, com xcompmgr). Mas ao desabilitar a composição, a imagem da raiz só é redesenhada quando se move, então você tem que configurar o glslideshow para fazer transformações contínuas de imagem ou você terá caixas pretas onde as janelas estão desde o último redesenho. Às vezes funciona, mas é mais seguro usar o xwinwrap.