Live data from Hacker News

River: A dynamic tiling Wayland compositor

github.com

31–40 of 42 posts

Re: River: A dynamic tiling Wayland compositor

#31
post #8

I really wish there was a window manager that (a) looks good and modern (b) can tile well but also allows for free floating windows (c) has simple commands, not multi stroke Emacs-style commands (d) can allow tiling with the mouse with snapping

I developed one for Windows: https://losttech.software/stack.html

Re: River: A dynamic tiling Wayland compositor

#32
post #27
post #13

Earlier quoted context omitted.

> It tries to minify latency Quiet the opposite. Tearfree rendering, forced vsync and the completely opaque way of interacting with graphics memory in order to fulfill the "every frame is perfect" philosophy means Wayland is optimized for all kinds of things (mainly to give involved consulting firms some lucrative gigs) but certainly not latency.

It's more nuanced than that. If your goal is to have a desktop without screen tearing, you will beed a compositor. Wayland will do better at minifying latency than an X11 compositor due to having better frame scheduling. This is especially pronounced on very low-end ARM devices like the Pinebook that experience lag on DWM but are incredibly snappy under Sway. If you are fine with visual glitches like screen tearing d…

> If you are fine with visual glitches

There are cases where tearing is extremely distracting, like playing videos or scrolling in the browser. There are cases where tearing will not be noticed at all but low latency might be beneficial, e.g. when you only have small areas of the screen that are updated, like moving the mouse cursor or editing text. And there are cases where it is a user preference, e.g. Games (Many people play competitive FPS Games without vsync whereas scrolling without vsync in strategy games will be very distracting).

The point is to give the user a choice when there is a trade-off. The trade-off here is vsync vs. low latency.

Wayland makes the choice for you. On X11 each application can do what makes sense for that particular use case and on top of that the compositor can be turned off, on or even be replaced at runtime without affecting running programs. X11 is superior technology in every way if you ask me.

Re: River: A dynamic tiling Wayland compositor

#33
post #32
post #27

Earlier quoted context omitted.

It's more nuanced than that. If your goal is to have a desktop without screen tearing, you will beed a compositor. Wayland will do better at minifying latency than an X11 compositor due to having better frame scheduling. This is especially pronounced on very low-end ARM devices like the Pinebook that experience lag on DWM but are incredibly snappy under Sway. If you are fine with visual glitches like screen tearing d…

> If you are fine with visual glitches There are cases where tearing is extremely distracting, like playing videos or scrolling in the browser. There are cases where tearing will not be noticed at all but low latency might be beneficial, e.g. when you only have small areas of the screen that are updated, like moving the mouse cursor or editing text. And there are cases where it is a user preference, e.g. Games (Many…

From a purely practical point of view, for me personally, I have a laptop where no matter what I tried, with X I got insane constant screen tearing. I tried with and without compositors, different configuration, different drivers. Nothing worked for me. I tried wayland and its been running silky smooth without any tearing whatsoever.

So, from a personal practical perspective, whatever Wayland does has worked for me, while X11's "superior technology" has completely failed me, on that laptop.

Re: River: A dynamic tiling Wayland compositor

#34
post #8

I really wish there was a window manager that (a) looks good and modern (b) can tile well but also allows for free floating windows (c) has simple commands, not multi stroke Emacs-style commands (d) can allow tiling with the mouse with snapping

I used to love GOOMWWM[1] and used it for the longest time. I miss a lot of things about it, still. It doesn't quite meet your requirements, looks-wise its very minimal and it doesn't have snapping, but I really liked the idea behind it: make a keyboard-centric stacking/floating window manager that gives you enough control that it can be used as if it were a (manual[2]) tiling window manager. It really feels like a tiling window manager and its fantastic!

[1] https://github.com/seanpringle/goomwwm

[2] I personally use sway these days, but I still prefer manual tiling where I move and size windows myself, rather than having the WM try to do it for me, as long as the WM makes it very easy to do, as goomwwm did (and its predecessor, musca: https://github.com/enticeing/musca)

Re: River: A dynamic tiling Wayland compositor

#35
post #32

Earlier quoted context omitted.

> If you are fine with visual glitches There are cases where tearing is extremely distracting, like playing videos or scrolling in the browser. There are cases where tearing will not be noticed at all but low latency might be beneficial, e.g. when you only have small areas of the screen that are updated, like moving the mouse cursor or editing text. And there are cases where it is a user preference, e.g. Games (Many…

From a purely practical point of view, for me personally, I have a laptop where no matter what I tried, with X I got insane constant screen tearing. I tried with and without compositors, different configuration, different drivers. Nothing worked for me. I tried wayland and its been running silky smooth without any tearing whatsoever. So, from a personal practical perspective, whatever Wayland does has worked for me,…

On a technical/conceptual level X11 can potentially be the best of both worlds and Wayland can't. In practice drivers and programs have bugs, sure. But that can not be blamed on X11 as protocol/API.

Re: River: A dynamic tiling Wayland compositor

#36

Earlier quoted context omitted.

The situation on x11 isn't too different - there's basically only metacity, kwin, and openbox in the stacking WM world, plus a thousand tiling WMs. In wayland there's additionally KWinFT, hikari, and wayfire. Although neither of them are comparable to the classic Windows/Mac WMs.

There are a ton of small stacking X11 window manager, sure many of them are old, but they're still maintained.

The arch linux wiki has a good list: https://wiki.archlinux.org/title/Window_manager#Stacking_win.... Haven't looked into how many of them are maintained.

Re: River: A dynamic tiling Wayland compositor

#37
post #32
post #27

Earlier quoted context omitted.

It's more nuanced than that. If your goal is to have a desktop without screen tearing, you will beed a compositor. Wayland will do better at minifying latency than an X11 compositor due to having better frame scheduling. This is especially pronounced on very low-end ARM devices like the Pinebook that experience lag on DWM but are incredibly snappy under Sway. If you are fine with visual glitches like screen tearing d…

> If you are fine with visual glitches There are cases where tearing is extremely distracting, like playing videos or scrolling in the browser. There are cases where tearing will not be noticed at all but low latency might be beneficial, e.g. when you only have small areas of the screen that are updated, like moving the mouse cursor or editing text. And there are cases where it is a user preference, e.g. Games (Many…

X11 has no GUI isolation which in this day and age is inexcusable in a desktop operating system. The only decent attempt at proper isolation for X that I know of is Qubes, done using Xen.

Furthermore, Wayland can have lower input latency than X if you are dealing with more complex input. Text nowadays has grapheme clustering, ligatures and text shaping (including runtime text shaping), and other oddities; this is a heavy task that can incur latency. Latency can be reduced by offloading some of this to the GPU. Frame timing combines well with this approach to ensure that only displayed frames get rendered, synced with display refresh. The result is dramatically lower latency when taking into account display refresh rate.

In other words, Wayland's vsync support can make complex tasks like modern text input incur lower latency and use fewer resources.

On Sway, for instance, if you tune the compositor with sway-input, you can actually achieve lower latency than on X11 WMs like dwm, even without a compositor. This is even more pronounced on low-end ARM machines.

Re: River: A dynamic tiling Wayland compositor

#38
Spent a few hours getting this working today. It's still rough around the edges (multi monitor support through a usb-c dock seems a bit finnicky, but that's true of Sway as well), but I definitely see the power of the tagging system over something like i3 or Sway, where windows can only be assigned to one workspace at a time.

Re: River: A dynamic tiling Wayland compositor

#39
post #37
post #32

Earlier quoted context omitted.

> If you are fine with visual glitches There are cases where tearing is extremely distracting, like playing videos or scrolling in the browser. There are cases where tearing will not be noticed at all but low latency might be beneficial, e.g. when you only have small areas of the screen that are updated, like moving the mouse cursor or editing text. And there are cases where it is a user preference, e.g. Games (Many…

X11 has no GUI isolation which in this day and age is inexcusable in a desktop operating system. The only decent attempt at proper isolation for X that I know of is Qubes, done using Xen. Furthermore, Wayland can have lower input latency than X if you are dealing with more complex input. Text nowadays has grapheme clustering, ligatures and text shaping (including runtime text shaping), and other oddities; this is a h…

> GUI isolation

Just like vsync, GUI isolation is a trade-off. It comes at a cost with major inconveniences for the user and programmer. On a system running primarily trusted open source applications GUI isolation is not a priority whereas letting programs talk to each other without restrictions is. On a system where you primarily run proprietary software from untrusted sources (like Android or Windows) GUI isolation has a high priority.

> The result is dramatically lower latency

You understand that the bandwidth between your front buffer and monitor is many orders of magnitude lower than the bandwidth from GPU to front buffer? This means it is impossible to have lower latency if you force vsync (especially if you have unpredictable events like user input). Besides, all the weird "timing solutions" and "offloading to the GPU" you are proposing can be implemented on X11 as well. Wayland is just a protocol to manage multi process access to memory on your GPU. Inherently it doesn't do more than DRI3 on X11.

Re: River: A dynamic tiling Wayland compositor

#40
post #22
post #4

So what's Wayland? I can't be the only one who is frustrated when they click on a HN link hoping to learn more about something, and instead I'm presented with a list of folders and files.

It’s much much much more secure. Unfortunately that broke screenshotting/screen sharing programs. So, each compositor has to have their own now. But in general better performance and ideally you won’t even notice anything is different

> So, each compositor has to have their own now.

Not really. There are common APIs called XDG Portals, so all you need is a compositor-specific portal implementation which is transparent for applications.

Post reply on HN