# Rotate Gnome Wallpaper using Systemd - **Note:** Adjust paths as applicable to the desired OS. - **Note:** The "$" represents the terminal prompt. - **Note:** Verified to work on Arch Linux with Gnome v3.14. ## Installation Instructions 1. Download "gnome-rotate-wallpaper.service", "gnome-rotate-wallpaper.timer" and "gnome_rotate_wallpaper". 2. Move the 3 files to where Systemd user files are stored. ```bash $ mv gnome-rotate-wallpaper.service gnome-rotate-wallpaper.timer /etc/systemd/user/ ``` 3. Move the BASH script "gnome_rotate_wallpaper". ```bash $ mv gnome_rotate_wallpaper /usr/local/bin/ ``` 4. Set execute permissions. ```bash $ chmod +x /usr/local/bin/gnome_rotate_wallpaper ``` 5. Enable the timer. ```bash $ systemctl --user enable gnome-rotate-wallpaper.timer ``` 6. Verify the timer is enabled. ```bash $ systemctl --user list-unit-files gnome-rotate-wallpaper.service disabled gnome-rotate-wallpaper.timer enabled 2 unit files listed. ``` 7. Start the timer. ```bash $ systemctl --user start gnome-rotate-wallpaper.timer ``` 8. Verify the timer has been started. ```bash $ systemctl --user list-timers NEXT LEFT LAST PASSED UNIT ACTIVATES Thu 2016-03-10 18:49:00 CST 1s left Thu 2016-03-10 18:48:56 CST 1s ago gnome-rotate-wallpaper.timer gnome-rotate-wallpaper.service 1 timers listed. Pass --all to see loaded but inactive timers, too. ``` ## User Configuration ### Change the default wallpaper directory. 1. Create the required directories. ```bash $ mkdir ~/.config/systemd ~/.config/systemd/user ``` 2. Create the configuration file. Replace "username" with applicable value. ```bash $ nano ~/.config/systemd/user/gnome-rotate-wallpaper.conf ``` WALLPAPER_DIR=/home/username/Pictures/wallpaper ### Set the Interval to When the Wallpaper Changes. Create the timer file and then change the "OnCalendar" value to the desired interval. Refer to [ArchLinux: systemd/Timers](https://wiki.archlinux.org/index.php/Systemd/Timers#Realtime_timer) for further details. 1. Create the required directories. ```bash $ mkdir ~/.config/systemd ~/.config/systemd/user ``` 2. Create the configuration file. ```bash $ nano ~/.config/systemd/user/gnome-rotate-wallpaper.timer ``` ``` [Unit] Description=Gnome rotate wallpaper [Timer] OnCalendar=*:0/1 Persistent=true Unit=gnome-rotate-wallpaper.service [Install] WantedBy=gnome-rotate-wallpaper.service ``` ## Available picture-options - none - wallpaper - centered - scaled - stretched - zoom - spanned ## External Links * https://wiki.archlinux.org/index.php/Systemd/User * https://wiki.archlinux.org/index.php/Systemd/Timers * https://major.io/2015/02/11/rotate-gnome-3s-wallpaper-systemd-user-units-timers/ * https://stackoverflow.com/questions/10374520/gsettings-with-cron