-
-
Notifications
You must be signed in to change notification settings - Fork 23k
[macOS/Windows] Implement live wallpaper mode. #106478
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested locally, it works as expected.
Testing project: test_live_wallpaper.zip
Example on macOS 15.4.1 (with maximized window, pure black wallpaper, dock is autohidden so it appears fullscreen):

Some feedback:
-
Per-pixel transparency works. That said, you could also fetch the user's current wallpaper using OS APIs and apply it as a background to your project using a TextureRect, which is more efficient, more reliable and won't prevent you from using effects that only work with opaque viewports.
-
If you only enable the wallpaper flag, the window borders will still be visible, but you can't interact with them (even if you alt-tab to focus the window). Should we make this flag also force the window to be borderless at the same time?
-
Should we have
wallpaper
as a project setting, so you can enable it without needing a script? This would also allow us to warn users that it won't work when game embedding is enabled, similar to the fullscreen window mode. -
For a live wallpaper that covers the whole screen without changing workspaces on macOS, it seems you need to use the Maximized window mode, not Fullscreen or Exclusive Fullscreen. I'm curious how you can make the live wallpaper cover what's behind the dock/task bar though (since these are translucent by default).
Providing relevant project settings is very necessary. |
Adds window flag to move window to the desktop level (above wallpaper, below desktop icons).
Implements godotengine/godot-proposals#5388 for Windows and macOS.
Updated version of the POC from godotengine/godot-proposals#5388 (reply in thread)
macOS:
Screen.Recording.2025-05-16.at.09.54.22.mov
Windows 11:
Recording.2025-05-16.104713.mp4