A simple GNOME desktop wallpaper rotation using Systemd.
Go to file
Adam 2d6f745bf9 refactor: change project name
Change project name from "GNOME Rotate Wallpaper" to "Wallpaperctl".
2022-04-10 14:07:15 -06:00
.config/systemd/user refactor: change project name 2022-04-10 14:07:15 -06:00
etc/systemd/user refactor: change project name 2022-04-10 14:07:15 -06:00
readme.md docs: correct spelling 2022-04-10 13:48:09 -06:00
screen_shield.md Initial commit 2021-05-13 15:46:12 -06:00

readme.md

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.
$ mv gnome-rotate-wallpaper.service gnome-rotate-wallpaper.timer /etc/systemd/user/
  1. Move the BASH script "gnome_rotate_wallpaper".
$ mv gnome_rotate_wallpaper /usr/local/bin/
  1. Set execute permissions.
$ chmod +x /usr/local/bin/gnome_rotate_wallpaper
  1. Enable the timer.
$ systemctl --user enable gnome-rotate-wallpaper.timer
  1. Verify the timer is enabled.
$ systemctl --user list-unit-files
gnome-rotate-wallpaper.service disabled
gnome-rotate-wallpaper.timer   enabled
2 unit files listed.
  1. Start the timer.
$ systemctl --user start gnome-rotate-wallpaper.timer
  1. Verify the timer has been started.
$ 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.
$ mkdir  ~/.config/systemd ~/.config/systemd/user
  1. Create the configuration file. Replace "username" with applicable value.
$ 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 for further details.

  1. Create the required directories.
$ mkdir  ~/.config/systemd ~/.config/systemd/user
  1. Create the configuration file.
$ 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