# Transparency Support in Window Management

**URL:** https://genode.discourse.group/t/transparency-support-in-window-management/168
**Category:** Developer's Corner
**Created:** [April 26, 2025, 7:40am UTC](https://genode.discourse.group/t/transparency-support-in-window-management/168 "2025-04-26T07:40:35Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![hamed](https://avatars.discourse-cdn.com/v4/letter/h/d6d6ee/32.png) [@hamed](https://genode.discourse.group/u/hamed)
#### Post date: [April 26, 2025, 7:40am UTC](https://genode.discourse.group/t/transparency-support-in-window-management/168/1 "2025-04-26T07:40:35Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![spenc](https://dub1.discourse-cdn.com/flex006/user_avatar/genode.discourse.group/spenc/32/71_2.png) [@spenc](https://genode.discourse.group/u/spenc)
#### Post date: [April 26, 2025, 4:00pm UTC](https://genode.discourse.group/t/transparency-support-in-window-management/168/2 "2025-04-26T16:00:16Z")

</div>

My laman’s understanding is that the setup is described well in this article: [https://genodians.org/jschlatow/.../nfeske/2020-03-27-window-management](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](https://github.com/genodelabs/genode/blob/016d63703d08afd6c20b57f0acdfa2363e6be350/repos/gems/sculpt/deploy/window_manager#L4) 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](https://github.com/genodelabs/genode/tree/016d63703d08afd6c20b57f0acdfa2363e6be350/repos/gems/src/app/themed_decorator)

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

> <https://github.com/genodelabs/genode/blob/master/repos/gems/src/server/gui_fader/main.cc>

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

---

<div class="post-metadata">

### Author: ![spenc](https://dub1.discourse-cdn.com/flex006/user_avatar/genode.discourse.group/spenc/32/71_2.png) [@spenc](https://genode.discourse.group/u/spenc)
#### Post date: [April 27, 2025, 2:41am UTC](https://genode.discourse.group/t/transparency-support-in-window-management/168/3 "2025-04-27T02:41:30Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![hamed](https://avatars.discourse-cdn.com/v4/letter/h/d6d6ee/32.png) [@hamed](https://genode.discourse.group/u/hamed)
#### Post date: [April 27, 2025, 5:49am UTC](https://genode.discourse.group/t/transparency-support-in-window-management/168/4 "2025-04-27T05:49:49Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![ttcoder](https://dub1.discourse-cdn.com/flex006/user_avatar/genode.discourse.group/ttcoder/32/9_2.png) [@ttcoder](https://genode.discourse.group/u/ttcoder)
#### Post date: [April 27, 2025, 6:41am UTC](https://genode.discourse.group/t/transparency-support-in-window-management/168/5 "2025-04-27T06:41:52Z")

</div>

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:

> <https://github.com/genodelabs/genode/blob/016d63703d08afd6c20b57f0acdfa2363e6be350/repos/os/src/test/nitpicker/main.cc#L200>

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.

---

<div class="post-metadata">

### Author: ![spenc](https://dub1.discourse-cdn.com/flex006/user_avatar/genode.discourse.group/spenc/32/71_2.png) [@spenc](https://genode.discourse.group/u/spenc)
#### Post date: [April 27, 2025, 6:48am UTC](https://genode.discourse.group/t/transparency-support-in-window-management/168/6 "2025-04-27T06:48:17Z")

</div>

Ah- looking at [the leitzentrale configuration](https://github.com/genodelabs/genode/blob/016d63703d08afd6c20b57f0acdfa2363e6be350/repos/gems/sculpt/leitzentrale/default#L60) it seems like the component that handles the fading is [this one linked earlier after all!](https://github.com/genodelabs/genode/blob/016d63703d08afd6c20b57f0acdfa2363e6be350/repos/gems/src/server/gui_fader/main.cc#L33)

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.

---

<div class="post-metadata">

### Author: ![spenc](https://dub1.discourse-cdn.com/flex006/user_avatar/genode.discourse.group/spenc/32/71_2.png) [@spenc](https://genode.discourse.group/u/spenc)
#### Post date: [April 27, 2025, 7:09am UTC](https://genode.discourse.group/t/transparency-support-in-window-management/168/7 "2025-04-27T07:09:16Z")

</div>

Possibly this line is giving you grief?

> <https://github.com/genodelabs/genode/blob/016d63703d08afd6c20b57f0acdfa2363e6be350/repos/os/src/server/nitpicker/view.cc#L119>

---

<div class="post-metadata">

### Author: ![nfeske](https://dub1.discourse-cdn.com/flex006/user_avatar/genode.discourse.group/nfeske/32/6_2.png) [@nfeske](https://genode.discourse.group/u/nfeske)
#### Post date: [April 27, 2025, 4:05pm UTC](https://genode.discourse.group/t/transparency-support-in-window-management/168/8 "2025-04-27T16:05:29Z")

</div>

You can find a simple example of integrating the GUI fader at [gems/run/gui\_fader.run](https://github.com/genodelabs/genode/blob/master/repos/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.

---

<div class="post-metadata">

### Author: ![chelmuth](https://dub1.discourse-cdn.com/flex006/user_avatar/genode.discourse.group/chelmuth/32/1_2.png) [@chelmuth](https://genode.discourse.group/u/chelmuth)
#### Post date: [April 28, 2025, 5:51am UTC](https://genode.discourse.group/t/transparency-support-in-window-management/168/9 "2025-04-28T05:51:59Z")

</div>

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.
