Brian Lovin
/
Hacker News
Daily Digest email

Get the top HN stories in your inbox every day.

kelnos

I know this is just a "hack it together" effort, but I wonder if it even makes sense to emulate/support libevdev and libinput on non-Linux OSes.

While the Wayland protocol does reuse some libinput names/enums/etc., I don't believe there's anything in it that requires those particular implementations or APIs (that is, wl_pointer and wl_keyboard doesn't have to be populated by libinput).

Maybe wlroots should have OpenBSD-specific parts to its backend abstraction that use OpenBSD's usual input handling primitives. Granted, this would mean non-wlroots compositors would also have to implement this if they want OpenBSD support, but I'm not sure I'm convinced it's good for the OS ecosystem in general to standardize the userland interface that's provided to interact with more and more hardware.

Put another way, libinput seems fine to me, but part of the reason to have different OSes in the first place is to allow people to explore different approaches to doing things. Requiring that every OS that wants to have Wayland do things the libinput way seems counterproductive.

Relatedly, it seems silly to me to get seatd running on OpenBSD if OpenBSD doesn't support the concept of multiple seats. Compositors should just have a mode where a single, static seat is defined that owns all input and display devices.

themerone

I think this is about preparing for a post X11 future. As Wayland continues to mature, classic X will attract fewer developer resources. I think it will eventually start to suffer benign neglect, and stop keeping up with new hardware.

badsectoracula

> I think it will eventually start to suffer benign neglect, and stop keeping up with new hardware.

At least on Linux, Xorg and Wayland compositors use the same underlying APIs, so the chances of Xorg not running somewhere Wayland runs are pretty much zero - unless said new hardware is only exposed via a new kernel API and nobody bothers to update the modesetting driver for it and/or to write a new Xorg driver for the new API.

csande17

> unless said new hardware is only exposed via a new kernel API and nobody bothers to update the modesetting driver for it

And this is actually really unlikely for Wayland, isn't it? The whole idea is that each desktop environment implements its own display server using the modesetting API. That's why there's all kinds of drama about Nvidia "not supporting Wayland"; their kernel driver exposes some nonstandard APIs, and they can patch Xorg to support those APIs, but they can't patch every Wayland compositor in the world.

I guess Xorg could hit bugs in the modesetting driver that the most popular Wayland compositors don't hit. IIRC that was an issue for Asahi Linux's Apple M1 video driver.

shmerl

> Xorg and Wayland compositors use the same underlying APIs

Not really. KWin has Wayland specific paths that simply don't work on X and developers are increasingly simply not bothering to go out of their way with X if something isn't possible to implement over it. So X use case is going to further deteriorate, that's inevitable.

kelnos

Not sure what your comment has to do with mine? I'm not debating whether or not X11 will stick around, or whether getting Wayland working on OpenBSD is a good idea or not. I was talking about the specific software dependency choices used for this rough port.

bandrami

The OpenBSD team maintains and updates their own port of Xorg so the whole "what if xorg disappears?" hysteria doesn't really apply to that platform.

hist_thr

Wayland is a replacement for X11 in the same way that a tricycle is a replacement for a tractor.

They have thrown everything difficult out of the spec and only implemented the most trivial functionality around a security model which you must actively break to get actual work (like screen shots) done.

That Wayland is 10 years old and still barely usable should tell you how far software developers have fallen in the last 30 years.

zamalek

> They have thrown everything difficult out of the spec

Not exactly, they have thrown out everything that almost nobody uses - such as networking. They have, however, added things that most people do care about - such as different HiDPI across multiple monitors and an extremely thin (low latency) render path.

> That Wayland is 10 years old and still barely usable

And that has changed in the past 2 years (with exception to whatever Ubuntu does to screw it up, but such is Ubuntu).

kiwijamo

I use Wayland daily and haven't run into the issues you mention. It has worked better than X11 as a daily driver for a few years now. I appreciate may not work for some <1% of edge use cases but for most people Wayland works just fine. Things like screen tearing, issues with video acceleration, etc are all a thing of the past.

To be honest I associate 'barely usable' more with X11. I haven't forgotten the good old days when I had to hack various configuration files just to get a working desktop and then hack some more to work around issues with tearing, video acceleration, etc.

Wayland on the other had has just worked right out of the box since Debian 11. I have not touched a single file, line or character to get Wayland to work optiminally. That is a remarkable achievement IMHO which X11 took years and years to achieve.

tadfisher

I totally agree. X11 is a tractor trying to be a supercar, a bus, an airplane, and a farm implement.

Can you separate just the parts that make X.org a display server from the parts that implement mouse input, keyboard language mapping, general-purpose IPC, 2D graphics drawing, font rendering, userspace graphics driver abstraction, joystick device handling, SPICE display driver, and three different 2D graphics acceleration APIs? Because then you might be able to make a comparison between X11 and Wayland.

jeppesen-io

> That Wayland is 10 years old and still barely usable

Factually false, and easily known. Starting with most distros defaulting to wayland, Myself using it full time with zoom, screenshots I'm sure many things you say don't work

> far software developers have fallen in the last 30 years.

You can't be serious

> They have thrown everything difficult out of the spec and only implemented the most trivial functionality around a security model which you must actively break to get actual work (like screen shots) done.

You must really hate HTTP as spec. HTTP is so lazy. Could not even implement transport security or even TCP like functionality. Composability and layers are quite overrated

But I guess I should just not feed the troll

teekert

When I'm on Gnome, and I select Gnome on X, my trackpad functions as one expects from Linux. When I'm on Wayland, it's like a macbook.

kaba0

Yeah, please repeat the same bullshit for the umpteenth time. This happens under every goddamn wayland-related thread from people who have never ever touched anything graphics related with this typical cocky attitude - at this point this is just fake news.

So if X is so great, why exactly have the very developers who worked on it all switched to Wayland? Like, if they could made something you believe is good, shouldn’t you trust their expertise in this also?

> security model which you must actively break to get actual work

That’s literally how security models should work: you put tiny holes into a solid block. You can’t plug a swiss cheese’s holes after the fact.

> That Wayland is 10 years old and still barely usable

What exactly is your thought process here, what kind of process could change such an inherent protocol in a bazaar style ecosystem faster? It’s not apple who can just say “we are using this protocol from next year. If you wanna work, port your software”. Even if something is so much more superior than the status quo, it would need a huge amount of time to spread. Also the first 5 years of Wayland was very different from the last 5 - and it has definitely reached critical mass in the latter 5. A year now may easily introduce more progress than 5 at the beginning, from the cumulative effect of more contributors, more testers, etc.

And that barely usable part is pure bullshit again — how else would it be the default protocol for plenty distros already?

tapoxi

Taking a screenshot isn't breaking the model, it's using a portal. It just means that instead of every application having complete access to everything on the display, you move the trust to the compositor.

I'm not a Windows user, but macOS behaves the same way. If an application wants to capture the screen, you need to give it explicit permission to do so.

throwme_123

The last full release is X11R7.7 from... 2012

If it's a tractor, it's quite an old one. Give me that new tricyle instead: https://www.youtube.com/watch?v=wy8MZuAwNZc

shmerl

I think standardizing on libinput is a big deal, even if it's not required for Wayland use case. Otherwise it would have become a constant reinvention of the wheel.

Same goes for other similar use cases that aren't tied to Wayland protocols, but are critical for Wayland compositors to function and before used to be handled by Xorg in some unified fashion.

undefined

[deleted]

mananaysiempre

> Maybe wlroots should have OpenBSD-specific parts to its backend abstraction that use OpenBSD's usual input handling primitives.

My (shallow and likely out-of-date) impression was that wlroots the library baking in Linux things was a more serious problem for porting than Wayland the protocol actually mandating anything seriously Linux-specific (I understand how the choice to use Linux key codes might be annoying, but still, meh). Have they gotten around to excising the event loop library out of there, for example?

emersion

seatd isn't just about multi-seat. In fact, seatd doesn't even support multi-seat at the moment. See this post for more details: https://lists.sr.ht/~kennylevinsen/seatd-devel/%3C3561460.kQ...

klardotsh

I've been wanting to give OpenBSD an honest shot on the desktop for years, but going back to X has always been a deal breaker for me (HiDPI and mixed/scaled DPI support, and tear-less graphics, are hard requirements that X handles horribly - yes, before the X apologists brigade me, I know because I used to hack X into horribly supporting these things).

This could finally let me dive into the only BSD that really catches my attention for potential to switch over - I applaud this effort!

amatecha

OpenBSD is pretty sweet! been daily-driving as desktop OS (as in, not a server) for ~2 years now. Though, on a 1366x768 ThinkPad, so not too concerned about DPI hahah

shrubble

I as a user haven't seen any reason to care about Wayland. And losing/dropping X11's network transparency seems rather surprising in a heavily networked world...

dagenix

In my experience, running X11 over a network worked very poorly.

There is significant overlap between former X11 developers and Wayland developers. They didn't drop it because they are incompetent which seems to be what your are implying. The people that decided to drop it are probably the people that know X11 the best.

jmclnx

>In my experience, running X11 over a network worked very poorly.

Well in my experience, running X11 applications using network transparency works perfectly fine. It can be a life saver when your server is a proprietary UNIX, these are still in many Fortune 500 companies.

I have/still use network transparency as: Linux/BSDs <-> BSDs/Linux and Linux <-> AIX.

I even ran a few (Xlib/Motif) applications as "Linux <-> Linux <-> AIX" where the middle Linux was a pass through server without any issues.

So, No issues with network transparency, that is why I will avoid Wayland as long as I can.

To the article, Wayland on OpenBSD looks like a very extremely project, wish you luck.

badsectoracula

I haven't tried it (because i do not really need network transparency and i'm using Xorg anyway) but supposedly this project[0] implements the Wayland protocol on top of Xorg in a way that integrates mostly seamlessly with X11-based desktops (instead of creating a window and running Wayland inside it as if it was a monitor isolated from the rest of the desktop).

