Rendering window thumbnails etc

adlo adloconwy at
Wed May 22 18:46:34 UTC 2019

> On 24 May 2017, at 19:41, Quentin Glidic <sardemff7+wayland at> wrote:
> On 5/24/17 8:37 PM, adlo wrote:
>> What I would like to do is get the desktop window so that I can display a fake live image of the empty desktop as a background to my full-screen window switcher, so that I can imply that the windows have flown up and rearranged themselves on the window switcher, similar to GNOME Shell, but without the 3D effects or GL stuff.
>> At the moment I have something like this:
>> WnckWindow * lightdash_compositor_get_root_window (LightdashCompositor *compositor)
>> {
>>    GList *li;
>>    for (li = wnck_screen_get_windows (compositor->screen); li != NULL; li = li->next)
>>    {
>>        WnckWindow *win = WNCK_WINDOW (li->data);
>>        if (wnck_window_get_window_type (win) == WNCK_WINDOW_DESKTOP)
>>        {
>>            return win;
>>        }
>>    }
>>    return NULL;
>> }
>> How could I do this?
> You don’t, the compositor does. If you need that, you ask the compositor to do it, because only the compositor knows the content of other clients’ surfaces.
> That would require additions to the protocol. If you are interested, please file an issue on GitHub so we can discuss the details.

I would like my window switcher client to draw a semitransparent background over my fake desktop image, so that it basically looks like GNOME Shell's Activities Overview. It will then draw the UI elements on top of the background. Basically like this:

UI elements (top)
Semitransparent UI background
Fake full-screen live desktop image (bottom)

If some elements are rendered by my client and some are rendered by the compositor, how do I ensure they are always rendered in the right order, i.e. that the fake desktop image does not obscure the UI chrome?



More information about the wayland-devel mailing list