A wallpaper plugin integrating wallpaper engine into kde wallpaper setting.
- move scene to separate process
- Known issues:
- Some scene wallpapers may crash your KDE.
RemoveWallpaperSourceline in~/.config/plasma-org.kde.plasma.desktop-appletsrcand restart KDE to fix. - Mouse long press (to enter panel edit mode) is broken on desktop.
- Screen Locking is not supported, please not use this plugin in screen locking.
- Some scene wallpapers may crash your KDE.
- Support scene(2d),video,web wallpaper types
- Requires Wallpaper Engine installed on steam
- Requires C++20(gcc 10+)
- Requires Python 3.5+
- Requires Qt 5.13+ for playing video(no mpv), or mpv instead
- Requires Vulkan 1.1+, Opengl External Memory Object extension
- Requires vulkan driver installed
If you are using amd, please choose RADV driver.
Gentoo:
sudo emerge -av eselect-repository sudo eselect repository enable gig sudo emerge -av kde-misc/wallpaper-engine-kde-pluginDebian:
sudo apt install build-essential libvulkan-dev plasma-workspace-dev gstreamer1.0-libav \ liblz4-dev libmpv-dev python3-websockets qtbase5-private-dev \ libqt5x11extras5-dev \ qml-module-qtwebchannel qml-module-qtwebsockets cmakeFedora:
# Please add "RPM Fusion" repo first sudo dnf install vulkan-headers plasma-workspace-devel kf5-plasma-devel gstreamer1-libav \ lz4-devel mpv-libs-devel python3-websockets qt5-qtbase-private-devel libplasma-devel \ qt5-qtx11extras-devel qt5-qtwebchannel-devel qt5-qtwebsockets-devel cmakeArch:
sudo pacman -S extra-cmake-modules plasma-framework5 gst-libav ninja \ base-devel mpv python-websockets qt5-declarative qt5-websockets qt5-webchannel vulkan-headers cmakeVoid:
sudo xbps-install -S extra-cmake-modules plasma-framework \ gst-libav base-devel mpv python3-websockets qt5-declarative qt5-websockets \ qt5-webchannel plasma-workspace-devel mpv-devel liblz4-devel Vulkan-Headers cmakeopenSUSE:
# You'll need to add the Packman repository first sudo zypper in vulkan-devel plasma-framework-devel plasma5-workspace-devel \ libqt5-qtwebsockets-devel mpv-devel python310-websockets \ libqt5-qtx11extras-devel liblz4-devel gstreamer-plugins-libav \ libqt5-qtbase-private-headers-devel cmake extra-cmake-modulesFedora Kinoite:
see install via rpm-ostree
Still need to run commands below to get scene and mpv work.
Every time you receive update in discover, you should run these commands to update.
# Download source git clone https://github.com/catsout/wallpaper-engine-kde-plugin.git cd wallpaper-engine-kde-plugin # Download submodule git submodule update --init --force --recursive # Configure, build and install # 'USE_PLASMAPKG=ON': using kpackagetool tool to install plugin cmake -B build -S . -GNinja -DUSE_PLASMAPKG=ON cmake --build build cmake --install build # Install package (ignore if USE_PLASMAPKG=OFF for system-wide installation) cmake --build build --target install_pkg- remove files that list in
wallpaper-engine-kde-plugin/build/install_manifest.txt kpackagetool6 -t Plasma/Wallpaper -r com.github.catsout.wallpaperEngineKde
- Wallpaper Engine installed on Steam
- Subscribe to some wallpapers on the Workshop
- Select the steamlibrary folder on the Wallpapers tab of this plugin
- The steamlibrary which contains the steamapps folder
- This is usually
~/.local/share/Steamby default
- This is usually
- Wallpaper Engine needs to be installed in this steamlibrary
- The steamlibrary which contains the steamapps folder
You need to restart plasmashell after reinstalling the plugin
systemctl --user restart plasma-plasmashell.service
If you are using old kde, you can't run command above, please re-login.
Scene wallpapers are supported by vulkan 1.1
Requires Wallpaper Engine installed for assets(shaders,pictures...)
Only for testing and debug
Requires glfw
# git clone and init submodule cd src/backend_scene/standalone_view mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_QML=ON make -j$nproc ./sceneviewer --help argparse - Command line argument parser
stb - Image loading
vog/sha1 - SHA-1
effolkronium/random - Random wrapper for modern C++
miniaudio - Audio loading and playback
nlohmann/json - Json parsing
Eigen - Math operations
glad - Opengl loader
glslang - Glsl to Spv
SPIRV-Reflect - C/C++ reflection API for SPIR-V bytecode
VulkanMemoryAllocator - Vulkan memory allocation library
- Layer
- Image
- Composition / Fullscreen
- Text
- Effect
- Basic
- Mouse position with delay
- Parallax
- Depth Parallax
- ColorBlendMode
- PBR light
- Global bloom
- Camera
- Zoom
- Shake
- Fade / Path
- Audio
- Loop
- Random
- Visualization
- Particle System
- Renderers
- Emitters
- Duration
- Initializers
- Operators
- Control Points
- Mouse Follow
- Children
- Audio Response
- Puppet warp
- 3D model
- Timeline animations
- Scenescript
- User Properties
Basic web apis are supported, but the audio api does not send data for now.
WebEngineView in plasmashell can't init opengl.
Some wallpaper using webgl may not work, and performance may be bad.
The default video backend of this plugin.
It's using GStreamer to play video.
hwdecode for GStreamer
Need to compile the plugin lib.
The config is set to hwdec=auto, and is not configurable for now.
- RePKG
- RenderDoc
- NVIDIA Nsight Graphics
- learnopengl.com
- SaschaWillems/Vulkan
- All the open-source libraries mentioned above


