Create a gist now

Instantly share code, notes, and snippets.

Embed
What would you like to do?
macOS Mojave dynamic background re-implement as GTK+ background slideshow. Background images are changed to reflect the time of the day.
<!-- Instructions:
- Download and unzip Mojave dynamic background here: https://files.rb.gd/mojave_dynamic.zip
- Save this xml file next to the Mojave background files
- Fix the path to the background images below (better using absolute path)
- Lastly, either:
+ GNOME: Use gnome-tweaks tool to select this XML as wallpaper (as default wallpaper settings won't let you choose wallpaper from custom path)
+ MATE: Go to background setting (in Appearance) > Choose +Add... > make sure **All files** filter is selected at the bottom right > Then choose mojave.xml
-->
<background>
<starttime>
<year>2014</year>
<month>01</month>
<day>11</day>
<hour>0</hour>
<minute>00</minute>
<second>00</second>
</starttime>
<!-- 00:00 -->
<static>
<duration>10795.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_15.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_15.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_16.jpeg</to>
</transition>
<!-- 03:00 -->
<static>
<duration>10795.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_16.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_16.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_1.jpeg</to>
</transition>
<!-- 05:00 -->
<static>
<duration>3595.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_1.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_1.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_2.jpeg</to>
</transition>
<!-- 06:00 -->
<static>
<duration>3595.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_2.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_2.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_3.jpeg</to>
</transition>
<!-- 07:00 -->
<static>
<duration>3595.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_3.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_3.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_4.jpeg</to>
</transition>
<!-- 08:00 -->
<static>
<duration>3595.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_4.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_4.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_5.jpeg</to>
</transition>
<!-- 09:00 -->
<static>
<duration>3595.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_5.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_5.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_6.jpeg</to>
</transition>
<!-- 10:00 -->
<static>
<duration>3595.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_6.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_6.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_7.jpeg</to>
</transition>
<!-- 11:00 -->
<static>
<duration>7195.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_7.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_7.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_8.jpeg</to>
</transition>
<!-- 13:00 -->
<static>
<duration>3595.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_8.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_8.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_9.jpeg</to>
</transition>
<!-- 14:00 -->
<static>
<duration>3595.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_9.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_9.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_10.jpeg</to>
</transition>
<!-- 15:00 -->
<static>
<duration>3595.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_10.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_10.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_11.jpeg</to>
</transition>
<!-- 16:00 -->
<static>
<duration>3595.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_11.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_11.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_12.jpeg</to>
</transition>
<!-- 17:00 -->
<static>
<duration>3595.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_12.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_12.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_13.jpeg</to>
</transition>
<!-- 18:00 -->
<static>
<duration>7195.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_13.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_13.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_14.jpeg</to>
</transition>
<!-- 20:00 -->
<static>
<duration>10795.0</duration>
<file>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_14.jpeg</file>
</static>
<transition type="overlay">
<duration>5.0</duration>
<from>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_14.jpeg</from>
<to>/home/thanh/Pictures/wallpapers/mojave-background/mojave_dynamic_15.jpeg</to>
</transition>
</background>
@shinenelson

This comment has been minimized.

Show comment
Hide comment
@shinenelson

shinenelson Jun 26, 2018

It would be great if you could replace /home/thanh with the environment variable $HOME or the alias ~ so that this gist is re-usable and works out of the box for anyone.

Also, another suggestion would be to use $HOME/Pictures/Wallpapers (with a capital 'W' for Wallpapers) as the source directory for the wallpapers. Idea : https://www.omgubuntu.co.uk/2017/04/fix-gnome-wallpaper-inconsistency.
Of course, this is completely a user's preference / choice.

It would be great if you could replace /home/thanh with the environment variable $HOME or the alias ~ so that this gist is re-usable and works out of the box for anyone.

Also, another suggestion would be to use $HOME/Pictures/Wallpapers (with a capital 'W' for Wallpapers) as the source directory for the wallpapers. Idea : https://www.omgubuntu.co.uk/2017/04/fix-gnome-wallpaper-inconsistency.
Of course, this is completely a user's preference / choice.

@shinenelson

This comment has been minimized.

Show comment
Hide comment
@shinenelson

shinenelson Jun 26, 2018

I was too hasty to comment to use the $HOME environment variable. I should've thought that this was an XML and not a shell script. My bad. I would like to give my apologies.

I was too hasty to comment to use the $HOME environment variable. I should've thought that this was an XML and not a shell script. My bad. I would like to give my apologies.

@Jacalz

This comment has been minimized.

Show comment
Hide comment
@Jacalz

Jacalz Jun 27, 2018

Thanks for this little near XML file, will definitely have a look at it to see if it works in Budgie desktop (it should theoretically)

Jacalz commented Jun 27, 2018

Thanks for this little near XML file, will definitely have a look at it to see if it works in Budgie desktop (it should theoretically)

@trongthanh

This comment has been minimized.

Show comment
Hide comment
@trongthanh

trongthanh Jun 29, 2018

@shinenelson That's OK. :) I intended to turn this into an installable package like https://github.com/ghisvail/gnome-backgrounds-bitday but don't have free time now and think that using current instruction sufficient.

@Jacalz Please do. And let us know. :)

