charm-mm

CharmMM is a tool to perfectly set Windows wallpaper on multi displays/monitors.

npm publish contributions welcome

https://nodei.co/npm/charm-mm.png?downloads=true&downloadRank=true&stars=true

CharmMM

CharmMM is a tool to perfectly set Windows wallpaper on multi monitors/displays.

Motivation

Most software developers use more than one display in work to boost productivity, however, most of them just set boring wallpapers.

Even some customized wallpaper is set, in multi-display settings, Windows built-in wallpaper does not work well if you have displays like that:

displays-illustration

Either the wallpaper get cropped, or there is a lot of blank area on screen...

This tool can help you get perfect wallpaper set. The wallpapers are searched and downloaded from Pexels, specified by your keywords. More features are to be added.

Prerequisites

  • Wget is installed.

  • In Windows Background settings, set Choose a fit option to Tile

    choose-fit

Installation

npm install -g charm-mm

Usage

charm-mm -c config.yml

Read config.yml.sample and modify it to create config.yml.

Any parameter defined in config.yml can be override at runtime with command line arguments. For example, to override the keyword settings:

charm-mm -c config.yml --keyword=sea

The options are case-insensitive when specifying at command line.

Changelog

Troubleshooting

UnauthorizedAccess for running GetDisplays.ps1 script

You get error like this:

... path/to/charm-mm...GetDisplays.ps1 : File C:\Users\Chevy Li\AppData\Roaming\npm\node_modules\charm-mm\GetDisplays.ps1 cannot
be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ ... path/to/charm-mm... ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

That's due to PowerShell execution restrictions. To solve, as suggested in the error message, you have to change the ExecutionPolicy of PowerShell. For example, change policy to AllSigned for current user by running this command in an Powershell (running as Administrator):

Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope CurrentUser

Credit

License

MIT License