It might be useful to be able to run Wayland applications remotely.

[0] https://sourceforge.net/projects/twelveto11/

pengaru

It didn't work poorly back when X clients were actually using Xlib for drawing primitives performed by the display server.

It started working poorly when X clients started rendering everything locally in the client and simply pushing pixels to the display server.

bitwize

> It started working poorly when X clients started rendering everything locally in the client and simply pushing pixels to the display server.

Which means it works poorly for modern apps. Modern apps use the GPU for client-side rendering.

And it absolutely worked poorly even in the 90s. It was virtually impossible to run X apps over anything but a fast local LAN. That's what "Broadway"/LBX was about. It was kind of a failure.

RDP has been a better networked display protocol than X for a couple decades now. Let's not fool ourselves that X isn't obsolete on every axis.

pravus

It has worked great for me for decades and I currently stream live video over X11 on my LAN.

And no, I don't think the developers are incompetent, they obviously have different priorities than I do. Being able to shift an entire desktop environment over a network is something I've done since I started using the internet in various ways and I'll echo the sentiment that it seems incredibly useless to remove this feature in today's world.

To be quite honest I'm tired of this holier-than-though attitude. They dropped it because they are lazy or just don't want to support it and they should just be honest about that. They certainly didn't do it because it makes my life easier and I wish they would stop telling me I'm in the wrong.

