'wallshift' is a simple rust program that allows the user to have a wallpaper that changes whenever the user wants. It can be used to change the wallpaper every day, every hour, every minute, etc. It also allows the user to have an animated wallpaper.
When launching the program, it will create a daemon that will change the wallpaper. This insure that there is only one instance of the program running at a time.
The only dependency, aside from rust libraries, is feh, but I'm planning to allow the user to choose the program to set the wallpaper.
Simply run:
cargo install wallshift
The above method is recommended, but if you want to install it manually, you can do it like this:
git clone [email protected]:Yag000/wallshift.git
cd wallshift
cargo build --release
You will now have the binary in target/release/wallshift
wallshift [OPTIONS]
-h
,--help
: Prints help information-s
,--seconds
: Sets the time in seconds to change the wallpaper-m
,--minutes
: Sets the time in minutes to change the wallpaper-g
,--get
: Gets the next wallpaper--betterlockscreen
: Sets the betterlockscreen wallpaper as well-t
,--toggle
: Changes once the wallpaper
The default wallpaper directory is $HOME/Pictures/Wallpapers
, but you can
change it in the config file ($HOME/.config/wallshift/config.yaml
).
The directory must only contain images. If you wish to use animated wallpapers (which are explained below), you must create a directory inside the wallpaper directory with the same name as the animated wallpaper. Inside you must put the images of the animated wallpaper, following this naming convention:
<wallpaper-name><number>.<extension>
Example for an animated wallpaper called 'example':
wallpaper-dir
|-- exampple
| |-- example1.png
| |-- example2.png
| |-- example3.png
Hidden files (files starting with a dot) are ignored.
I define an animated wallpaper as a collection of wallpapers that, if displayed in a certain order, give the illusion of movement. For example, a collection of images of a person walking or of pacman eating ghosts.
Example: