Hacker Newsnew | past | comments | ask | show | jobs | submit | wild_egg's commentslogin

Zig also makes this trivial

I've never used a system with Wayland (been on i3 for ~15 years) but every time a project like this comes up, I have to wonder why Wayland is even a thing. So many hoops to jump through for things that should be simple.

Sure, X11 has warts but I can make it do basically anything I want. Wayland seems like it will always have too much friction to ever consider switching.


I've been on wayland since KDE had it available (like the KDE 5 days) because it offered fractional HiDPI scaling that wasn't buns. As a laptop user, it has been one of the best features of Wayland.

Furthermore, getting stuff like VRR on Wayland working is way easier than X.org. And, Wayland also supports HDR.


I'm with you. I haven't had major issues with X11 for a good couple of decades. Ever since I didn't have to manually edit xorg.conf, I forget when that happened.

Granted, my requirements were simple, a laptop and occasionally one external monitor, though the issues I did run into were related to graphics drivers and NVIDIA shenanigans, but not to X11.

Now that I'm on Wayland, I do feel that visuals are slightly more responsive and crisper, but honestly, it wasn't worth replacing a bunch of my programs, significantly altering my workflow, and dealing with numerous new issues I didn't have to deal with before.

Unfortunately, the momentum is now fully with Wayland, and it's only a matter of time until X11 stops being supported altogether. The XLibre project is a noble idea, but a few contributors can't maintain an entire ecosystem on their own.


From a user perspective it just works, the online issues are all hypotheticals or very specific scenarios. On wayland my computer just works, my displays can have different dpi scales, my video doesn't tear, and programs don't have full access to record the screen and keylog without asking permission.

My reason for switching from i3 to sway (about 8 years ago) is DPI support. High DPI is a pain in Xorg, and essentially impossible with heterogeneous monitors.

The migration was a one way thing. Lots of things are smoother and simpler, and not having to ever again touch Xorg.conf has improved my quality of life.

To this day, I still have different monitors with different scale factors.


> not having to ever again touch Xorg.conf has improved my quality of life

I haven't touched xorg.conf in decades. I suppose you might have to do it to configure some unique setup, but for me this hasn't been an issue in a long time.

Now with Wayland, instead of having to touch a single config file, we have to learn how each compositor/WM is configured, and do it there instead. It hardly seems like an improvement in that regard, IMO.


> Now with Wayland, instead of having to touch a single config file, we have to learn how each compositor/WM is configured, and do it there instead.

Not really. I only need to know how to configure the compositor which I use. I don't need to know how to configure all the other compositors, in the same way I didn't know how to configure all the existing Xorg window managers.


The funny thing is that X11 can actually do heterogeneous dpi and Wayland can't.

Unfortunately you will never find yourself in a situation to actually use a mixed dpi X11 setup (you lose your homogeneous desktop) and Wayland is better at spoofing it (for whatever reason fractional scaling works better in Wayland).

http://wok.oblomov.eu/tecnologia/mixed-dpi-x11/

My favorite quote from that writeup.

"If you think this idea is a bit stupid, shed a tear for the future of the display servers: this same mechanism is essentially how Wayland compositors —Wayland being the purported future replacement for X— cope with mixed-DPI setups."


Yeah I've done that, I used my linux box for years with a 24" 1920x1200 screen and a 32" 4k screen next to each other.

Doing some basic mathematics and xrandr command-line wizardry to apply scaling factors to each display, I was able to get Xorg to render to a virtual framebuffer and treat the monitors as appropriately scaled windows onto it, so that dragging applications from one screen to the other didn't result in any noticeable change in size.

Worked pretty well.


Sway is basically i3 on Wayland. You pretty much keep your config file (with a few modifications), there really isn’t much friction.

That’s not a reason to do it of course, for me the driver was support for multiple monitors with different scaling requirements.


Sort of. If your software wants to do something like "know where the pointer is" it won't work on sway.

Why would I want software to know where my pointer is other than when the pointer is over the software's window?

Well, in my case, because the VCF on my synth sets its cutoff frequency based on the pointer's Y position and its resonance based on the pointer's X position

Sure, but that is pretty niche. My point was it’s pretty low friction for most people and certainly to try it.

But obviously be pragmatic, if it doesn’t work for you because you have a particular requirement, or even if it doesn’t offer any improvement over what you have then don’t use it.


I do not know exactly what all that means but does it needs to be desktop wide or just inside a specific app window?

Neither way works in Wayland. A program can know where it was clicked but not where the pointer was immediately before that. For that matter Wayland doesn't have a concept of "the" pointer; there may be multiple pointers.

I don't think this is true. As per wayland protocol docs (https://wayland-book.com/seat/pointer.html):