mrweasel

X11 over a network, even a LAN is a "last resort" kinda thing for me. It's neat an all, but as much as I dislike remote desktop and VNC, it's still better than X11.

The last time I had it working well was in 2005 using a full desktop session across a local network. The bit about only getting the one application across has always been a bit wonky. That's not to say that you can't do it, but it's not really a daily driver sort of thing.

zajio1am

> In my experience, running X11 over a network worked very poorly.

In my experience, when combined with SSH compression (ssh -XC) it works well enough that even running Firefox over Internet is usable (although with noticeable latency). Without compression, it is unusable (for Firefox) even on gigabit LAN.

yakubin

In my experience running Firefox over X11 remotely is fine as long as you only use X11 and don’t wrap it in SSH, i.e. instead you expose your local X11 server port to the computer running Firefox and use the DISPLAY environment variable to point it at you local X11 server. Secure the connection with Wireguard and it’s fine. With SSH I’d see frame tearing all the time, regardless of compression options.

pmontra

It worked well for me at my university in 1990. We had a large room full of 1024x1024 X terminals. We run our programs on some HP-UX shared server and displayed the pixels on those terminals over a 1 Mb/s LAN. No glitches.

shrubble

I didn't say anything about competence, just that it seems an odd design choice.

Back when X11 was gaining traction the LAN was 10mbps and WAN was 1.5mbps.

