Desktop "slideshow" xml transistion does not happen

Hi there.
I am working on a few wallpapers and want to make them into a slideshow. The xml looks like this:

<?xml version="1.0"?>
<background>
  <!-- This animation will start at midnight -->
  <starttime>
    <year>2020</year>
    <month>10</month>
    <day>03</day>
    <hour>00</hour>
    <minute>00</minute>
    <second>00</second>
  </starttime>
  <!-- 00:00 -> 05:59 -->
  <static>
    <duration>21540.0</duration>
    <file>/usr/share/backgrounds/archlinux-mixbranding/archlinux-ph.svg</file>
  </static>
  <!-- 05:59 -> 06:00 -->
  <transition type="overlay">
    <duration>60.0</duration>
    <from>/usr/share/backgrounds/archlinux-mixbranding/archlinux-ph.svg</from>
    <to>/usr/share/backgrounds/archlinux-mixbranding/archlinux-amz.svg</to>
  </transition>
  <!-- 06:00 -> 11:59 -->
  <static>
    <duration>21540.0</duration>
    <file>/usr/share/backgrounds/archlinux-mixbranding/archlinux-amz.svg</file>
  </static>
  <!-- 11:59 -> 12:00 -->
  <transition type="overlay">
    <duration>60.0</duration>
    <from>/usr/share/backgrounds/archlinux-mixbranding/archlinux-amz.svg</from>
    <to>/usr/share/backgrounds/archlinux-mixbranding/archlinux-eg.svg</to>
  </transition>
  <!-- 12:00 -> 17:59 -->
  <static>
    <duration>21540.0</duration>
    <file>/usr/share/backgrounds/archlinux-mixbranding/archlinux-eg.svg</file>
  </static>
  <!-- 17:59 -> 18:00 -->
  <transition type="overlay">
    <duration>60.0</duration>
    <from>/usr/share/backgrounds/archlinux-mixbranding/archlinux-eg.svg</from>
    <to>/usr/share/backgrounds/archlinux-mixbranding/archlinux-nf.svg</to>
  </transition>
  <!-- 18:00 -> 23:59 -->
  <static>
    <duration>21540.0</duration>
    <file>/usr/share/backgrounds/archlinux-mixbranding/archlinux-nf.svg</file>
  </static>
  <!-- 23:59 -> 00:00 -->
  <transition type="overlay">
    <duration>60.0</duration>
    <from>/usr/share/backgrounds/archlinux-mixbranding/archlinux-nf.svg</from>
    <to>/usr/share/backgrounds/archlinux-mixbranding/archlinux-ph.svg</to>
  </transition>
</background>

This seems to work fine. But there are a few problems

I start off at 00:00, so the transtitioning should start at 21540s later, at 5:59, but it wont start at that time, but somewhere in 6:02-6:05. The transitioning should run for a minute, but it does not run at all, it jumps directly to the next wallpaper.

Is something wrong with my xml, or is it that gnome-shell is not that strict when it comes to checking time?

That’s right. Gnome Shell checks whether to change the background at specified intervals, not continuously.
The time interval depends on the value of the “duration” tag. The greater the duration, the less frequently it checks. For a value 21540, the shell refreshes the background every 5 min 38 sec (about). Depending on the time the program was started, the discrepancy may be several minutes.

This is Gnome bug - crossfade transition works only with JPEG images. PNG and SVG not.
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/740

1 Like

Ahh thank you. Thats good to know!. Looks like it might be a good idea to convert from svg for now.