wallpaper
Get or set the desktop wallpaper
Works on macOS 10.12+, Linux, and Windows 10+.
Maintainer needed for the Linux part of the code. No new Linux-related changes will be accepted until someone with good Linux knowledge volunteers.
Install
$ npm install wallpaper
Usage
const wallpaper = require('wallpaper');
(async () => {
await wallpaper.set('unicorn.jpg');
await wallpaper.get();
})();
API
.get(options?)
Returns a Promise<string>
with the path of the current desktop wallpaper.
options
Type: object
screen (macOS only)
Type: string | number
Values: 'all'
, 'main'
, or the index of a screen from .screens()
Default: 'main'
The screen to get the wallpaper from.
If you set 'all'
then .get()
will return a Promise<string[]>
.
.set(imagePath, options?)
Returns a Promise
.
imagePath
Type: string
The path to the image to set as the desktop wallpaper.
options
Type: object
screen (macOS only)
Type: string | number
Values: 'all'
, 'main'
, or the index of a screen from .screens()
Default: 'all'
The screen to set the wallpaper on.
On Linux and Windows it's hard-coded to 'main'
.
scale (macOS only)
Type: string
Values: 'auto' | 'fill' | 'fit' | 'stretch' | 'center'
Default: 'auto'
Scaling method.
.screens() (macOS only)
Returns a Promise<string[]>
with the available screens.
(async () => {
await wallpaper.screens();
})();
FAQ
How can I set a website as a static wallpaper?
If you only need a static snapshot of the website, you can use capture-website
and then pass the result to this package. You can make it semi-dynamic, by capturing the website snapshot every 10 seconds, for example.
How can I set a website, video, or WebGL as a dynamic wallpaper?
You cannot use this package to set a dynamic wallpaper.
On macOS, check out Plash, which lets you set any website as your wallpaper. The website could contain a fullscreen video, WebGL, slideshow, animated, etc.
You can also do this with Electron on macOS and Linux by using new BrowserWindow({type: 'desktop'})
.
On Windows, you can use Wallpaper Engine. It's available on Steam, HumbleBundle, and Green Man Gaming for around 4 USD.
Related