Live data from Hacker News

PCSX2 Disables Wayland Support

github.com

101–110 of 208 posts

Re: PCSX2 Disables Wayland Support

#101

Earlier quoted context omitted.

> Yes, you can't position windows absolutely, but that's because you're not supposed to do that. Why not? This seems like a pretty opinionated policy from something that's supposed to be a platform to enable applications. Why should some other developer dictate how an application should work? I'd expect "My way or the highway" from Apple, but not from a linux API.

It's more nuanced than "should be able to do it" and "shouldn't be able to do it". The problem is covered in the wayland-protocols MR that the PCSX2 PR author also linked to (and failed to appreciate): https://gitlab.freedesktop.org/wayland/wayland-protocols/-/m...

Thanks for the extra context. I don't have a dog in this particular race, but I think, as a developer, I'd look at that list of excuses and just say "Why bother, I'll just target X and get on with my life." The great thing about Linux is there's usually at least one other alternative for basically anything you want to do!

Re: PCSX2 Disables Wayland Support

#102

Earlier quoted context omitted.

> Yes, you can't position windows absolutely, but that's because you're not supposed to do that. I think about 40 years of GUI APIs disagree with this.

40 years ago people did not care about malicous applications, nor did they care about jank, nor did they have the hindsights that we do know. Those API only still exist because of backwards compatibility.

I also don't care about malicious applications. I don't need to be protected from myself and didn't ask anyone to try.

Re: PCSX2 Disables Wayland Support

#103
post #85

Earlier quoted context omitted.

How is the window manager going to handle the positioning in a scenario like multi-viewport? The user already conveyed their intent by dragging a window out of the application's viewport to create a new viewport, and Wayland is prohibiting the application from obeying the user.

I'm just trying to understand why ImGui needs to read and write window positions, because it's not immediately obvious from that paltry description. It sounds like you're describing a use case where it needs to be able to set the position of a new window relative to an existing window. So APIs to read the position of the current window and write the position of the new window are probably what they're looking for—tho…

AFAICT from looking at the imgui wiki page and the examples in the OP of the wayland-protocols MR, it seems to be entirely that either these libraries have existing API that allowed setting the window coordinates and thus they want to be able to continue providing them, or these applications (like gimp) want to be able to recreate those windows at their previous positions after the application is closed and restarted.

It's also worth noting that that imgui wiki link says the feature doesn't work well in X11 either, though I didn't read the linked issue for what exactly is broken there.

Re: PCSX2 Disables Wayland Support

#104
post #63

This discussion about monitor-aware positioning of windows relative to another is a real treasure trove: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/m... One post summarizes it pretty well. Jehan says: > As GIMP maintainer, do you want me to open a separate report so that we explain our use case on multiple windows, as well as future planned use cases? I find it fascinating. There is this supposed succ…

I don’t know, deciding not to support multi-window mode seems ok to me. It’s a relic of the past and dragging around all that baggage often isn’t worth it.

Tell that to the people who like replicating their Workspaces at home using a remote connection that works everywhere on every OS....unless you are using Wayland.

Re: PCSX2 Disables Wayland Support

#105
post #102

Earlier quoted context omitted.

40 years ago people did not care about malicous applications, nor did they care about jank, nor did they have the hindsights that we do know. Those API only still exist because of backwards compatibility.

I also don't care about malicious applications. I don't need to be protected from myself and didn't ask anyone to try.

Yeah, I find the creep of web app security mentality into the desktop to be a disaster. I want to be able to easily snoop on and control my GUI and I absolutely don’t want some display system to decide it knows better than me about this sort of thing.

Re: PCSX2 Disables Wayland Support

#106

GNOME as a platform (and by extension, all of their associated projects which unfortunately includes the Wayland protocol) has such a bizarre worldview - it's like they think they can treat the Desktop OS, with all of its user expectations and existing working software, and remake it as a bigger iPadOS, to no one's actual benefit. What do I get in return for having to give up all of these things that used to work? It…

It's cool if GNOME doesn't work well for you, but for me it's near-perfect. For sure it's rough around the edges, but what isn't? GNOME helps me get work done, stays out of my way until I need it, etc. I see so much general hate towards GNOME on HN, and it's really annoying. If it doesn't work for you, great, I'd like to hear why. But saying it's "strictly downsides" simply isn't true, nor productive.

Issues with GNOME come down to three inter-related issues.

* Configurability - GNOME goes out of it's way to remove any configurability from their DE. First they move settings to obscure places, next they remove them entirely.

* Compatibility - GNOME devs don't provide solutions for common use cases like window positioning or screen capture (yes I know that screen capture is now supported, but it's a compositor specific implementation rather than actually standardized by Wayland), at the expense of end users with those requirements.

* Consistency - GNOME seems to go out of it's way to do things differently from other mainstream desktop platforms. Windows does typeahead search, macos does typeahead search, KDE does typeahead search, GNOME does their own weird recursive search instead.

On their own each of these isn't a dealbreaker (I can deal with weird defaults if I can change them, I don't need as many settings if the defaults are less weird and don't break my software). But all three together is too much - GNOME looks like they are sitting in an ivory tower trying to dictate their opinions on desktop design to the world while having sub 1% market share. People won't drop window positioning or screen capture just because GNOME devs say so - they'll just not support Wayland. I know at least one real world person who swore off desktop Linux as a whole after Wayland screen capture broke at a critical time.

