#wallpaper

bin+lib wallshift

Simple wallpaper updater using feh

8 releases

0.2.5 May 6, 2024
0.2.4 Mar 6, 2024
0.2.3 Feb 23, 2024
0.2.2 Dec 23, 2023
0.1.0 Aug 31, 2023

#11 in #wallpaper

MIT/Apache

76KB
618 lines

wallshift

'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.

Dependencies

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.

Installation

Crates.io

Simply run:

cargo install wallshift

Manual

The above method is recommended, but if you want to install it manually, you can do it like this:

git clone git@github.com:Yag000/wallshift.git
cd wallshift
cargo build --release

You will now have the binary in target/release/wallshift

Usage

wallshift [OPTIONS]

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

Wallpaper directory

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.

Animated wallpapers

What is an animated wallpaper?

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:

animated-wallpaper

Dependencies

~3–11MB
~119K SLoC