Owner

trongthanh commented Jun 29, 2018

@shinenelson That's OK. :) I intended to turn this into an installable package like https://github.com/ghisvail/gnome-backgrounds-bitday but don't have free time now and think that using current instruction sufficient.

@Jacalz Please do. And let us know. :)

@mrprobot

This comment has been minimized.

Show comment
Hide comment
@mrprobot

mrprobot Jun 29, 2018

Maybe add the following to the description, to set the wallpaper without gnome-tweaks:

gsettings set org.gnome.desktop.background picture-uri "file:/home/USERNAME/Pictures/wallpapers/mojave-background/mojave.xml"

Is there a current folder variable for xml? Then you should use it instead the whole path and you can put the xml in the download folder. So users only have to download it, place it somewhere and set the wallpaper and don't have to change the xml.

Maybe add the following to the description, to set the wallpaper without gnome-tweaks:

gsettings set org.gnome.desktop.background picture-uri "file:/home/USERNAME/Pictures/wallpapers/mojave-background/mojave.xml"

Is there a current folder variable for xml? Then you should use it instead the whole path and you can put the xml in the download folder. So users only have to download it, place it somewhere and set the wallpaper and don't have to change the xml.

@Space-and-also-time

This comment has been minimized.

Show comment
Hide comment
@Space-and-also-time

Space-and-also-time Jun 29, 2018

I tried using it on Ubuntu Budgie and couldn't seem to get it working. I changed the file paths and selected the xml as the background with tweaks. The background is black on my desktop but in my settings app under background, it shows the Mojave image and even a message saying that it changes over time. The background remains black however on logout, the desktop will display the Mojave background for a split second before logging out. Not sure if I'm missing something but I just wanted to give an update on Budgie.

Edit: I have been made aware that Ubuntu Budgie doesn't support the GNOME wallpaper .xml format

Space-and-also-time commented Jun 29, 2018

I tried using it on Ubuntu Budgie and couldn't seem to get it working. I changed the file paths and selected the xml as the background with tweaks. The background is black on my desktop but in my settings app under background, it shows the Mojave image and even a message saying that it changes over time. The background remains black however on logout, the desktop will display the Mojave background for a split second before logging out. Not sure if I'm missing something but I just wanted to give an update on Budgie.

Edit: I have been made aware that Ubuntu Budgie doesn't support the GNOME wallpaper .xml format

@NebojsaKrtolica

This comment has been minimized.

Show comment
Hide comment
@NebojsaKrtolica

NebojsaKrtolica Jun 29, 2018

@Space-and-also-time Me neither, can someone help us out? 🙏

@Space-and-also-time Me neither, can someone help us out? 🙏

@sojusnik

This comment has been minimized.

Show comment
Hide comment
@sojusnik

sojusnik Jun 30, 2018

On Ubuntu 18.04 there is no transition effect between wallpaper changes. I remember that the default Gnome dynamic wallpaper had one.

Oh, and you have a spelling error in the first line: "Intruction" should be "Introduction".

On Ubuntu 18.04 there is no transition effect between wallpaper changes. I remember that the default Gnome dynamic wallpaper had one.

Oh, and you have a spelling error in the first line: "Intruction" should be "Introduction".

@trongthanh

This comment has been minimized.

Show comment
Hide comment
@trongthanh

trongthanh Jul 2, 2018

