Website • wallpaperd • wpe-compile • Examples
OpenWallpaper is a powerful open source platform for interactive live wallpapers. Heavily inspired by Wallpaper Engine, it steps away from restrictive declarative scene formats in favour of WebAssembly. In OpenWallpaper, a scene is a WASM module - meaning if you can code it, you can make it a wallpaper!
It runs on Linux Wayland with wlr-layer-shell protocol, supporting KDE Plasma Wayland, Hyprland and wlroots-based compositors. More platforms will be added soon.
- 🧩 WASM scenes - implement any kind of complex scene logic by just writing code
- 🚀 High performance - renderer written in C and SDL3 GPU, with Vulkan, DirectX and Metal backends
- 🕊️ Lightweight runtime - only 11 MB with all the dependencies bundled
- ⚙️ Wallpaper Engine support - automatically convert Wallpaper Engine
pkgscenes into OpenWallpaperowfscenes - 🎵 Audio visualization - make your scene react to the beat of currently playing music
- 🔋 Battery friendly - options to pause rendering on battery or when wallpaper is hidden
Download, build and install wallpaperd host application:
git clone --depth=1 --recurse-submodules https://github.com/mechakotik/openwallpaper
cd openwallpaper/wallpaperd
mkdir build && cd build
cmake ..
cmake --build . -j$(nproc)
sudo cmake --install .Run fullscreen-shader example from OpenWallpaper website (more examples here):
wget http://openwallpaper.org/fullscreen-shader.owf
wallpaperd fullscreen-shader.owfYou may convert Wallpaper Engine pkg scenes into OpenWallpaper owf scenes using wpe-compile. Instructions on how to do it are available on wpe-compile page at OpenWallpaper webiste.
Note that not all Wallpaper Engine features are supported, and conversion is not always 100% accurate. Though it can already convert many scenes without issues.
- Developer guide - step-by-step tutorial for making simple scenes
- Examples - minimal scene examples with source code
- API reference - documentation for
openwallpaper.hfunctionality
Contributions are more than welcome! Areas where project needs help:
- Packaging for Linux distributions
- Porting wallpaperd features to more platforms (see platform support)
- Improving wpe-compile accuracy (see support status)
- Making new OpenWallpaper scenes and sharing them