Omahub
← All plugins
L

Wallpaper Rotate

by lef

Rotate wallpapers from your own folders on a schedule. Reveal the current image in Nautilus from the panel or with Ctrl+left-click.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
0dbbe13
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

None
AI risk level
None
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
0dbbe13
Reviewed
3 weeks ago

The sampled code is a straightforward wallpaper rotation service: it scans user-selected image directories with a bounded, non-symlink-following Perl helper and a hardened Bash catalog, writes only its own configuration JSON, and uses Nautilus to reveal the current wallpaper. No obfuscation, destructive commands, persistence tricks, or credential access appear in the reviewed files. The deterministic scan's 'none' result matches this review.

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/Somnius/Omarchy-Wallpaper-Rotate --enable
Widgets #Hyprland #bar #media

Wallpaper Rotate for Omarchy

An Omarchy shell plugin that rotates your wallpapers on a schedule — from your own folders (recursively), not just theme bundles.

A small picture-frame icon sits in the bar:

  • Left-click — popup panel: current wallpaper name, paste a source-folder path, Show current image in Nautilus, switch now, and schedule controls (interval down to 1 minute, order).
  • Ctrl+left-click — open a new Nautilus window with the current wallpaper selected. If your bar does not forward this shortcut, use Show current image in Nautilus in the popup panel.
  • Right-click — switch to the next wallpaper immediately.
  • Hover — tooltip with the current wallpaper's name and Ctrl+click shortcut.
<img width="355" height="611" alt="Wallpaper Rotate panel" src="preview.png" />

Features

  • Scheduled rotation from any folder you point it at (default ~/Pictures/wallpapers/, scanned recursively).
  • Formats supported by Omarchy's background engine: jpg, jpeg, png, gif, bmp, webp. Videos are ignored automatically.
  • Three orders: Random (never repeats the current one), Shuffle (plays every wallpaper once before repeating), Sequential.
  • Theme-change aware: switching Omarchy themes restarts the rotation so the theme's own pick gets a moment to shine.
  • Cheap while idle: a lightweight timer checks the schedule; processes only spawn when a change is due or the panel is open.
  • Thumbnails reuse Omarchy's built-in image-selector cache — no duplicate cache.
  • Config and theme metadata are read through bounded descriptors; oversized, malformed or non-regular replacements are rejected without replacing the last accepted state.

Install

omarchy plugin add https://github.com/Somnius/Omarchy-Wallpaper-Rotate.git --enable

Then place the widget in the bar:

omarchy bar put lef.wallpaper-rotate --section right

From a local checkout (development)

ln -s "$PWD" ~/.config/omarchy/plugins/lef.wallpaper-rotate
omarchy-shell shell rescanPlugins

Dev loop caveat: Quickshell's file watcher does not follow the symlink, so edits made in the clone do not hot-reload. After changing files run omarchy restart shell (or omarchy-shell shell rescanPlugins, then a shell restart if visuals are stale). Plugins cloned directly into ~/.config/omarchy/plugins/ hot-reload normally.

Validate at any time with:

omarchy plugin validate "$PWD"

Configuration

Config lives in ~/.config/omarchy/wallpaper-rotate/config.json and hot-reloads.

Key Type Default Description
enabled boolean true Rotate automatically
intervalMinutes integer 5 Minutes between changes (minimum 1, max 1440)
mode string "random" random, shuffle, or sequential
directory string "~/Pictures/wallpapers" Root folder to scan (~ allowed)

Folder, interval and order can also be changed from the panel; everything else can be edited in the config file.

IPC & keybindings

omarchy-shell lef.wallpaper-rotate reveal  # select current image in Nautilus
omarchy-shell lef.wallpaper-rotate next    # switch now
omarchy-shell lef.wallpaper-rotate toggle  # open/close the panel

Hyprland binding example (~/.config/hypr/bindings.lua):

o.bind("SUPER + ALT + W", "Next wallpaper", "omarchy-shell lef.wallpaper-rotate next")

Uninstall

omarchy plugin remove lef.wallpaper-rotate

(If installed via symlink, remove the symlink instead.)

External dependencies

Nautilus is required for the panel button and Ctrl+left-click. Both open a new window with the current wallpaper selected, preserving existing windows.

Perl (provided by Omarchy) is used for bounded metadata reads. Wallpaper discovery uses standard system tools already shipped with Omarchy.

Credits

Heavy inspiration and proven patterns taken from dizziee.auto-wallpaper (MIT) — which rotates the active theme's wallpaper collection. This plugin exists because that one doesn't scan arbitrary user folders like ~/Pictures/wallpapers; if you only want theme-background rotation, use dizziee's excellent plugin instead. Service/widget wiring also follows the first-party omarchy.media plugin structure.

License

MIT — same as the plugin that inspired it.