> Using the wl_seat.get_pointer request, clients may obtain a wl_pointer object. The server will send events to it whenever the user moves their pointer, presses mouse buttons, uses the scroll wheel, etc — whenever the pointer is over one of your surfaces. [...] The server sends this event when the pointer moves over one of our surfaces, and specifies both the surface that was "entered", as well as the surface-local coordinates (from the top-left corner) that the pointer is positioned over.

So the program should know the pointer's local coordinates.


Surely programs can know where the pointer is as long as it is over a window that belongs to the program. Otherwise hover wouldn't work.

Hover is done by the client telling the compositor it would like the cursor to change its shape if it is over a certain area the client is drawing. But the client does not know where the cursor is or where on the screen the client is (or even if the client is visible at all).

The hoop I recently jumped through:

There's a type of input called "DeviceEvent" which is a bit lower level than "Window event". It also occurs even if the window isn't "active".

Windows and X11 support this, but Wayland doesn't except for mouse movement. I noticed my program stopped working on Linux after I updated it. Ended up switching to Window Events, but still kind of irritating.


Isn't being able to read input while unfocused a huge security issue?

Meanwhile if you have root you're still free to do so directly.


I don't think so, and it's something every Windows and X11 Linux application can do. Perhaps this perspective is a divide between people writing/using applications, and those using/writing web servers? But maybe the Wayland team disagrees, and this is one of the reasons for this restriction? I'm speculating.

A Display server is not a security boundary. If you want that start your processes as different users.

> If you want that start your processes as different users.

How does this make any difference if they're going to connect to the same IPC that handles input/display?

The display server must absolutely enforce some kind of security boundary between clients. Clients that are running untrusted code (e.g. a web browser) must not be able to hijacked into controlling a potentially privileged client (e.g. a root terminal).


> I can make it do basically anything I want

X11 can't do high refresh rates every time that I've tried to do so.


It runs just fine at 165 hz for me. Given that xrandr and CRTs have been around for a while, and both have supported high refresh rates for a long while, something seems fishy here. Something is probably at fault, but it's not X11.

X11 can't do different hz on different screens. If you have a dual screen setup where one screen is 165 hz and the other is 60 you're SOL.

Works fine for me with 144/120 with the second as 60.

What's happening is you are running both screens at 144/120 and your 60 is gonna have vsync and screen tearing issues.

What vsync issues?

Couldn't you stop tearing with a couple lines of code? Don't swap out buffers mid-frame, very simple.

The simple solution doesn't make 144+60 look super smooth, but 120+60 should be almost perfect.


How does wayland handle the hypothetical problem of playing a 24 fps movie split across a 48hz and 60hz display?

(Hint: It’s not possible to solve correctly.)


X11 can't fix climate change.

You joke, but the wayland protocol leaves this up to the compositor. Nothing in the protocol prevents your desktop environment from doing this.

I heard the desktop environmentalists are working on such a project.

It is able to output the high Hz to the display, but the desktop (like window decorations and window dragging) remains at 60 Hz, it looks like. Individual windows can still successfully render at high Hz. Contrast this with Wayland where I've always seen everything go at the high speed, even if I'm using the same DE in both (like Gnome Wayland and Gnome Xorg on the same hardware).

Huh ? It did in 2000.

I completely agree. This feels like the typical “open-source developers rewriting something that already works well, then forcing it on people who never asked for it” kind of project.

It will take years to reach the feature set of X11. And for what? From my perspective as both a developer and a user, I see no tangible benefits.

On top of that, it breaks software I rely on professionally. Code that worked perfectly fine under X11.

Meanwhile, I can still build and run Windows programs I wrote 30 years ago on Windows 11.


Many theories. A simple one is that corporations wanted more control. See systemd's rise - not related to wayland as such, but to corporate-driven influence.

I am not saying all of the design is corporate-controlled. But a ton of propaganda is associated with how wayland was advertised, until some folks had enough with it and decided to stop buying the "xorg is dead" routine these corporations push on:

https://github.com/X11Libre/xserver

It will be interesting to see what will happen though. The GTK devs said they will help kill off xorg with GTK5. KDE also wants to kill xserver. It would be kind of cool if that would not happen - imagine if a non-corporate controlled ecosystem would emerge. Not likely to happen, but it would be a lot of fun. As well as more real competition with wayland. Wayland broke its biggest promise: that it is a viable alternative to the xorg-server. I don't want to lose any feature, so it is a drawback for me.


Xorg is not dead. It is maintained by one of those corporations you are talking about. And since 2/3 of the Xorg code is in Xwayland, they will be maintaining it for a very long time to come. It is not going anywhere.

But already a majority of Linux desktop users have stopped using it. And it will be 90% in the next 2-3 years. GNOME, KDE, Budgie, and COSMIC are effectively Wayland only now and XFCE and Cinnamon will be Wayland native before then.

The GTK5 devs do not have to “kill off” X11. But it is not really worth their time either.

Keep using Xorg, or Xlibre, or Phoenix. It should keep working.

But don’t mind if the rest of us keep building on Wayland.

