Bring your own live wallpapers.
A native Windows app for applying your local videos, GIFs and images as desktop wallpapers.
Download Windows installer · Changelog · Resource use · Report a bug · Saweria · Buy me a coffee
WallpaperLive plays trusted local videos, GIFs and images on multiple displays. Apply the same wallpaper to All displays, or set a different file on each display without stopping the others. Search your thumbnail library in a 3x3 grid and control playback from the panel or tray. Right-click thumbnails for file actions or Retry thumbnail, use Library hotkeys (Space on the grid, ←/→), monitor live RAM and manage your video cache directly in Settings. Rust and Win32 keep the interface native; libmpv handles decoding without a browser engine or an account.
Windows 10/11 x64. Unsigned installer. Wallpapers and the native decoder are not bundled; Setup asks before downloading a decoder if none is available locally.
WallpaperLive is a player and desktop wallpaper controller, not a place to download live wallpapers. It does not host wallpaper files or offer an online gallery, catalog, marketplace or built-in wallpaper downloader. The Library contains only the local files and folders you import; it is not a collection supplied by this project.
Create your own videos, GIFs or images, or obtain compatible files separately from creators or sources you trust. Save them on your PC, use Add wallpaper or Add folder, then choose a display or All displays and select Set wallpaper. WallpaperLive handles playback, placement, FPS limits and auto-pause. It does not create or supply the artwork.
The main Library's Where to find wallpapers opens an in-app panel with MyLiveWallpapers, MoeWalls, MotionBGs and DesktopHut. Choose a link to open your browser; no confirmation popup interrupts browsing. Back to Library or Escape restores the Library view and its filters, selection and page. These are third-party links, not a built-in downloader or safety endorsement. Obtain compatible media separately, check its license, then import only files you trust. Settings also links to LivelyDesk, our companion desktop suite page.
Use media you have permission to use and respect each creator's license. Wallpapers visible in screenshots demonstrate the app; they are not bundled, hosted or offered for download by WallpaperLive. Links labeled Download Windows installer download the application, not wallpaper media. Any optional decoder download during Setup installs libmpv to play your files; it does not fetch a wallpaper.
Real v0.1.6 desktop capture supplied by the project author on 9 November 2026, showing active live wallpaper playback. Wallpaper artwork belongs to its respective owners; no media is included in the download.
View the native app at full size
Select all sits beside the folder filter, away from Previous/Next. Display, Placement, FPS and Sound controls stay with the selected wallpaper. Choosing a thumbnail changes the preview; Set wallpaper changes the active wallpaper.
- Import individual files or folders with subfolders. Keep up to 4096 library entries, search filenames without case sensitivity within the folder filter and browse nine thumbnails per page. Sort by newest imported, A-Z or Z-A. Original files stay where they are.
- Set the same wallpaper on All displays or choose a file for one display without stopping the others. Each display keeps its own assignment.
- Open Where to find wallpapers directly from the Library for third-party browsing links. Right-click a failed preview and choose Retry thumbnail.
- Start the original video immediately. Oversized SDR videos get a display-sized cache in the background; playback switches to the finished copy near the current position.
- Choose 24, 30, 45 or 60 FPS below Placement. Changes use the running players without a file reload or another cache conversion. This is a cap, not frame interpolation.
- Use Fill to crop or Fit to show the full frame. Prefer a detected dedicated GPU for compatible D3D11 rendering and hardware decoding, with fallback when needed.
- Loop with sound off by default. Toggle Sound for at most one wallpaper stream. Manual Pause/Resume and Stop affect all displays from the app or tray.
- Auto-pause independently for fullscreen/maximized apps on each wallpaper display. Battery power, session lock, display sleep and system suspend also pause playback. Keep the last frame and decoder attached for resume without reloading.
- Select all within the current filter or Ctrl-click individual files. Remove confirms the count and removes library entries, never original media.
- Keep playback in the tray after closing the panel. The tray follows the Windows dark/light theme; high-contrast mode uses the native system menu. Start with Windows remains opt-in.
- Check for updates from the tray. A background check shows a native English result dialog; a newer release page opens only after confirmation. No automatic download or installation.
The project author captured the same wallpaper while its display cache was being prepared and after it finished. The app plays the original media immediately in the foreground while conversion runs in the background.
| State captured in Task Manager | Memory shown | CPU shown | What the row includes |
|---|---|---|---|
| Background cache preparation (v0.1.6, 4K source) | 437.5 MB | 42.4% | App plus background cache worker during initial conversion |
| Cache ready, panel open (v0.1.6) | 41.4 MB – 47.4 MB | 1.3% – 2.5% | WallpaperLive app with library and controls visible |
| Desktop live playback (v0.1.6) | 37.8 MB | 1.5% | WallpaperLive app with the control panel closed |
| Minimized to tray (v0.1.5, retained photo) | 20.3 MB | 0.5% | WallpaperLive app with the control panel closed |
| Fullscreen/maximized auto-pause (v0.1.5, retained photo) | 4.5 MB | 0% | WallpaperLive app, playback paused |
The v0.1.6 snapshot shows 437.5 MB / 42.4% CPU during initial 4K wallpaper conversion, including the app and its background cache worker. Later panel-open captures show 41.4–47.4 MB; a separate desktop playback capture shows 37.8 MB / 1.5% CPU. The retained v0.1.5 photos show 20.3 MB / 0.5% CPU in tray and 4.5 MB / 0% CPU while auto-paused. These are individual Task Manager observations on the author's Windows 11 setup, not averages or fixed memory ceilings.
The tray and auto-pause figure retains the original v0.1.5 Task Manager photo strips supplied on 8 November 2026. Only the large metric annotations are recolored burnt orange (#D9541E); the photo pixels and displayed values remain unchanged. These are separate moments, not a controlled before/after benchmark.
Read the numbers in context. The new v0.1.6 captures were supplied on 9 November 2026; the retained tray and auto-pause photos are from v0.1.5. The roughly 400 MB conversion figure refers to initial 4K cache preparation, not steady playback; the v0.1.6 snapshot shows 437.5 MB for the app and worker together. Task Manager rounds live values; displayed 0% CPU is not proof of zero work. Its Memory column is not total private allocation, all process-tree memory or dedicated VRAM. Media, codec, display resolution, driver and cache state affect usage. No fixed RAM ceiling or GPU/VRAM savings are guaranteed.
Open the original screenshots
- Cache preparation (4K conversion): 437.5 MB, 42.4% CPU
- Cache ready, panel open: 41.4 MB, 2.5% CPU
- Tray playback on desktop: 20.3 MB, 0.5% CPU
- Desktop live playback: 37.8 MB, 1.5% CPU
- 3x3 Library panel open: 47.4 MB, 1.3% CPU
- Auto-paused: 4.5 MB, 0% CPU
The desktop capture also shows 0 MB/s disk and 0 Mbps network; paused shows 0 MB/s disk and 0 Mbps network. They do not measure GPU utilization or VRAM.
- Download wallpaperlivesetup-v0.2.1.exe and run it as your normal Windows user.
- If Setup needs a native decoder, review its download prompt and grant consent to continue. A matching installed decoder or verified local archive skips the download.
- Open WallpaperLive from the Start menu, add trusted local media, choose a thumbnail/display and select Set wallpaper.
Installer checksum · All releases
Installer downloads include the release version, such as wallpaperlivesetup-v0.2.1.exe, so different versions can sit in the same download folder. Downloading the same version twice may still add a browser suffix such as (1).
Open Settings to see the installed app's Version, taken from the executable's build rather than the installer filename.
Setup installs per user without administrator rights. It provides an option to launch the app on completion, but does not apply a wallpaper or enable startup automatically. These builds are unsigned: keep Windows security protections enabled. Store the installer in a dedicated folder without unrelated DLLs; do not run as administrator to bypass desktop access errors.
Offline install or upgrade
For an upgrade, install into the same folder; Setup reuses a matching decoder. For a first install without an in-setup download, obtain the pinned upstream archive, rename it mpv-dev.7z and place it beside the installer. Setup verifies both archive and DLL SHA256 values.
The decoder remains a separate download. Its complete dependency-source record has not been verified for redistribution; the installer does not republish it.
Selecting a thumbnail changes the preview, not active playback. Choose a display and use Set wallpaper to replace only that display's assignment, or choose All displays to apply the same file everywhere. Sound: On/Off selects or disables one wallpaper's audio track; only one stream plays audio at a time, and files without audio stay silent. Manual Pause/Resume affects all displays. Stop removes all live wallpapers without changing your Windows static wallpaper settings. Exit closes the app; closing the panel keeps it in the tray when the tray is available.
Upgrading from settings versions 1-3 keeps the previous wallpaper assigned to the same saved monitor, or to the primary display when no monitor name was saved. Migration does not expand playback to All displays. Settings version 4 stores per-monitor assignments; existing media, preferences and cache directories stay in place.
Each active display has an independent decoder. More displays can increase memory and GPU use, even when they show the same file. Frame-perfect synchronization between displays is not guaranteed. Cache preparation is serialized through one worker across all displays; the historical single-display resource captures above do not establish multi-display usage.
The picker accepts MP4, GIF, MKV, WebM, MOV, AVI, MPG, MPEG, M4V, APNG, PNG, JPG, JPEG, BMP and WebP. Codec support still depends on libmpv and your GPU. HDR and animated-image inputs use their original media rather than the SDR cache.
Cache, FPS and retained-pause details
- Cache conversion uses the installed libmpv encoder. It preserves originals, audio, aspect ratio and playback speed; smaller sources are not upscaled. H.264/AAC MP4 copies are keyed by source SHA256, display dimensions and a source-rate profile capped at 60 FPS, independent of the runtime cap.
- Runtime FPS changes use a pure frame-rate filter, without interpolation or playback-speed changes. CFR resampling can repeat frames around irregular timestamps; decoding still processes the cached source rate. One isolated native v0.1.3 test measured scheduled rates of 59.6 / 24.2 / 60.2 FPS for 60 / 24 / 60 choices, not physical display scanout.
- Conversion accepts finite video up to one hour/16 GiB, uses one below-normal-priority worker and stops at 15 minutes or 512 MiB per output. Cache budget is 2 GiB; if another copy cannot fit within the budget, conversion is refused and original playback continues. No files are evicted automatically. Clear unused cache requires confirmation and protects imported library media, all active originals and active or waiting cache outputs. Original media is never removed. Cancelled partials are never played. Cache lives in
%LOCALAPPDATA%\WallpaperLive\video-cache. - Pause stops animation/audio, releases thumbnails and cancels/defer conversion. Windows receives a resident-page trim request on confirmed pause, load completion and hiding the panel; this can reclaim resident pages without releasing private decoder allocations or dedicated VRAM. Pages can become resident again and page faults can increase. An unfinished conversion restarts in the background after resume. A completed cache waits at least two seconds after resume before a separate handoff near the current media position.
- Only nine visible thumbnails plus the selection are retained, each at most 480 × 270 pixels. Hidden, minimized or paused panels drop those buffers. Packet settings are 4 MiB forward, no backward cache and 0.2 seconds readahead, with two software-decode threads. These are not a total RAM cap.
- The encoder uses x264
veryfast, CRF 23, two threads, lookahead 10 and one reference frame (refs=1). Reference/lookahead values already matchveryfast; an additional 75% memory saving was not measured. CRF encoding is lossy, not a guarantee of identical pixels.
Historical v0.1.1 comparison, not the screenshot results above: one sequential RTX 3050 Laptop GPU fixture pair used a 1920 × 1080 native window with D3D11VA decoding for 15 seconds per condition. Original 4K/60 FPS used median 275.5 MiB working set / 856.3 MiB private bytes; 1080p/30 FPS cache used 187.1 MiB / 355.1 MiB. Process CPU was 3.79% / 1.84% of total machine capacity. After decoder destruction, working sets were about 57 MiB including the Python host, excluding the app panel. It was not a repeatability test; GPU utilization and VRAM were not measured.
The native decoder runs with your user privileges, not in a sandbox. Use media you trust: malformed files can crash the app. URLs, network paths, playlists and executable files are not accepted.
Desktop attachment can vary with Windows builds, HDR, virtual desktops, display reconnection and GPU drivers. The supplied screenshots establish one real setup, not compatibility with every device or media file. If Windows blocks Explorer access, leave playback stopped. Bug reports should include app version, Windows build, GPU, media format and reproduction steps.
Install a Rust toolchain with its Windows linker prerequisites, then build the app and obtain its decoder:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Build.ps1
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Get-Decoder.ps1 -Destination .\target\release\runtimeGet-Decoder.ps1 performs an explicit checksum-verified download. Release builds load the decoder beside the executable, never from a media folder or PATH.
Source checks and installer delivery
cargo fmt --all -- --check
cargo clippy --locked --all-targets -- -D warnings
cargo test --lockedWindows checks builds the application and installer on GitHub Actions. Download the installer and SHA256 manifest from the run's wallpaperlive-windows-x64 artifact. Version tags beginning with v publish those same files after checks pass; tags containing - are prereleases. CI does not install the app or exercise live desktop playback.
For maintainer packaging, Installer.ps1 runs after a release build and downloads a checksum-verified portable Inno Setup compiler when needed, without a global tool install:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Installer.ps1Setup File version is 0.2.1.0; Product version is 0.2.1. The installer build reads the output's PE version metadata and rejects a mismatch before publication.
The app and Start-menu shortcut use the same stable taskbar identity, Raflyf.WallpaperLive. Large and small icons are registered before the panel window is created; the executable also embeds the product ICO for the Windows shell. CI does not prove how an existing Windows taskbar renders it.
Support development via Buy me a coffee or Saweria. Support is optional and does not unlock or restrict features. Links open in your browser.
Both links are directly accessible in Settings.
GPL-3.0-or-later · Dependency notices · Icon sources · Screenshot sources
WallpaperLive's GPL license covers the app, not third-party wallpaper artwork shown in screenshots. libmpv is a separate native decoder; no wallpapers or decoder binaries are bundled.




