Edit USE_WAYLAND=True to USE_WAYLAND=False in cube_lines_shader.py, and launch python3 cube_lines_shader.py in Wayland.
This will force X11 on Wayland and Window correctly will be displayed on “desktop below everything else” but FPS will be very low.
Now I’m sure others can add more detail but my understanding is both are somewhat expected behaviour, if nothing else wayland doesn’t have a root/desktop window and set_keep_below is documented to only “work” on X11
then how it work when os.environ['GDK_BACKEND'] = 'x11' is set? it make window below everything
and everything is fine except when using GLArea FPS become “broken”
I tried to override draw event for GLArea, FPS is fine until I call any OpenGL function in draw function.
There’s no such mechanism exposed to Wayland clients. Wayland clients do not have access to the stacking order as maintained by the window manager, and do not have the API to influence that stacking order either.
That functionality is only available to the window manager, and exposed to the user through the UI controls of the window manager. Client applications cannot do that.
As a user command? No. There’s only “always on top”.
Programmatically? No, as I already told you.
If you want to create an “animated background” for GNOME that works on every display server, and that does not get throttled by the window manager, you will need to write it as a Shell extension, not as a separate client application.