Open colemickens opened 1 year ago
Well, this is very interesting way to make live-wallpaper, I did not know about it.
I remember I was looking to render shaders in Gnome Desktop in Wayland - and it was actually impossible, even thru Gnome extensions, only KDE-extension in Wayland allow to render shadertoy shaders on desktop. This shader https://www.shadertoy.com/view/NslGRN has two links for my implementation (there old Gnome3, but as I know Gnome4 has same limitations so works only in x11 Gnome3)
Speaking about your context:
wlr-layer-shell-unstable-v1#zwlr_layer_shell_v1
look like it is unstable feature?
As I mention in https://github.com/danilw/vulkan-shadertoy-launcher/blob/master/os_utils/wayland_utils.h :
// Wayland does not have stable "decoration" support, xdg-decoration not supported
// zxdg_toplevel_decoration_v1 is unstable
Reason why I have not added decoration support to Wayland - because I have not found "stable example" that works everywhere, only stable I saw was - Gnome Wayland integration, but integrating dependency from Gnome - it just explodes binary size from 50Kb to 500Kb+
I need to recheck it again, maybe there is some simple way to do correct decoration in Wayland without exploding binary and code size.
I mean I had it in "TODO", il add your request also to "future-TODO", currently im finishing/working on my other projects.
I say - I may look on to do it in next few months, ofc you can make it faster if you want to and Pull request.
Note to Pull request - only if there simple way to make it without new dependency and not exploding code, this is not wallpaper/screensaver - only if solution small I will add it to this repository. If solution big - better make your own fork of this my vulkan-shadertoy-launcher and add all changes there, il add link to your fork to this description page.
I have figured out how to create this functionality using Qt6 and QML as a separate project. I can even set a web browser (with qt webengine) as my wallpaper :joy: I can interact with it if nothing is in the way.
I used https://invent.kde.org/plasma/layer-shell-qt along with dynamically loading a qml file that displays something. I have not tested shaders yet but considering there is a vulkan backend built into Qt6 and that I managed to get a 3d scene and a web browser working I think it is definitely possible.
I will share my repository here soon in case anyone's interested 😄
@theoparis cool, but this my project main point is - small size, 30Kb size and almost no memory-ram usage. I thought it "have sense" to make wayland-native-wallpaper support for reason - "no overhead". But I have way too many other plans for now, so even if I make something for this project - it will be months latter if in this year.
https://wayland.app/protocols/wlr-layer-shell-unstable-v1#zwlr_layer_shell_v1
By supporting wlr-layer-shell,
vukan-shadertoy-launcher
could be a wallpaper replacement for users of wlroots-based wayland compositors.