this post was submitted on 16 Nov 2023
39 points (91.5% liked)

Linux

48635 readers
1673 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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?

you are viewing a single comment's thread
view the rest of the comments
[–] qwesx@kbin.social 23 points 1 year ago* (last edited 1 year ago) (1 children)

X11 and Wayland are just protocols. These protocols are used to abstract the window drawing from the actual hardware and runtime environment as much as reasonably possible - because nobody wants to maintain 3215 versions of their app for different runtime environments. So in order to be shown on the screen an app needs to implement either the X11 or the Wayland protocol (or both!).

The piece of software that is on the other side depends on whether the app is using X11 or Wayland. For the sake of simplicity let's assume that the app does only support one of those. If the app supports Wayland then it will try to connect to a Wayland compositor. The compositor implements every part of the protocol and makes sure that the window is rendered on the screen and that user input is forwarded to the app. If the app supports X11 then it will try to connect to a X server and take the role of an X client. This is (on Linux, essentially) always X.org*. X.org also implements every part of the protocol and makes sure that the window is rendered on the screen and that user input is forwarded to the app.

* Unless you're running a Wayland compositor, then it will connect to XWayland which passes through the window to your compositor.

Wayland compositors have full control over the apps while the abilities of apps are purposefully restricted.
A window manager is just another regular, boring, old X client connecting to the X server. It doesn't actually abstract anything. It can move windows because the X11 protocol allows it to, but any other X client could just as well move all other windows around, read all user input to all other windows and even move the mouse around as it pleases.

So, to be specific, there is no mouse pointer bug in Virtualbox while using Wayland. There is a mouse pointer bug affecting specific Wayland compositors, likely because they enforce GPU hardware acceleration that is lacking in either your VM or the Linux kernel because of missing drivers. Try using a different compositor, (re)installing Virtualbox Guest Additions with the correct version on the guest system and/or check whether hardware acceleration is enabled for the VM and has enough video memory.

[–] nossaquesapao 3 points 1 year ago

Thank you. It's all a bit confusing, but I'm starting to get it.