Now people have true 1Gbit connections to the WAN and can easily have 10gbit or much more on the LAN...

zokier

Back then people actually used X11 primitives to draw stuff, these days you get surface and render stuff on gpu yourself.

scheme271

The networking parts weren't used that much and due to the way modern apps work, I think the networked parts were essentially transferring images instead of graphics primitives. So it was essentially doing stuff that a remote desktop app does but with potentially more security issues (e.g. apps listening into keystrokes intended for other apps).

59nadir

I keep seeing friends who run Wayland have embarrassing issues with global hotkeys, screen sharing, etc., and I'm running X11 with a default config and standard drivers without literally any issue. I too don't see the point in switching when I'd be switching from a fully functional system that has basically no issues (and yeah, I don't get where multi-DPI setup issues come from; I have multiple screens with different resolutions and no issues, one of them is at 2560x1440 and the others are just 1080p standard) to a system that by most accounts seem to have at the very least 2-3 issues that impact basic workday things.

diffeomorphism

Short comment: ssh -X is not what network transparency means.

You still have ssh -X functionality just fine without any network transparency required, e.g. waypipe or rdp (e.g. builtin on gnome) or vnc, .... Of course that is not going away.

throwawaylinux

Network transparency at the GUI is not the way the "heavily networked world" is going though. In a lot of ways it doesn't scale. You want to administer and run things in a programmatic way, which means command line or an application specific protocol (which would have front-ends) so you can script and write tools for it and have that work over 1 or N machines.

So very few new things that require remote operation in the past 20 years should have baked in the requirement for a networked GUI.

yjftsjthsd-h

I thought waypipe covered that?

CameronNemo

Perhaps you are on hardware that does that not have this issue, but I had really bad screen tearing with an Intel iGPU running X11.

Monsterovich

This looks like sabotage from the Wayland-centric mesa developers who didn't add TearFree to the core xorg modesetting driver because the older one had this feature. Use V-Sync in the compositor.

CameronNemo

Where is your pull request? Don't you think it is more likely that graphics software developers are just proposing the best software they can offer? Why would they deliberately push bad software? Wouldn't that make their product offering worse, and also make their own experiences worse and future development more difficult?

I don't know the incentives are there for a conspiracy in this case.

rkangel

As a user who doesn't want to spend hours fiddling with config to make my PC work, Wayland is good for me. Plugging and unplugging monitors is now generally predictable correct in a way that it didn't used to be.

AJRF

I am an outside observer but in any discussion of Wayland I always see this article referenced: https://gist.github.com/probonopd/9feb7c20257af5dd915e3a9f2d...

It seems like so much stuff is broken but the devs deny it is broken? And even with that situation - every major distro is making in roads to adopting it?

Is that a fair characterisation or am I off the mark?

vetinari

It not broken. The complains on the linked gist remind me complaining, how introducing protected memory broke applications. And you couldn't read or write i/o ports directly in our app anymore, you had to go through so-called kernel! So much bloat!

So I put wayland is broken, because it doesn't allow what x11 did in the same way, ideally stomping on the others into the same category. For screenshots and capture, there's an API now (controlled, user is in the control, cannot be done behind his back. Scoped also, with granularity from window to desktop). For global shortcuts, there's an API in the making.