Re: PCSX2 Disables Wayland Support

#107
post #61
post #31

Aside from bugs and driver issues, Wayland has some unfortunate design limitations. For example, Dear ImGui multi-viewports don't work because "Wayland doesn't let application read or write windows positions." https://github.com/ocornut/imgui/wiki/Multi-Viewports This is a feature available on Windows, macOS, and of course X11. Making choices like this means desktop Linux becomes even more of a weird island that nobo…

Why can't ImGui applications do multiple windows while leaving the positioning up to somebody else (the user or their window manager)?

Imagine a program that utilizes several separate windows for palettes. If the program has no way to specify where to place those palettes, the user is going to be presented with a ton of palettes piled on top of their document window and that they’ll have to sort that out themselves, rather than a neatly organized immediately usable workspace. That’s not really an acceptable user experience no matter how you slice it.

Multi-screen situations is another place where this comes up, which includes not just multi-monitor desktop setups but things like foldable devices, and it can be useful to have functionality that lets the user designate a screen for a particular function (for instance, putting sliders and knobs for audio production software on a touchscreen) and have it available regardless of the compositor the user is using.

Re: PCSX2 Disables Wayland Support

#108
post #48

Earlier quoted context omitted.

Works flawlessly if you've never edited a Xorg config file… if you did, there is no way to keep using the same configuration

I’ve used Linux for over 10 years and I don’t even know what an xorg config file is. I suspect most users don’t. I wouldn’t expect my desktop environment to require any config.

That stands to reason - the last time I had to edit xorg configs was probably over 15yrs ago getting multi monitor working before xrandr. Since 2005ish, xorg seemed to be able to happily autoconfigure itself.

Re: PCSX2 Disables Wayland Support

#109
Wayland and systemd are two topics that I credit with showing me that I shouldn't give too much weight to the consensus on Hacker News and Reddit. Things turned out opposite to the prevailing sentiment at the time.

systemd faced an enormous torrent of criticism for replacing the simple sysvinit with something more complex. Yet, sysvinit was only simple if you focus on the init program only instead of taking a systemic view. Under sysvinit, if you wanted to turn a regular command-line program into a daemon, you had to code a whole dance of closing file descriptors, sanitizing environment variables, forking, calling setsid, forking again, resetting the umask, and so on [0]. You had to make sure that all code writing to the standard output and error streams was changed to use the syslog. You also had to manage a pidfile in a way that was free of race conditions. People would write the same logic over, and over, and over again in different projects and programming languages.

On the admin side, a server system with a sophisticated configuration that involved starting daemons when a connection arrives, automatic restarting, e-mailing on error, and so on, could easily turn into a complicated maze of interacting programs and shell scripts. To get the full picture of how a daemon is actually managed, you would need to check many config files with completely different syntaxes.

systemd has greatly reduced this pointless duplication of effort by centralizing the complexity into a single, well reviewed set of implementations. Now, you can take a small program that runs in the terminal and prints log messages to stdout and, with a single INI-like file of a dozen lines, turn it into a daemon whose process supervision is better than anything you could implement yourself. The ease of configuration encourages you to add features such as automatic restarts, resource limits, or dynamic users, which you probably wouldn't have done on sysvinit because it was a pain in the ass.

Wayland, until recently, almost universally praised, but it does the opposite. In order to keep the protocol pristine, it just pushes complexity onto everyone else and ends up making the situation terrible from a systemic perspective. Wayland can push video from a regular program (client) to a privileged one (compositor), but when asked about pushing video the other way to record the screen, they went "not my problem" so pipewire has to handle it. There is no longer even a set of standard command-line utilities you can expect everywhere. On X11, you can type a setxkbmap command to tweak your keyboard layout at runtime regardless of the desktop environment. You can get information about the connected monitors with an xrandr command. In Wayland, every compositor has its own way of handling these, and sometimes you can't even change a keyboard setting without restarting the compositor. What a regression and a blow to the community of tinkerers who like to share small utility scripts with one another.

These are just two examples, but I don't think that Wayland's approach of targeting specific use cases, instead of providing a set of general tools, can ever work well when combined with its bureaucratic approval process. It took years of asking before Wayland devs decided that maybe the user should be able to disable VSync after all. It also took years to backtrack from the bizarre choice of making the UI scale integer only instead of just exposing the real fraction set by the user.

[0] For details, see https://www.freedesktop.org/software/systemd/man/latest/daem...

Re: PCSX2 Disables Wayland Support

#110
post #85

Earlier quoted context omitted.

How is the window manager going to handle the positioning in a scenario like multi-viewport? The user already conveyed their intent by dragging a window out of the application's viewport to create a new viewport, and Wayland is prohibiting the application from obeying the user.

I'm just trying to understand why ImGui needs to read and write window positions, because it's not immediately obvious from that paltry description. It sounds like you're describing a use case where it needs to be able to set the position of a new window relative to an existing window. So APIs to read the position of the current window and write the position of the new window are probably what they're looking for—tho…

You have some good examples here https://gitlab.freedesktop.org/wayland/wayland-protocols/-/m...
Post reply on HN