How deliasama/linux-wallpaperengine works
linux-wallpaperengine reproduces Wallpaper Engine backgrounds on Linux and adds a Qt wallpaper-selection GUI. The GUI startup discovers installed Steam Workshop wallpapers; the separate command-line path parses runtime settings and starts the wallpaper application, which coordinates rendering to desktop outputs. Wallpaper content includes scene, video, and web types, with audio, mouse input, scaling, fullscreen pausing, and screenshot capabilities represented in the runtime. The tree and README establish these product areas, but unsampled implementations limit certainty about several internal call paths.
Main entry points: main.cpp Program entry · CWallpaperApplication.cpp Wallpaper application · CWallpaper.cpp Wallpaper model · UIWindow.cpp Wallpaper selector
Components 26
Application entry
- Program entry
src/main.cpp - Runtime settings
src/WallpaperEngine/Application/CApplicationContext.cpp - Wallpaper application
src/WallpaperEngine/Application/CWallpaperApplication.cpp - Application context
src/WallpaperEngine/Application/CApplicationContext.cpp
Wallpaper content
- Wallpaper project
src/WallpaperEngine/Core/CProject.cpp - Wallpaper model
src/WallpaperEngine/Core/CWallpaper.cpp - Scene content
src/WallpaperEngine/Core/Wallpapers/CScene.cpp - Video content
src/WallpaperEngine/Core/Wallpapers/CVideo.cpp - Web content
src/WallpaperEngine/Core/Wallpapers/CWeb.cpp
Rendering
- Render context
src/WallpaperEngine/Render/CRenderContext.cpp - Wallpaper renderer
src/WallpaperEngine/Render/CWallpaper.cpp - Display outputs
src/WallpaperEngine/Render/Drivers/Output/COutput.cpp - Video driver
src/WallpaperEngine/Render/Drivers/CVideoDriver.cpp
System integrations
- Workshop lookup
src/Steam/FileSystem/FileSystem.cpp - Audio subsystem
src/WallpaperEngine/Audio/CAudioContext.cpp - Mouse input
src/WallpaperEngine/Input/CInputContext.cpp - Fullscreen detection
src/WallpaperEngine/Render/Drivers/Detectors/CFullScreenDetector.cpp - CEF browser
src/WallpaperEngine/WebBrowser/CWebBrowserContext.cpp - Wallpaper asset scheme
src/WallpaperEngine/WebBrowser/CEF/CWPSchemeHandler.cpp
Selection GUI
- Wallpaper selector
src/Qt/UIWindow.cpp - Wallpaper settings
src/Qt/WallpaperSettingsWidget.cpp - Wallpaper button
src/Qt/WallpaperButton.cpp - Single instance
src/Qt/SingleInstanceManager.cpp
Other components
- User
- Steam Workshop
- Steam wallpaper assets
Connections 25
- User → Program entry: starts
- Program entry → Single instance: checks instance
- Program entry → Workshop lookup: finds workshop
- Workshop lookup → Steam Workshop: searches install
- Program entry → Wallpaper selector: opens selector
- Program entry → Runtime settings: parses options
- Runtime settings → Application context: sets runtime state
- Program entry → Wallpaper application: starts runtime
- Wallpaper selector → Wallpaper button: displays wallpapers
- Wallpaper selector → Wallpaper settings: configures wallpaper
- User → Wallpaper selector: selects wallpaper
- Steam Workshop → Steam wallpaper assets: provides assets
- Wallpaper application → Render context: coordinates rendering
- Render context → Wallpaper renderer: renders wallpaper
- Render context → Video driver: uses driver
- Video driver → Display outputs: manages outputs
- Wallpaper project → Wallpaper model: describes content
- Wallpaper model → Scene content: supports scene
- Wallpaper model → Video content: supports video
- Wallpaper model → Web content: supports web
- Web content → CEF browser: renders web content
- Wallpaper asset scheme → Steam wallpaper assets: reads project files
- Wallpaper application → Audio subsystem: coordinates audio
- Wallpaper application → Mouse input: coordinates input
- Wallpaper application → Fullscreen detection: checks fullscreen