Isn’t this supposed to be a job for the window manager?

For example, my virtualbox install has some mouse pointer bugs on wayland, and I can’t run waydroid on X. These things are weird to me. Shouldn’t window managers abstract all that for the software we run?

  • gabmus@lemm.ee
    link
    fedilink
    arrow-up
    31
    ·
    11 months ago

    The application needs to speak a protocol to be able to use it. If you use a X wm your apps need to be able to talk X’s protocol to work, if you use a Wayland compositor your apps need to be able to talk Wayland’s protocol (or run on Xwayland, which is basically an X server that runs inside Wayland).

    The wm/compositor abstractions only work if your apps know how to use them via the correct protocol

      • baseless_discourse@mander.xyz
        link
        fedilink
        arrow-up
        10
        arrow-down
        1
        ·
        edit-2
        10 months ago

        Typically the abstraction to draw elemnts inside a app window is in the application framework, like GTK, Qt, Electron (chromium), etc.

        This is also why apps built with the same framework typically have the same problem on wayland (looking at you, electron).

        The abstractions you are thinking of is not in the window manager, which only controls things outside of the main app window, like tiling, border, window top bar, etc.

        • nossaquesapao@lemmy.eco.brOP
          link
          fedilink
          arrow-up
          2
          ·
          11 months ago

          Yes, part of my confusion was simply mixing up the job of the app frameworks/gui toolkits for the wm. It was weird to me that some apps like firefox had to provide wayland support by themselves and couldn’t simply rely on abstraction layers from whathever they’re coded in. However, I looked for some info, and found out that firefox renders some widgets on its own, and now it makes sense that they need to provide wayland support.

      • aperson@beehaw.org
        link
        fedilink
        English
        arrow-up
        4
        ·
        11 months ago

        They are themselves abstraction layers for the apps that are made for them. Software has many levels of abstraction from what you see on the screen all the way down to hardware.

      • bitwolf@lemmy.one
        link
        fedilink
        arrow-up
        3
        ·
        11 months ago

        That is how portals work in Wayland.

        For X there was only one protocol, so they all wrote for x.
        This also allowed some hacky things to be done that are questionable from a security standpoint afaik.

      • phx@lemmy.ca
        link
        fedilink
        arrow-up
        3
        arrow-down
        1
        ·
        11 months ago

        If you’ve ever had your WM crash, then you may lose the decorations on your windows, the ability to minimize/maximize them or move them around, but the windows themselves still stick around. Restarting the WM brings that all back as well

  • brenno@lemmy.brennoflavio.com.br
    link
    fedilink
    arrow-up
    17
    ·
    11 months ago

    As an addition to other responses, think that most apps (specially smaller ones) are developed using some framework or set of libraries that might or might not support those protocols.

    So let’s pretend that I have an app buit using Electron and that framework does not support Wayland. There’s nothing I can do on the app side until Electron supports Wayland in this fake example.

    So it actually takes time for the libraries to support the new protocol and then app developers to update their apps to support it aswell.

    That’s why you see that the Wayland migration is incremental and not all at once.

  • NeoNachtwaechter@lemmy.world
    link
    fedilink
    arrow-up
    9
    ·
    edit-2
    11 months ago

    Imagine the whole thing like a graphics card that is in a different PC. Your app wants to draw it’s content on the remote screen. Only it’s own content inside it’s own window. This is not screen sharing. Your app cannot touch any other apps.

    X11 is the connection between your app and the remote graphics card. It may be the local card as well, it is the same.

    Technically, a wm is not needed. The app and X11 would work anyway.

    Shouldn’t window managers abstract all that for the software

    The wm does not interrupt or change any communication between the app and the screen. It amends it with decoration and control buttons etc. for example it draws the window borders around the app’s own window area.

  • OsrsNeedsF2P@lemmy.ml
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    11 months ago

    In the case of Waydroid, it depends on features only available in Wayland; simple as that.

    There are some applications (like autoclickers) that depend on features only available in X, as well (mainly because they directly ask X to do something)