Rendering window thumbnails etc

Ilia Bozhinov ammen99 at gmail.com
Wed May 22 20:36:27 UTC 2019


If you have a panel/any UI elements, then you most probably have a protocol
to communicate that the UI element surface is a special surface. You could
then just extend this protocol so that you specify Z-ordering of these
surfaces, and then the compositor should respect that.

If it might help here is the wlr-layer-shell protocol:
https://github.com/swaywm/wlr-protocols/blob/master/unstable/wlr-layer-shell-unstable-v1.xml

With it, you basically have several layers where you can put the UI
elements that you have drawn outside of the compositor, and then you can
use the `namespace` to adjust ordering within the specific layer.

However, if you implement the window switcher in-compositor, I see no
problem in just making the compositor dim the background (or the whole
desktop) internally.



On Wed, May 22, 2019 at 8:46 PM adlo <adloconwy at gmail.com> wrote:

> > On 24 May 2017, at 19:41, Quentin Glidic <
> sardemff7+wayland at sardemff7.net> 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?
>
> Regards
>
> adlo
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20190522/e7b0e228/attachment.html>


More information about the wayland-devel mailing list