# Command Line Controls

You can control Wallpaper Engine with command line arguments. This allows you to access most functionalities of the app through a shortcut, a macro binding or any kind of self-written script or code of your choice. For example, you may pause or stop all wallpapers, change wallpapers or even change settings of running wallpapers.

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 if you are using the 64 Bit version of the app), with any of the command arguments listed in this guide. You can find the executables in the wallpaper_engine installation directory.

All commands are issued as a value for the -control parameter. For example, the pause command can be executed 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"

# Shortcut example: Opening a wallpaper in a window

The following example allows you to open any number of wallpapers in a window through a Windows shortcut. You can repeat this process to open any number of wallpapers in a separate window which may be useful for streamers who want to utilize Wallpaper Engine for any type of idle screen or animation.

First, go to the wallpaper_engine directory and right-click on either wallpaper32.exe or wallpaper64.exe and hover over Send to and then Desktop (create shortcut) to create a new shortcut to the Wallpaper Engine process on your desktop. Next, find your new shortcut and rename it to fit your use-case. Afterwards, right-click on it, then select Properties.

Wallpaper Engine shortcut properties

You should see the Shortcut tab with a line called Target. This line will currently just point to Wallpaper Engine. You now need to edit it to add the openWallpaper command with the full path to your wallpaper and the playInWindow parameter as shown in the example below (you may want to copy-paste it and adjust it to fit your needs):

"C:\Program Files (x86)\Steam\steamapps\common\wallpaper_engine\wallpaper64.exe" -control openWallpaper -file "C:\Program Files (x86)\Steam\steamapps\workshop\content\431960\123456789\scene.pkg" -playInWindow "Wallpaper #1" -width 1920 -height 1080

Check the following things when configuring this command:

  • Make sure the path to your wallpaper32.exe / wallpaper64.exe stays correct. The example above uses the default Steam directory.
  • Make sure to use the correct path to your wallpaper. The example above uses an example Workshop ID 123456789, you must change this in order for your wallpaper to work. You can also point at any supported file on your computer.
    • You can find the full path of any wallpaper by right-clicking on it in Wallpaper Engine and selecting Open in Explorer. For Scene type wallpapers, you generally want to point at the project.json file, for video wallpapers this will likely be an .mp4 file and for web wallpapers you will find a file called index.html.
  • Give your window a unique name. The example above uses Wallpaper #1 as a name. If you want to open multiple windows, simply assign each of them a unique name.
  • You may also want to adjust the resolution, the example above uses 1920x1080 (Full HD). Change the width and height parameters accordingly.

# Command Overview

# 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

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

# Next Wallpaper

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

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

# Remove Wallpaper

Removes a wallpaper from a specified monitor or window or removes 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.

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

# Apply Wallpaper Settings

Applies wallpaper properties on-the-fly to a given wallpaper or all wallpapers. This allows you to dynamically change any settings that belong to a wallpaper 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 when selecting any wallpaper in the browser.

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

Example of changing a wallpaper setting named rate to 10:

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

Example of changing a wallpaper scheme color setting to red ("1 0 0" represents RGB values):

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

# Hide Desktop Icons

Hides the desktop icons.

-control hideIcons

# Show Desktop Icons

Shows the desktop icons.

-control showIcons