On 6/9/25 10:52, Carsten Haitzler wrote:
On Mon, 9 Jun 2025 08:48:10 -0500 Vasily <[email protected]> said:
My personal opinion is that there are some issues need to be solved before
wayland compositor can substitute X11. So I think X11 will work for us
another 5 -10 years.
oh absolutely. wl needs maturing - a lot. there is much work to do. there also
is no reason you couldn't also take xorg and "strip it down and divide it up".
you could solve a lot of security and boundary issues by e.g. disabling any
xrandr "write" access (modification) to any client by the wm. first client in
wins (wm) and it's in charge. this stops any random client form messing with
screen layout. we could start limiting access to xinput and xinput devices,
limit what events you can listen to on windows that are not your own (unless
you are the wm), and so on - it'd break some functionality in x - but it'd
start solving problems. you could tackle it from this angle or from "build
wayland" angles. either way it'll result in something breaking and some
transition mess etc. etc.
now my issues with wayland are indeed that it has yet to fully mature. there
have been some not so great decisions that are seemingly heading in the right
direction now. there are other things that are core issues. IMHO wlroots is a
stab at some of that but IMHO there should have been much more done earlier on
here and in ways that are more render-agnostic.
I agree with the "strip it down and divide it up". X11 does already
have some of the "divide it up" using extensions, but this should be
applied to the guts. I've seen numerous people say over the years that
X11 still has a lot of legacy aspects to it and I always wondered why
all that didn't get pulled from the code base (or again moved into an
extension if still "desired"). I understand that some obscure app may
no longer work, but that would be a fraction of a percent of users. The
benefit to the community would be greater than the encountered headache
for that small subset of users (which could just continue using the last
working version of X11 with their app(s)).
In addition to the stripping of outdated/unnecessary code, it would
reduce the size of the X system and reduce malicious attack vectors to
gain access to a device. Honestly, I'd try to either make X work
without running as root, or make the "core" part of X as small as
possible to address this issue. As a by-product of stripping out this
code, it should speed up the system, even if marginally...
This is just a list of things provided so far in this thread that could
be reworked, removed, or moved to an extension:
(Lyude Paul <[email protected]>)
- heavy round trips in its protocol
- the fact that most modern compositing on X is just extension on
extension on top of the actual X11 server which no longer does half of
the things it's supposed to handle
- ability to draw its own widgets
- has font rendering
- has a HAL for video drivers and input drivers
(Carsten Haitzler <[email protected]>)
- isolate all the core 2d rendering in xorg into a "legacy" module to
keep it "out of sight"
- most of the rest of x's problems are the protocol and what is assumed
to be allowed by clients or not (like being able to send fake input to
any app or read input events on any window anywhere - even not your own
etc.)
- rendering model can evolve too with a wayland-like explicit buffer
"send" model to the compositor in x
- some issues like latency will always be an issue as long as you have
to bounce messages through many processes
- you could solve a lot of security and boundary issues by e.g.
disabling any xrandr "write" access (modification) to any client by the wm
- limiting access to xinput and xinput devices
- limit what events you can listen to on windows that are not your own
(unless you are the wm)