Wow, so many comments. Maybe I should start working on an installable package. :D

@sojusnik: I personally observe the wallpapers cross-fade during transition. Maybe your desktop environment doesn't support. I'm not sure. Besides, I did try longer transition duration like 10 seconds, but it didn't seem to make any difference (same transition time and just about 2-3 second, to my reckon). The first line was meant: 'Instruction:'
@Space-and-also-time and @NebojsaKrtolica: So sad that Budgie doesn't support xml wallpaper. :(

Guide for Mate Desktop

Recently I switch to Mate Desktop (Ubuntu Mate 18.04) and the xml wallpaper worked well.

In the wallpaper settings windows, Choose +Add... > make sure All files filter is selected at the bottom right > Then choose mojave.xml

OR I can use below command in terminal:

gsettings set org.mate.background picture-filename 'path/to/your/wallpapers/mojave-background/mojave.xml'
Owner

trongthanh commented Jul 2, 2018

Wow, so many comments. Maybe I should start working on an installable package. :D

@sojusnik: I personally observe the wallpapers cross-fade during transition. Maybe your desktop environment doesn't support. I'm not sure. Besides, I did try longer transition duration like 10 seconds, but it didn't seem to make any difference (same transition time and just about 2-3 second, to my reckon). The first line was meant: 'Instruction:'
@Space-and-also-time and @NebojsaKrtolica: So sad that Budgie doesn't support xml wallpaper. :(

Guide for Mate Desktop

Recently I switch to Mate Desktop (Ubuntu Mate 18.04) and the xml wallpaper worked well.

In the wallpaper settings windows, Choose +Add... > make sure All files filter is selected at the bottom right > Then choose mojave.xml

OR I can use below command in terminal:

gsettings set org.mate.background picture-filename 'path/to/your/wallpapers/mojave-background/mojave.xml'
@sojusnik

This comment has been minimized.

Show comment
Hide comment
@sojusnik

sojusnik Jul 3, 2018

@trongthanh:

The first line was meant: 'Instruction:'

And now you wrote Instructions :)

I personally observe the wallpapers cross-fade during transition. Maybe your desktop environment doesn't support.

I'm on Ubuntu 18.04 with Gnome. So it should work fine...

sojusnik commented Jul 3, 2018

@trongthanh:

The first line was meant: 'Instruction:'

And now you wrote Instructions :)

I personally observe the wallpapers cross-fade during transition. Maybe your desktop environment doesn't support.

I'm on Ubuntu 18.04 with Gnome. So it should work fine...

@sojusnik

This comment has been minimized.

Show comment
Hide comment
@sojusnik

sojusnik Jul 4, 2018

@trongthanh: BTW, do you know if it's actually possible to define a whole folder with pictures as a path?
The idea is to have 4 folders - morning, day, evening, night - and show pictures from them in a certain period of the day. Just like your script does now, but only with 4 intervals and the pictures should be fetched from certain folders.

sojusnik commented Jul 4, 2018

@trongthanh: BTW, do you know if it's actually possible to define a whole folder with pictures as a path?
The idea is to have 4 folders - morning, day, evening, night - and show pictures from them in a certain period of the day. Just like your script does now, but only with 4 intervals and the pictures should be fetched from certain folders.

@trongthanh

This comment has been minimized.

Show comment
Hide comment
@trongthanh

trongthanh Jul 6, 2018

@sojusnik Why don't you just pick 4 images (from the 16 ones) represent 4 shift of the day and then write a new XML file with interval of 24/4 = 6 hours? I don't think it's possible to set the background image with a folder path.

On a side note, Github Gist won't send emails to notify owners, so I cannot reply immediately. I'll just check back here for comments periodically. Other comments mentioned here won't receive notifications either. After posting it here, I just realize Github Gist sucks at helping with notifications.

Owner

trongthanh commented Jul 6, 2018

@sojusnik Why don't you just pick 4 images (from the 16 ones) represent 4 shift of the day and then write a new XML file with interval of 24/4 = 6 hours? I don't think it's possible to set the background image with a folder path.

On a side note, Github Gist won't send emails to notify owners, so I cannot reply immediately. I'll just check back here for comments periodically. Other comments mentioned here won't receive notifications either. After posting it here, I just realize Github Gist sucks at helping with notifications.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment