
Research
Supply Chain Attack on Axios Pulls Malicious Dependency from npm
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.
wallpaper-lockscreen
Advanced tools
Get or set the desktop wallpaper
Works on macOS 10.14.4+, 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.
npm install wallpaper
import { getWallpaper, setWallpaper } from "wallpaper";
await setWallpaper("unicorn.jpg");
await getWallpaper();
//=> '/Users/sindresorhus/unicorn.jpg'
Returns a Promise<string> with the path of the current desktop wallpaper.
Type: object
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 getWallpaper() will return a Promise<string[]>.
Returns a Promise.
Type: string
The path to the image to set as the desktop wallpaper.
Type: object
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'.
Type: string
Values: 'auto' | 'fill' | 'fit' | 'stretch' | 'center'
Default: 'auto'
Scaling method.
Returns a Promise.
Type: string
The color to set as a RGB Hex value. For example, 000000 for black.
Type: object
Type: string | number
Values: 'all', 'main', or the index of a screen from .screens()
Default: 'all'
The screen to set the wallpaper on.
import { setSolidColorWallpaper } from "wallpaper";
await setSolidColorWallpaper("000000");
Returns a Promise<string[]> with the available screens.
import { screens } from "wallpaper";
await screens();
//=> ['Color LCD']
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.
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.
FAQs
Manage the desktop wallpaper and lockscreen
We found that wallpaper-lockscreen demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.

Security News
TeamPCP is partnering with ransomware group Vect to turn open source supply chain attacks on tools like Trivy and LiteLLM into large-scale ransomware operations.