Skip to content

FlashOnFire/waypaper-engine

Repository files navigation

🎨 Waypaper Engine

Waypaper Engine is a Linux port of the popular Windows app Wallpaper Engine.
Customize your desktop with beautiful, animated wallpapers created by the community.

🚧 Project Status: Very Early Development

⚠️ Disclaimer:
This project is in a very immature state and is not ready for general use.

  • Many features are incomplete or unimplemented.
  • Expect bugs, crashes, and breaking changes at any time.
  • Nothing is guaranteed to work reliably.

If you're trying it out, please consider it a preview and not a fully functional application. Contributions and feedback are welcome as we continue to improve!

Current app state:

🟢 Fully Functional:

  • Rendering through the wlr_layer_shell protocol:
    Handles wallpaper rendering on supported Wayland compositors seamlessly. Tested on Hyprland and KWin.
  • Wallpapers discovery and deserialization:
    Supports extracting and interpreting Wallpaper Engine proprietary formats for textures and other assets.
  • Simple UI for choosing a wallpaper:
    A basic user interface is available with search functionality but lack advanced options

🟡 Partially Working:

  • Video wallpapers:
    Basic playback functionality is implemented using video_rs and a homemade renderer using OpenGL, but stability needs improvement.
  • Multiscreen support:
    Works in basic scenario, needs more testing for exotic setups. Fully implemented on daemon side, but the UI currently don't refresh monitor list on hotplug and needs to be restarted

🛠️ In Progress:

  • Customization and advanced settings:
    Settings for selecting WE installation directory, fps cap, animation speed, etc
  • IPC:
    A way to communicate with the daemon without the UI to integrate the app in your bash scripts, startup scripts, or automation apps of your choice
  • Scenes and Web wallpapers:
    More advanced wallpaper types, involving 3D real-time rendering or web display

🔴 Out of Scope (Won't be supported):

  • X11 compatibility
    The project is focused exclusively on Wayland for modern compositors; X11 will not be supported.
  • Application wallpapers:
    Wallpapers involving execution of windows .exe files are not in scope of this project
  • Interactive wallpapers:
    Wallpapers requiring user interaction or advanced scripting won’t be implemented. (Might be supported later but this is not a priority)

✨ Features

  • 🖼️ Bring Wallpaper Engine to Linux !
  • 🌐 Access a vast library of community-made wallpapers from the Wallpaper Engine workshop
  • ⚡ Written in Rust — lightweight, reliable, and blazingly fast
  • ✅ Designed with correctness in mind and a focus on avoiding memory leaks.
  • 🔧 Easy to configure and use (coming soon)

📋 Requirements

  • Rust >1.79
  • A wayland compositor supporting the wlr_layer_shell protocol (tested on Hyprland and KWin)

You’ll need a valid copy of Wallpaper Engine, available for purchase and installation through the official Linux Steam client.

🛠️ Installation

Work In Progess

🚀 Usage

The app is split in two binaries : the daemon (service) and the UI. The daemon handles setting up the wallpaper and runs independently, even after you close the UI. This means you can enjoy animated wallpapers while saving system resources by not keeping the UI open !

To start the daemon, run:

cargo run --bin waypaper_engine_daemon --release

To start the UI, run:

cargo run --bin waypaper_engine_ui --release

Important: Always start the daemon before launching the UI. Currently, the app requires Wallpaper Engine to be installed from Steam in the default directory

Configuration

WIP

🤝 Contributing

Contributions are welcome! If you'd like to contribute, just make a PR.

📬 Contact

For any questions or feedback, feel free to fill a GitHub issue.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •