Remix.run Logo
nananana9 2 days ago

> paying someone to work on a port of XMonad to Wayland, since none of us is up to the task

This is such a crazy mentality to me, coming from game development, where you can just go to a random 22yo kid's desk, ask them "do you want to port this game to the Nintendo Switch?" and they'll go "hell yeah" and do it in a few months, despite never having programmed for the device before.

You can just learn to do new things. By all accounts the Wayland protocol is simpler than X11, and you've already done the majority of the work. It's just a matter of adding a new backend. People do that all the time when they port a program to the web, a game to a new platform, or when they add a new architecture to a compiler.

csande17 2 days ago | parent | next [-]

One of the reasons why Wayland is "simpler" than X is that it doesn't include the APIs that window managers like Xmonad need. Instead, window managers have to implement a lot of the complex low-level graphics details themselves. This is why Wayland window managers are called "compositors" -- they include a lot of the code that used to be provided by the X server.

So the game development analogy here is, like, someone has just made their first Unity game and it's pretty good, but they don't feel like they'd be able to write their own game engine that's as good as Unity.

(The article mentions wlroots, which was an attempt to write a more general-purpose helper library for Wayland compositors. In practice this didn't work out; every major compositor other than Sway writes their own implementation of the stuff wlroots does.)

roenxi 2 days ago | parent | prev | next [-]

Is this you volunteering to do the port? I'm guessing you're not going to learn how to do this new thing. The real irony here is that they are actually implementing your suggestion - they're potentially going to hire some random 22yo who's response to porting XMonad to Wayland is "hell yeah!". Although realistically they'll probably get someone a bit more experienced.

They don't seem to be saying they can't do this or that it is some insurmountable technical challenge. They're saying that they aren't going to do it themselves and aren't giving reasons.

arp242 2 days ago | parent | prev | next [-]

You're comparing a full-time salaried employee with a "few months" to spare vs. a bunch of people spending their spare time. Obviously not the same at all. There is a difference between "able to do the task, given enough time" vs. "wanting to invest the time". In a volunteer context "I don't have the (time|skill)" usually means "I don't want to invest the time".

In addition, making a WM in libX11 is surprisingly easy, almost trivial. With Wayland: not so much. Maybe the protocol is simpler for some meaning of "simpler", but actually doing stuff with it is often more complex, certainly if you want to write a WM (or compositor in Wayland-speak). I managed to write my own X11 WM without any real experience doing this sort of thing that has served me quite well for the last ten years. I also tried duplicating that in Wayland because I've been told that's the future, but I found that a lot harder to the point where I kind of just gave up. While I'm sure I could figure it out given enough time, I also don't really want to as I have other stuff to do, and also have a perfectly working X11 WM already.

csande17 2 days ago | parent [-]

Realistically, the future for small/custom window managers on Wayland is probably to write them as plugins for GNOME or KWin or Hyprland or something. That's kind of the closest equivalent we have to the X world where you could listen for events and move windows around on the screen, and the X server would handle everything else.

AceJohnny2 2 days ago | parent | prev | next [-]

desk? Like for someone for whom its their full-time occupation/job?

Remember that many open-source contributors do it on their free time, with whatever energy they have left after their job.

pjmlp 2 days ago | parent | prev | next [-]

Which is why game development has the work conditions that it happens to have across too many studios.

Plenty of 22 year old and younger kids willing to grind for the lottery possibility to actually be part of the team.

whatevaa a day ago | parent | prev | next [-]

Do you want to port this window manager to wayland, nana? I'll expext a hell yeah.

immibis 2 days ago | parent | prev [-]

While an X11 window manager just manages windows, a Wayland "window manager" has to also do everything an X11 server does (including X11). It doesn't just manage windows.

There are display-server-as-a-library libraries you can link with, so that you can focus on writing the window management code you actually wanted to write, but you're still responsible for everything you link with, so it's far from trivial.

Also, xmonad re-execs itself to reload its configuration. Good luck with that when it's also your display server...