Omahub
← All plugins
D

Bing Wallpaper for Omarchy

by Daniel Goetz

Automatically downloads the current Bing homepage image for a configurable market every hour, with an optional download-only mode and native Omarchy bar controls.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
bee5e2d
Scanned
3 weeks ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

Low
AI risk level
Low
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
bee5e2d
Reviewed
3 weeks ago

The plugin is a straightforward Bing wallpaper downloader with a well-structured shell script that validates paths, restricts downloads to Bing-relative URLs, caps transfer sizes, and avoids following redirects. The deterministic scan found no issues, and the sampled code shows no obfuscation, credential theft, or destructive behavior; the only residual risk is the inherent trust placed in Bing-supplied image content and the plugin's ability to change the desktop wallpaper, which is the plugin's stated purpose.

  • The service automatically sets the desktop wallpaper by default, which is expected behavior but does modify the user's desktop environment without an explicit per-run confirmation.
  • The plugin downloads and executes no code from Bing, but it does fetch and decode images; the script validates JPEG content and limits sizes, reducing but not eliminating risk from malformed image data.
  • The helper script writes to ~/.cache and ~/.local/state and can modify shell.json to disable wallpaper application; this is within the plugin's documented functionality and is not malicious.
  • The script uses a local ulimit to cap transfer sizes and does not follow redirects, which is a good security practice; no dangerous commands or persistence mechanisms were found.
How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/odessa2/bing-wallpaper-for-omarchy --enable
Appearance #bar #quickshell

Bing Wallpaper for Omarchy

A native Omarchy Quattro bar widget and background service that downloads Bing's current homepage image for one selected market, then optionally sets it as the system background. It checks immediately when Omarchy Shell starts and every hour afterward.

The market follows the desktop locale by default. Downloads are atomic, unchanged images are reused, and the cache retains the eight most recent images for each market you have selected. Only the currently selected market is requested and downloaded during a check.

Bing Wallpaper for Omarchy bar widget settings

Requirements

  • Omarchy 4 / Quattro
  • curl, jq, flock, sha256sum, ffmpeg, and ffprobe (included in a standard Omarchy install)
  • Network access to www.bing.com

The plugin runs without elevated privileges. It contacts Bing's homepage image feed and stores images under ~/.cache/omarchy/bing-wallpaper/.

Bar widget

Enable the plugin to place its native image icon in the right section of the Omarchy bar. Left-click the image icon to open a panel with:

  • A preview and Bing's image attribution
  • Market selection, including Bing's Global / Rest-of-World feed
  • A Set as wallpaper toggle
  • A Refresh now button and update status

Right-click the bar widget to refresh immediately. With Set as wallpaper off, hourly polling and download of the selected market continue but the desktop is not changed.

The service also watches Omarchy's current background once per minute. If it previously owned the background and detects that you selected a different one manually, it automatically turns Set as wallpaper off in shell.json. Downloads, preview updates, and attribution continue; only automatic wallpaper application stops. Turn the option back on whenever you want the plugin to take ownership again.

Theme changes are handled separately. If a cached Bing image was still the active background immediately before the theme switch, the service restores that same image after Omarchy's theme transition. If the plugin did not own the background, it leaves the theme or manually selected background alone. Because manual changes are detected by a one-minute poll, changing the background and then switching themes within that same minute can restore the Bing image once; the following poll detects the manual choice and disables wallpaper application.

The icon inherits Omarchy's bar foreground color. For a transparent bar, Omarchy automatically chooses between the theme's text and background colors after the wallpaper changes. Double-click an empty part of the bar to toggle transparency globally if a visually busy wallpaper still hurts readability.

Install

Install directly from GitHub:

omarchy plugin add https://github.com/odessa2/bing-wallpaper-for-omarchy.git --enable

For local development, clone or copy this folder to ~/.config/omarchy/plugins/io.github.odessa2.bing-wallpaper, then run:

omarchy plugin validate ~/.config/omarchy/plugins/io.github.odessa2.bing-wallpaper
omarchy-shell shell rescanPlugins
omarchy plugin enable io.github.odessa2.bing-wallpaper

Update

Update an installed Git-managed plugin through Omarchy so it is validated and rescanned after the fast-forward:

omarchy plugin update io.github.odessa2.bing-wallpaper

When updating the installed checkout manually during development, force a rescan after all files have changed. If old and new QML components still appear mixed, restart the shell:

omarchy-shell shell rescanPlugins
omarchy restart shell

Configure

Use the native bar panel to select a market and toggle Set as wallpaper. The values are stored with the widget in ~/.config/omarchy/shell.json:

{
  "id": "io.github.odessa2.bing-wallpaper",
  "market": "de-DE",
  "setWallpaper": false
}
  • market: auto uses the desktop locale, global selects Bing's Rest-of-World feed, or use a market such as de-DE, en-GB, or ja-JP.
  • setWallpaper: set to false to keep polling and downloading the selected market without changing the system background. The bar panel exposes this as a native toggle and the service also switches it off when it detects a manual background change.

Omarchy writes this entry atomically and hot-reloads it without rebuilding the rest of the bar. The settings are also available through Omarchy's native bar widget settings UI. A valid manual shell.json edit is hot-reloaded and causes the service to refresh automatically.

Inspect the service state with:

omarchy-shell bing-wallpaper status

Image metadata is available in the cache as current.json, including Bing's market, copyright attribution, and link.

Upgrading from 1.0.0

When no inline settings exist yet, version 1.0.1 reads the previous ~/.config/omarchy/bing-wallpaper.json as a fallback. The next change made in the bar panel stores both values in shell.json; the legacy file can then be removed. The plugin never rewrites shell.json merely because it was updated.

Credits

Thanks to Shimon Rura for diagnosing and fixing the third-party plugin API compatibility issue in pull request #2.

Remove

omarchy plugin remove io.github.odessa2.bing-wallpaper

Omarchy keeps the last selected background after the plugin is removed. If it points into the plugin cache, select another background before deleting the downloaded images. Then optionally remove all retained plugin data:

rm -f ~/.config/omarchy/bing-wallpaper.json
rm -rf ~/.cache/omarchy/bing-wallpaper ~/.local/state/omarchy/bing-wallpaper

Data source

The plugin uses Bing's homepage image archive endpoint: https://www.bing.com/HPImageArchive.aspx. Bing owns the images and associated metadata; this plugin does not grant redistribution rights.

Images are requested from Bing's _UHD.jpg asset, which is the highest-quality version exposed by the feed. The normal feed URL is used only when a particular image has no UHD asset.

For safety, the downloader accepts only Bing-relative image paths, does not follow redirects, applies isolated per-transfer response-size limits without lowering the shell's hard file-size limit, and validates that downloaded bytes decode as a JPEG before caching or applying them as the wallpaper. Bing-provided titles and copyright attribution are rendered explicitly as plain text. They are never interpreted as rich text or used as tooltip markup, so embedded tags cannot trigger additional network resource loads.