Command Line

You can control Wallpaper Engine with command line arguments to, for example, pause or stop all wallpapers, change wallpapers or even change settings of running wallpapers.

💡 **Pro tip:** **This page is outdated!**

Please view the official Wallpaper Engine help website for an up-to-date documentation of the command line interface:
https://help.wallpaperengine.io/functionality/cli.html

Make sure Wallpaper Engine is already running and then send a command to it by running the main process of the program, *wallpaper32.exe* (or *wallpaper64.exe*), with any of the command arguments listed below. You can find the process in the installation folder, by default it is located here: *C:\Program Files (x86)\Steam\steamapps\common\wallpaper\_engine\wallpaper32.exe*.

💡 **Pro tip:** You can run the command from a shortcut, a macro binding or any script/code of your choice.

# Commands

All commands are issued as a value for the *-control* parameter. For example, the *pause* command would be run like this:

```
wallpaper32.exe -control pause

```

Make sure to use the double quote *"* character for strings that have spaces in them:

```
wallpaper32.exe -control openWallpaper -file "C:\Program Files (x86)\Steam\steamapps\common\wallpaper_engine\projects\myprojects\myWallpaper\project.json"

```

## Pause

Pauses all wallpapers.

```
-control pause

```

## Stop

Stops all wallpapers.

```
-control stop

```

## Play

Resumes all wallpapers from pause or stop.

```
-control play

```

## Mute

Mutes all wallpapers.

```
-control mute

```

## Unmute

Mutes all wallpapers.

```
-control unmute

```

## Open Wallpaper

Loads a new wallpaper for a given monitor or the first monitor if none was specified. You can use either the *location* or *monitor* parameter to choose which monitor to load the wallpaper on, or open a wallpaper in a window with the *playInWindow* parameter.

```
-control openWallpaper -file <string> [-location <string>] [-monitor <number>]
        [-playInWindow <string>] [-width <number>] [-height <number>]
        [-x <number>] [-y <number>] [-preset <string>]

```

* **file**: Path to the project.json of the wallpaper you want to open or direct path to wallpaper file (.mp4 etc).
* **location** (optional): Internal identifier of the monitor. You can find these in the config.json file and they are generated by your PC.
* **monitor** (optional): Index of the monitor to load the wallpaper on, begins with 0.
* **preset** (optional): Name of the local preset to load, the local preset must have been created and saved by you before.
* **playInWindow** (optional): Name of the window if you want to open/control multiple wallpapers in a window.
* **width** (optional): Width of window.
* **height** (optional): Height of window.
* **x** (optional): Horizontal position of window.
* **y** (optional): Vertical position of window.

## Open Playlist

Loads a new wallpaper for a given monitor or the first monitor if none was specified. You can use either the *location* or *monitor* parameter to choose which monitor to load the wallpaper on.

```
-control openPlaylist -playlist <string> [-location <string>] [-monitor <number>]

```

* **playlist**: Name of the playlist you have created and saved in Wallpaper Engine.
* **location** (optional): Internal identifier of the monitor. You can find these in the config.json file and they are generated by your PC.
* **monitor** (optional): Index of the monitor to load the playlist on, begins with 0.

## Close Wallpaper

Closes a wallpaper on given monitor or window or all wallpapers.

```
-control closeWallpaper [-location <string>] [-monitor <number>]

```

* **location** (optional): Internal identifier of the monitor or the window name you specified.
* **monitor** (optional): Index of the monitor to close the wallpaper from, begins with 0.

## Apply Properties

Applies wallpaper properties on-the-fly to a given wallpaper or all wallpapers. This allows you to dynamically change any properties while the program is running without opening the wallpaper browser and manually changing them. You can find a list of available properties in the browser easily by clicking on *Share JSON* on the right side of any wallpaper.

```
-control applyProperties -properties <JSON> [-location <string>] [-monitor <number>]

```

* **properties**: Properties defined as JSON string to be applied. The String must be specially escaped with *RAW~(* and *)~END* as delimiters - see examples below!
* **location** (optional): Internal identifier of the monitor or the window name you specified.
* **monitor** (optional): Index of the monitor to update the properties on, begins with 0.

### Examples

Change the playback rate to 10 like this:

```
-control applyProperties -properties RAW~({"rate":10})~END

```

Change the scheme color to red like this:

```
-control applyProperties -properties RAW~({"schemecolor":"1 0 0"})~END

```

## Next Wallpaper

Skips to the next wallpaper of a given monitor or all monitors if none specified.

```
-control nextWallpaper [-location <string>] [-monitor <number>]

```

## Hide Icons

Hides the desktop icons.

```
-control hideIcons

```

## Show Icons

Shows the desktop icons.

```
-control showIcons

```