By the way, I use Niri, a very cool and absolutely non-corporate Wayland compositor. Not sure how that fits into your narrative.


why give it root access to your life? i don't use these tools but it seems like you should never give anything that access. if a claw needs email, set up a google account just for it and forward relevant stuff to it. share your calendar with it. whatever, just don't let it "be" you.

access control, provisioning, and delegation have been solved for a very long time now.


How do you control access or delegate with typical web apps like Gmail, Calendar, Expedia?

Oh awesome. I wanted to use this last year but safari hadn't shipped support yet and I hit some problem with the polyfill.

Looks like safari shipped support in December though so now I can go nuts


The power of voice dictation for me is that I can get out every scrap of nuance and insight I can think of as unfiltered verbal diarrhea. Doing this gives me solidly an extra 9 in chance of getting good outputs.

Stream of consciousness typing for me is still slower and causes me to buffer and filter more and deliberately crafting a perfect prompt is far slower still.

LLMs are great at extracting the essence of unstructured inputs and voice lets me take best advantage of that.

Voice output, on the other hand, is completely useless unless perhaps it can play at 4x speed. But I need to be able to skim LLM output quickly and revisit important points repeatedly. Can't see why I'd ever want to serialize and slow that down.


Do you have a citation for that?

Yes[1]. Copyright applies to human creations, not machine generated output.

It's possible to use AI output in human created content, and it can be copyrightable, and substantiative, transformative human-creative alteration of AI output is also copyrightable.

100% machine generated code is not copyrightable.

[1] https://newsroom.loc.gov/news/copyright-office-releases-part...


> The content you are looking for is currently unavailable.

Here's the correct link, I accidentally added an 'l' to the end when pasting: https://newsroom.loc.gov/news/copyright-office-releases-part...

There are so many cases of the copyright office rejecting the request to register copyright for AI-generated works. Here’s just one example: https://www.copyright.gov/rulings-filings/review-board/docs/... (skip to section III).

> This analysis will be “necessarily case-by- case” because it will “depend on the circumstances, particularly how the AI tool operates and how it was used to create the final work.”

This seems the opposite of the cut and dry "cannot be copyrighted" stance I was replying to.


Yes it does depend on the circumstances. You are free to waste your own time to try this at the copyright office, but in my opinion, this project's 100% LLM output where the human element is just writing prompts and steering the LLM is the same circumstance as my linked case where the human prompted Midjourney 624 times before producing the image the human deemed acceptable. The copyright office has this to say:

> As the Office described in its March guidance, “when an AI technology receives solely a prompt from a human and produces complex written, visual, or musical works in response, the ‘traditional elements of authorship’ are determined and executed by the technology—not the human user.”


Aside from consistent auth, that's what all APIs have done for decades.

Only takes 2 minutes for an agent to sort out auth on other APIs so the consistent auth piece isn't much of a selling point either.


Yes, MCP could've been solved differently - eg with an extension to the openapi spec for example, at least from the perspective of REST APIs... But you're misunderstanding the selling point.

The issue is that granting the LLM access to the API needs something more granular then "I don't care, just keep doing whatever you wanna do" and getting promoted every 2 seconds for the LLM to ask the permission to access something.

With MCP, each of these actions is exposed as a tool and can be safely added to the "you may execute this as often as you want" list, and you'll never need to worry that the LLM randomly decides to delete something - because you'll still get a prompt for that, as that hasn't been whitelisted.

This is once again solvable in different ways, and you could argue the current way is actually pretty suboptimal too... Because I don't really need the LLM to ask for permission to delete something it just created for example. But the MCP would only let me whitelist action, hence still unnecessary security prompts. But the MCP tool adds a different layer - we can both use it as a layer to essentially remove the authentication on the API you want the LLM to be able to call and greenlight actions for it to execute unattended.

Again, it's not a silver bullet and I'm sure what we'll eventually settle on will be something different - however as of today, MCP servers provide value to the LLM stack. Even if this value may be provided even better differently, current alternative all come with different trade-offs

And all of what I wrote ignores the fact that not every MCP is just for rest APIs. Local permissions need to be solved too. The tool use model is leaky, but better then nothing.


It's been a while but why is uring not helpful for larger buffers? I'd think the zero-copy I/O capabilities would make it more helpful for larger payloads, not less

uring supports zero-copy, but is not a copy-reduction mechanism; it is a syscall-reduction mechanism. Large buffers mean less syscalls to start with, so less benefit.

Exactly this. The kernel alloc’d buffers can help but if that was a primary concern you’re in driver territory. Anything still userspace kind of optimization domain the portion of syscalls for large buffers in a buffered flow is heavily amortized and not overly relevant.

Scenes from this book have been regularly coming to mind for almost 20 years now. No idea how it holds up for new readers today but it left quite an impact way back then.

> Google's discoverability problem isn't just an SEO issue; it's reshaping how builders have to think about distribution from day one.

bro.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: