Transparency Support in Window Management

Is there any configuration available to enable transparency in overlay sections that utilize decorators?
For instance, can the Wi-Fi section in the tiled_wm example be made transparent so that the background elements remain visible?
If not, which component or mechanism is responsible for handling transparent window elements in Sculpt?

My laman’s understanding is that the setup is described well in this article: https://genodians.org/jschlatow/.../nfeske/2020-03-27-window-management

And that to change the decorations, you would need to make a fork of the themed decorator component

Which is set up in this sculpt script genode/repos/gems/sculpt/deploy/window_manager at 016d63703d08afd6c20b57f0acdfa2363e6be350 Ā· genodelabs/genode Ā· GitHub if you wanted to change the sculpt preset as well

And exits in github here: genode/repos/gems/src/app/themed_decorator at 016d63703d08afd6c20b57f0acdfa2363e6be350 Ā· genodelabs/genode Ā· GitHub

There seems to be code that applies fading here: but I’m not sure exactly what uses it

You might be able to insert it directly somewhere or else use it as inspiration

1 Like

Wait, just double checking- but by ā€˜WiFi section’, do you mean the Network tab of ā€œLeitzentraleā€? If so - you can hide the entire Leitzentrale overlay by pressing F12.

Thank you for the clarification. I realize now that I did not clearly communicate my needs. I am currently working on developing and practicing with the Genode framework. One feature I noticed in the Sculpt operating system — but have not yet been able to replicate in my own exercises — is page transparency. In Sculpt, the main page appears transparent relative to the applications, allowing the underlying content to be visible. Pressing F12 switches to the page in focus. I would like to implement a similar level of transparency — typically controlled by the ā€œalphaā€ parameter in UI design — in my own page layouts, but I have not yet succeeded.

Genode’s nitpicker (the on-screen renderer) supports alpha channel blending, aka transparency, but I understand it must be activated at window construction time, in the C++ code:

In the above example, the .alpha boolean is set to false, so nitpicker will not apply any transparency to the window (or ā€œViewā€ in nitpicker parlance). If you set it to true, then I assume all kinds of neat window compositing tricks are possible.

Some of the built-in Genode components might expose that as an XML setting, so that you don’t have to fork the C++ code? I’m not aware of any (but I’m still exploring Genode after all the years.

Ah- looking at the leitzentrale configuration it seems like the component that handles the fading is this one linked earlier after all!

I confess I don’t know enough about genode to say how to link your UI element with this component, but I can try looking into it more later in the week when I have more time.

Possibly this line is giving you grief?

You can find a simple example of integrating the GUI fader at gems/run/gui_fader.run. It starts two instances of the Scout tutorial browser, one connected directly to nitpicker, and the other one connected through the GUI fader. To see the fading, one has to drag either one of the windows for a bit.

2 Likes

Just for clarification: Are you addressing a Qt-based application that should use the nitpicker alpha-channel feature as you wrote the folloowing?

For instance, can the Wi-Fi section in the tiled_wm example be made transparent so that the background elements remain visible?

AFAIK our Qt platform does not support any such feature currently.