I am trying to create a wallpaper engine for KDE using Rust for some reasons:
- The current version uses Vulkan as a backend, which is not supported by Asahi Linux.
- The installation puts the .so file in the system level directory, which is not necessary.
- It uses rpc to communicate between the frontend and the backend. I dont like this approach.
- Having fun with Rust.
- Make a KDE wallpaper plugin which can be found in the wallpaper settings.
- Provide our functionality to the QML frontend as a .so file.
- Render the wallpaper using Qt GSNode.
- Render a triangle using OpenGL and Qt.
- VFS to load local assets and unpacked assets from the scene file.
- Hardcode to render a walllpaper from the steam workshop.
- Scene unpacker, see RePkg
- Shader preprocessor, inc
#include
,// [COMBO]
- JSON parser to load the
scene.json
file. - Rewrite the renderer part, because it may contain multiple scene objects.
- Logger, watch debug output in the plasma shell.
- Switch to
anyhow
for error handling.
- [] Finish a workflow in test mod, 1. load a scene file and mount unpacked files, 2. load the scene.json file, 3. read the shader files, 4. render the wallpaper.
- Shaders in a unpacked scene file is not using standard GLSL. They support
#include
, which comes from~/steam/steamapps/common/wallpaper_engine/assets/
. Technically, I can embed these files, but due to the copyright issue, I will not do that.
- Probably unnecessary to all-in Rust. Remake the rendering part in C++ and port it to Rust. Because the Qt bindings are not stable yet. Indeed, I can port more Qt APIs, but it is not worth it.
- If above, do the config parsing part, and other parts, which are not related to Qt, in Rust.