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...
PCSX2 Disables Wayland Support
101–110 of 208 posts
Re: PCSX2 Disables Wayland Support
#102Earlier 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.
Re: PCSX2 Disables Wayland Support
#103Earlier 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…
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
#104This 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.
Re: PCSX2 Disables Wayland Support
#105Earlier 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.
Re: PCSX2 Disables Wayland Support
#106GNOME 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.
* 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
#107Aside 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)?
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
#108Earlier 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.
Re: PCSX2 Disables Wayland Support
#109systemd 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
#110Earlier 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…