4 min read

Dynamic wallpaper on Fedora with GNOME

I had this video of the German tech YouTuber iKnowReview in my subscriptions, and the only supported operating systems on his website kram.store were Windows and macOS, so I looked up how to achieve this on Linux. Let me describe my way how to do this here!

First I installed the tool DynamicWallpaperEditor from Flathub using:
flatpak install flathub com.github.maoschanz.DynamicWallpaperEditor

Then I purchased a Wallpaper pack from his shop, I chose Massiv Pro (6k) after watching his making of video:

Dynamischer Wallpaper Massiv
Hz-erwärmender Kaffee, Dynamische Wallpaper und anderer Kram.

Next I opened all Pictures in the Editor, reordered them and and selected the time intervals for each picture (I use it on my work laptop, so those times match my work hours best):

Finally I saved the XML file and used GNOME Tweaks to apply it:

Here is the final XML file I am using:

peterge@thinkpadt14s:~$ cat Pictures/Massiv_6k/Massiv.xml 
<!--
  Generated by com.github.maoschanz.DynamicWallpaperEditor 
  Optimized for 1.5h intervals starting at 06:00
-->
<background>
  <starttime>
    <year>2026</year>
    <month>6</month>
    <day>8</day>
    <hour>6</hour>
    <minute>0</minute>
    <second>0</second>
  </starttime>

  <!-- Image 1: 06:00 to 07:30 -->
  <static>
    <duration>5100.0</duration>
    <file>/home/peterge/Pictures/Massiv_6k/Massiv_6k_1.jpg</file>
  </static>
  <transition>
    <duration>300.0</duration>
    <from>/home/peterge/Pictures/Massiv_6k/Massiv_6k_1.jpg</from>
    <to>/home/peterge/Pictures/Massiv_6k/Massiv_6k_2.jpg</to>
  </transition>

  <!-- Image 2: 07:30 to 09:00 -->
  <static>
    <duration>5100.0</duration>
    <file>/home/peterge/Pictures/Massiv_6k/Massiv_6k_2.jpg</file>
  </static>
  <transition>
    <duration>300.0</duration>
    <from>/home/peterge/Pictures/Massiv_6k/Massiv_6k_2.jpg</from>
    <to>/home/peterge/Pictures/Massiv_6k/Massiv_6k_3.jpg</to>
  </transition>

  <!-- Image 3: 09:00 to 10:30 -->
  <static>
    <duration>5100.0</duration>
    <file>/home/peterge/Pictures/Massiv_6k/Massiv_6k_3.jpg</file>
  </static>
  <transition>
    <duration>300.0</duration>
    <from>/home/peterge/Pictures/Massiv_6k/Massiv_6k_3.jpg</from>
    <to>/home/peterge/Pictures/Massiv_6k/Massiv_6k_4.jpg</to>
  </transition>

  <!-- Image 4: 10:30 to 12:00 -->
  <static>
    <duration>5100.0</duration>
    <file>/home/peterge/Pictures/Massiv_6k/Massiv_6k_4.jpg</file>
  </static>
  <transition>
    <duration>300.0</duration>
    <from>/home/peterge/Pictures/Massiv_6k/Massiv_6k_4.jpg</from>
    <to>/home/peterge/Pictures/Massiv_6k/Massiv_6k_5.jpg</to>
  </transition>

  <!-- Image 5: 12:00 to 13:30 -->
  <static>
    <duration>5100.0</duration>
    <file>/home/peterge/Pictures/Massiv_6k/Massiv_6k_5.jpg</file>
  </static>
  <transition>
    <duration>300.0</duration>
    <from>/home/peterge/Pictures/Massiv_6k/Massiv_6k_5.jpg</from>
    <to>/home/peterge/Pictures/Massiv_6k/Massiv_6k_6.jpg</to>
  </transition>

  <!-- Image 6: 13:30 to 15:00 -->
  <static>
    <duration>5100.0</duration>
    <file>/home/peterge/Pictures/Massiv_6k/Massiv_6k_6.jpg</file>
  </static>
  <transition>
    <duration>300.0</duration>
    <from>/home/peterge/Pictures/Massiv_6k/Massiv_6k_6.jpg</from>
    <to>/home/peterge/Pictures/Massiv_6k/Massiv_6k_7.jpg</to>
  </transition>

  <!-- Image 7: 15:00 to 16:30 -->
  <static>
    <duration>5100.0</duration>
    <file>/home/peterge/Pictures/Massiv_6k/Massiv_6k_7.jpg</file>
  </static>
  <transition>
    <duration>300.0</duration>
    <from>/home/peterge/Pictures/Massiv_6k/Massiv_6k_7.jpg</from>
    <to>/home/peterge/Pictures/Massiv_6k/Massiv_6k_8.jpg</to>
  </transition>

  <!-- Image 8: 16:30 to 06:00 -->
  <static>
    <duration>48300.0</duration>
    <file>/home/peterge/Pictures/Massiv_6k/Massiv_6k_8.jpg</file>
  </static>
  <transition>
    <duration>300.0</duration>
    <from>/home/peterge/Pictures/Massiv_6k/Massiv_6k_8.jpg</from>
    <to>/home/peterge/Pictures/Massiv_6k/Massiv_6k_1.jpg</to>
  </transition>
</background>

Result

The result looks like this:

Small Easter egg: I set this post to be published at this date, matching Kilian's number perfection (video/podcast length etc.) 🤪

Author: Peter Gerhards