8

I would like my desktop wallpaper to fade between transitions instead of a cut. Is there a way to do this with feh? Maybe using xcompmgr or compton?

If not is there a way of doing it without changing to a different wm? I am using awesome at the moment.

Gilles 'SO- stop being evil'
  • 807,993
  • 194
  • 1,674
  • 2,175
ashleysmithgpu
  • 4,287
  • 3
  • 21
  • 19
  • I think if you use awesome and feh opens a new window of each image (and close the prev window), it's possible. Check https://awesome.naquadah.org/wiki/Signals#client - if your question is actually now :) – uzsolt Jun 24 '13 at 14:56
  • Not sure it would help for wallpaper issues, but for search's sake, [impressive](http://impressive.sourceforge.net) is `feh` alternative with transitions. – Skippy le Grand Gourou Sep 11 '18 at 16:33

2 Answers2

2

You can use a xscreensaver as a wallpaper, and glslideshow does what you want. Although it has a -root option, you will usually need xwinwrap for it to work correctly:

xwinwrap -ov -fs -- \
    /usr/lib/xscreensaver/glslideshow -window-id WID -zoom 100
# location of xscreensavers may vary between distros

The -zoom option sets the images to fill the screen, so they don't pan around.

You can not manually select an image with this solution, but you can set a directory, from where glslideshow will take random images (it recurses into subdirectories). This can either be done on the "advanced" tab in xscreensaver-demo or by creating a file .xscreensaver in your home directory with the following content:

chooseRandomImages: True
imageDirectory: /your/wallpaper/path

See the manpage of glscreensaver for further options to customize.


Without xwinwrap, glslideshow may do strange things, like draw over all your windows, when using compositing (e.g. with xcompmgr). But when disabling compositing, the root image is only redrawn when it moves, so you either have to set glslideshow to do continuous image transformations or you will have black boxes where windows have been since the last redraw. Sometimes it works, but it is safer to use xwinwrap.

crater2150
  • 3,836
  • 2
  • 22
  • 26
1

If you add imagemagick into the equation, then the answer to your question is yes. What follows is what could be a rather crude implemenation:

mv current.bg old.bg
imagemagick convert old.bg -fill black -colorize 50% transition.bg
feh --bg-scale transition.bg
imagemagick convert new.bg -fill black -colorize 50% transition.bg
feh --bg-scale transition.bg
feh --bg-scale new.bg
mv new.bg current.bg

Still, though, with imagemagick your options are pretty wide open.

mikeserv
  • 57,448
  • 9
  • 113
  • 229