________         __ __      ______ __                                 
|  |  |  |.---.-.|  |  |    |      |  |--.---.-.-----.-----.-----.----.
|  |  |  ||  _  ||  |  |    |   ---|     |  _  |     |  _  |  -__|   _|
|________||___._||__|__|    |______|__|__|___._|__|__|___  |_____|__|  
                                                     |_____|           

About
------

Wall Changer is an automatic wallpaper changer for GNU/Linux.
You can select images that will be used as wallpaper, download
wallpapers from the web, set commands to set wallpaper,
set intervals between wallpaper changes.

Program works in GNU/Linux, FreeBSD.

Version: 1.6.17 (last update: 04.05.2021)

Supported wallpaper search pages:

Screenshots
------------

Requirements
-------------

Installation
-------------

Wall Changer can be installed from the program package or from the repository.

Package version contains official program release witht the source code, configuration and build scripts.

Software repositories contains fresh, up to date program code, yet it still may be less stable than the package version.

Program package can be downloaded directly:
wallchanger-1.6.17.tar.gz
or from download section at program workspace:
https://savannah.nongnu.org/projects/wallchanger/

Arch linux package in AUR:
https://aur.archlinux.org/packages/wallchanger/

Downloading source code from GIT or Mercurial:

git clone https://git.savannah.nongnu.org/git/wallchanger.git
hg clone https://hg.savannah.nongnu.org/hgweb/wallchanger/

Software repositories does not contain configure and build scripts, you must have autotools installed and run autogen.sh to link appropriate scripts.

Compiling program - go to source code directory and type:
./configure
make
make install
Although I suggest to configure and compile with more detailed options described below.

For a normal daily use of this program a good option should be:
./configure CFLAGS="-march=native -O2 -pipe"
or more specific:
./configure CC="gcc" CFLAGS="-march=native -O2 -pipe -std=gnu17" --prefix=/usr
with CLANG:
./configure CC="clang" CFLAGS="-march=native -O2 -pipe -std=gnu17" --prefix=/usr
It disables the standard -g option which produces debugging information
needed for gdb and enlarges the output file,
CC="gcc"       sets the C compiler to gcc,
CC="clang"     sets the C compiler to clang,
-march=native  enables all instruction subsets supported by the local machine,
-O2            sets the code optimization to level 2,
-pipe          use pipes rather than temporary files for communication between
               the various stages of compilation,
-std=gnu17     sets the C standard to C17 with GNU extensions.
 --prefix=/usr installs program in /usr directory instead of /usr/local

Running
--------

If the compilation is completed without problems, 2 executable files will be created:

wchangercfg
wchangerd

wchangerd works in the background and changes the wallpaper at specific intervals.

working with the wchangerd daemon:

wchangerd --start      Starts the wchangerd daemon
wchangerd --stop       Stops the wchangerd daemon
wchangerd --restart    Restarts the wchangerd daemon
wchangerd --status     Print wchangerd status

wchangerd --once       Changes the wallpaper once and exits

wchangerd --config     Loads the configuration from the given file

wchangercfg is a configuration window for adding/removing images to lists, downloading images from the web, changing the intervals between wallpaper changes etc.

The wallpaper change command is selected based on the currently used window manager. Application has default wallpaper change commands for several window managers. Default commands can be changed through wchangercfg, using Select button. It opens wallpaper command set dialog with list of window managers and commands. After checking and setting commands, especially for Xfce, which has an unusual wallpaper set command, you can use this app with different window managers without changing settings.

Afer changing settings using wchangercfg, wchangerd daemon will load them before next wallpaper change. If you want to load settings before that time, you need to restart wchangerd daemon using wchangerd --restart command.

Default places for configuration file:
(application will look for it in order like on the list below)

~/.config/wchanger/config.json
~/.config/wchanger.json
~/.config/wchanger/wchanger.json
To use a non-standard configuration file path, use the --config option:
wchangerd --config [FILENAME]
wchangercfg --config [FILENAME]

Contact and help
-----------------

In case of problems with the program, please contact me: michal.babik@pm.me

To check out my other apps visit: https://init6.pomorze.pl/