rcxdude

> For global shortcuts, there's an API in the making.

This is kind of the problem, though. X11's model of 'everything can access everything' is obviously bad, but when wayland went with a more restrictive model they didn't provide a means for legitimate functionality like this. That's basically the origin of all the objection: things that worked on X11 don't work on wayland, because wayland's developers seem to be very slow to recognise and provide for things which were extremely common on X11. It's been 14 years and the API for global shortcuts is still in the making!

(And I know there's DE-specific interfaces for a lot of these things. But when you tell app developers this they're either going to implement it for their DE or not bother to implement it at all, as opposed to going through each DE and working it out, especially if it's more complex to support granular permissions and so on. So then users will see that app functionality breaks on wayland, and blame wayland, somewhat fairly)

Monsterovich

> This is kind of the problem, though. X11's model of 'everything can access everything' is obviously bad,

It's neither bad nor good. That's the default. All the "no security" cries are nothing more than whining (not a single person has been harmed in 20 years). If security features were so necessary, people would have been implementing them a long time ago - https://www.x.org/releases/X11R7.6/doc/xorg-docs/specs/Xserv....

> but when wayland went with a more restrictive model they didn't provide a means for legitimate functionality like this

Furthermore, this model is embedded in the core architecture and cannot be fixed except by crutches.

vetinari

Things "worked" by the virtue of being able to snoop on everything and inject anything; which is exactly what is wrong about the approach.

On the other hand, Rome wasn't built in a day either. You want to do it right, not quickly. The final solution will be there for decades, so it better be not drag on maintenance and further development. Especially one, where the requirements are not so clear (no, register random key combo by random client isn't going to be it).

zokier

Wayland never was intended to be drop-in replacement for X11, so it's not surprising that it isn't. It's a much smaller scoped, lower level building block, which pushes more responsibility to DEs. It's not just different implementation, it's new model where the hows, whats, and wheres of desktop are getting re-evaluated.

WJW

> every major distro is making in roads to adopting it?

The question then becomes whether you believe every major distro is part of some giant conspiracy to kill X despite them being in competition with each other and having incentives to keep supporting X if users want it, or if X may indeed have severe problems that Wayland fixes.

In practice most things run absolutely fine under both Wayland and X, but some programs integrated tightly with X back in the day and for various reasons they cannot be rewritten because the devs have moved on, died, or simply because there is no budget for it. Users of those programs are quite upset that the X developers have collectively decided that putting extra effort in X is no longer worth it because its problems are effectively unfixable.

AJRF

I don't think it's that deep and never suggested a conspiracy.

Ericson2314

We've been doing some BSD cross work with Nixpkgs. A hope is that if we can extend that to NixOS too, and then it should be quite easy to checkpoint and share work like this for anyone to reproduce and pick up the baton on.

1MachineElf

Can you share any more information about the BSD cross work with Nixpkgs?

Ericson2314

How to use it? Or what we've done?

For using it, you can try

  nix-build 'channel:nixpkgs-unstable' -A pkgsCross.x86_64-netbsd.libcpuid

  nix-build 'channel:nixpkgs-unstable' -A pkgsCross.x86_64-freebsd.libcpuid
For the gory details, check out https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specifi... and https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specifi...

mrweasel

If OpenBSD manages to get Wayland working just the way they want it, with Pledge, Unveil, privileged separation and what have you, I would not be at all surprised if they also came up with their own compositor / window manager thing and a plan for removing X11 in future releases a few years later.

w0ne

Hopefully one day we will see Wayland achieve the reputation it deserves and let it replace Xorg!

bitwize

Now that Xorg development is moribund, people have been telling me "oh, there's always Xenocara".

It seems even in BSD-land, people are thinking seriously about moving on from X.

Netcraft sure as hell confirms it now: X11 is dying.

Daily Digest email

Get the top HN stories in your inbox every day.