Wayland is great! Except for all list of not-a-bugs that I’d like to see fixed. Still, I’m not going back to X, so take that how you will.
What are the not-a-bugs? Things like covering up a Wayland window will block it’s rendering thread indefinitely with no way to detect it happens to handle it. This can lock up some games, or cause you to time out in a networked application. Some Wayland core folks don’t want applications to know if their window is visible or not because it’s mild information about a user’s attention that should be private. Every game dev on the other hand is asking “WTF!?” as it causes their games to break randomly.
Another mild example is that windows cannot be raised except by the user or by launching them. This is supposed to be a mild security precaution so a program can’t pop up a legitimate looking dialog over another application and trick the user. Realistically it means that applications can’t open and focus URL in your web or file browser. Instead they have to give you a notification telling you “Firefox is Ready” and make you do it manually.
A lot of this is slowly (painfully?) changing, and the adversarial nature is a bit frustrating. Wayland fixes so many little things that I find it well worth it though, and I say that as a game developer frustrated by many of the core design decisions.
Another mild example is that windows cannot be raised except by the user or by launching them. This is supposed to be a mild security precaution so a program can’t pop up a legitimate looking dialog over another application and trick the user. Realistically it means that applications can’t open and focus URL in your web or file browser. Instead they have to give you a notification telling you “Firefox is Ready” and make you do it manually.
I would like them to keep that behaviour. At least make it an option or allow whitelisting certain applications. Nothing I hate more in an OS than windows stealing focus without asking.
Focus stealing is one of the worst things in the world, I am so glad I haven’t had to deal with it since I switched to wayland. (Except for stupid firefox tabs stealing focus from other tabs, that still happens obviously and happened to me during a test for my university and almost invalidated my score)
Some Wayland core folks don’t want applications to know if their window is visible or not because it’s mild information about a user’s attention that should be private.
I do like that. I have encountered a number of bullshit things like HR mindless training videos (ok, the fourth time I’ve seen this guy contemplate accepting a bribe… I get it. Don’t accept bribes! Leave that shit to Clarence Thomas) or ad playbacks that refuse to proceed unless they are focused. It’s annoying as hell. The problem you point out also sounds really annoying.
What are the not-a-bugs? Things like covering up a Wayland window will block it’s rendering thread indefinitely with no way to detect it happens to handle it. This can lock up some games, or cause you to time out in a networked application. Some Wayland core folks don’t want applications to know if their window is visible or not because it’s mild information about a user’s attention that should be private. Every game dev on the other hand is asking “WTF!?” as it causes their games to break randomly
Please don’t make up what “Wayland core folks” think. You don’t know it, and your claims are waay off.
It’s not about security. It was intended to allow the compositor to throttle apps to improve efficiency… Which of course in practice doesn’t work like this at all, because OpenGL swap buffers and Vulkan FIFO presentation modes were never intended to be used this way.
As for why that hasn’t been fixed yet, it’s not as big of a problem anymore:
Mesa (at least for Vulkan) and Xwayland gurantee one frame per second as a minimum refresh rate
toolkits and libraries use mailbox presentation internally and check frame callbacks themselves for when to render
xdg shell now contains a flag for apps to know to inhibit rendering because they’re hidden. That doesn’t guarantee that presentation won’t otherwise block though
a (set of) protocol(s) is being worked on to replace frame callbacks with a mechanism actually suited for OpenGL and Vulkan
Another mild example is that windows cannot be raised except by the user or by launching them. This is supposed to be a mild security precaution so a program can’t pop up a legitimate looking dialog over another application and trick the user. Realistically it means that applications can’t open and focus URL in your web or file browser. Instead they have to give you a notification telling you “Firefox is Ready” and make you do it manually.
That’s not even close to how activation works on Wayland, and no, it’s not just a security thing, it’s a usability thing. Apps can only raise themselves if the currently focused app gives them focus, so that random apps can’t cover up what you’re working on just cause they need to show you an ad or an “important” pop up question or whatever. If it doesn’t work for a specific app, make a bug report about it to the app.
A bit of a zombie thread, but I’m not making anything up here. The blocking issue gets discussed a lot in gamedev circles, and there are issue threads that have been locked by folks with the power to do so because they just said “no”. One of them (Maybe Sebastian Wick? I don’t remember… doesn’t really matter) gave verbatim that use case where a video service they use would stop playing videos when the browser was in the background, and that is why they won’t report . Maybe they weren’t a “core” developer, but they had the ability to say “no” and end the discussion thread.
As for it being not a problem anymore, it still occurs even on Fedora 39. The 1 second present timeout still only works for XWayland, and that’s… not a great solution. Also, realistically unless SDL2, GLFW or whatever engine a gamedev is using handles it for them they just don’t have the time to worry about what GTK, Qt, or XDG shell does. We are already supporting multiple rendering APIs, and combining that with multiple UI libraries just to get a window to draw a triangle into is a combinatorial explosion. Last I remember reading from the SDL folks, they were waiting for the functionality to appear in Wayland before they could implement it, and they weren’t expecting anything to change soon either. Speaking personally, my current game project is single player so I can just pave over the timing issues when they come up:
Long frame detected: 6463.731931 ms. Skipping ahead!
The most frustrating part to me is much more meta. You get discussions with other game devs that have heard about this stuff and they continue to think that supporting Linux is just way too much work. Sometimes they are right, but rarely for the right reasons it seems. I believe in the glorious Wayland future… I just wish it would get here a bit faster. ;) On the other hand, if we rushed it and botched it then it would never arrive at all I suppose. (sigh)
As for how window activation works, you got me there. I just heard other people discussing that one, but it did explain why on Wayland I would just get “Firefox is ready” notifications when opening links instead of just showing me the page like X did. Though I’m quite happy that it’s gone now in Fedora 39. Progress is good!
The 1 second present timeout still only works for XWayland
Oof, I thought the corresponding MR for Wayland was merged… But it was from Sebastian and after he got into a heated discussion again and started cursing, the MR got closed by someone else :|
realistically unless SDL2, GLFW or whatever engine a gamedev is using handles it for them they just don’t have the time to worry about what GTK, Qt, or XDG shell does
SDL does handle it, but only for OpenGL; it can’t do anything about Vulkan. GLFW doesn’t do anything about it either, so that is pretty annoying.
I believe in the glorious Wayland future… I just wish it would get here a bit faster
Don’t we all. Let’s hope the current upstream approach to fix this issue gets somewhere sooner than later…
It’s initial bcachefs anyway, which doesn’t support all features yet and still needs a lot of work. I wouldn’t run bcachefs yet on any system where an LTS kernel is necessary.
A crash in the window manager takes down all running applications: Yes, because the compositor IS the server, window manager AND compositor at the same time.
I still would have preffered a modular approach, where compositor, window manager, server/mouse+keyboard are plugable. Well, it’s probably possible with Wayland, but the ecosystem is not there yet.
I love Joplin, but for this write up, I think I would have reworded the sub titles to be less click-baity.
“8 Joplin Superpowers to Boost Your Note-Taking Experience”
“Create a Notebook”
Okay… Not exactly “super powers!” If you’re literally talking about some of the most basic functionality of the app. The end of the article does get into customizing it with plugins, etc so that’s good.
Is there a community or database where people have tested different plugins on Linux either natively or with Wine to see if they can get things working?
There is, if you look up yabridge that’s like a plugin bridge that natively runs windows vsts in reaper for Linux through wine with almost no hassle. They have a list somewhere
There’s probably a mixture of those that do and those that don’t, but I’d imagine statistically speaking there is a majority who play videogames, especially given the generation that is coding now has grown up with video games as a big part of their childhood.
The oldest crpg I ever played was called advent, because the Vax computers could only use 6 characters for file names and so the people who ported it couldn’t use the actual name “adventure.” It was basically the same as the game infocom shipped as Zork.
Apparently the original implementation was on the PDP-10 in 1976. There might have been a couple other games that predated it by a year or two, but adventure was the big one in my opinion because it led (eventually) to the creation of the infocom text based game engine and a whole line of games ranging from hitchhiker’s guide to the galaxy to leather goddesses of Phobos.
Oh, damn. Thanks for finding that man. Now I’m not sure where I read his stance on closed-source art. I might be mixing that up with Torvalds stance in tivoization, but I’m not sure. It might’ve been the Lunduke interview Wzstolzing mentioned.
No he does actually mention in the middle of that that while code must be free, art is different because art is not software. I guess he’s imagining a situation where a game would have multiple licences (one licence for the code, a different one for the art assets).
Very few games would qualify for that, unfortunately. One of the few that comes to mind would be when iD released the source code to Doom 1, 2, and 3 under GPL, but with the assets still under copyright.
Somewhere im the bowels of youtube, there’s the footage of Stallman quarreling with B. Lunduke on this very question. It was a micro-scandal some 15 yrs. ago, I think.
I was afraid to say it in case you liked him but YES. When I first got into Linux I subscribed to his standalone show on youtube, but he was so god damned long winded, I can’t tolerate any of his content now, especially since he got ‘weird’
I have never owned a console, but have been playing games since I was 4 (that would be 1981). Also I can’t remember paying for anything in those days :-) Everything came on cassettes and floppies.
I made some very basic text based games back then. Nothing that anyone else would ever play :-)
(Also I am a developer, but not in the FOSS sphere)
I would be surprised if someone who games stuck entirely to open source options. Even so there are some pretty good entries out there like Shattered Pixel Dungeon. It’s pretty amazing and better than any top down SNES game I’ve ever seen.
There was somebody on the Linux reddit with a self hostable ebook app just a week or so. It looked slick but wasn’t really that useful for me. Might be worth a look.
I feel that I’m usually more upset that apps choose electron and I have performance issue because they didn’t spend time writing a proper lightweight desktop application. I feel like Calibre is actually one of those apps.
I could see portability across devices being useful but is the Calibre interface really going to be conducive for that?
All the other services I have running are on a server in my closet, which I access with a web browser from other devices. Calibre needing to run on my workstation is a big shift in that workflow. Especially because all the rest of my media is sitting on that server.
Also, UX of open source desktop apps is… lacking. They don’t look good, and they don’t feel good to use. But that might be because I’m picky and spoiled by decades of using a Mac.
I definitely don’t want more Electron apps. About the only things I want to run locally is a browser, a text editor, and a terminal.
That’s fair but I think one of the most critical features of Calibre for me is interfacing with my e-reader over USB to download/upload my epubs. I don’t know how that would work from a Browser app.
You can use Podman too, if that would be a problem.
Look at StirlingPDF if you want an example how to run OR are interested in a great web-UI PDF editor based off various open sourc tools, in a single interface
It’s unnecessarily annoying to set up, as the other user pointed out. But it can be set up by itself using hub.docker.com/r/linuxserver/calibre-web docker, and used standalone. The only trick is needing an empty database.
Can you explain bit more please. I have calibre-web running, downloaded empty database, added some books in the same folder as database, but nothing is showing up in calibre-web gui. Did I miss something?
linux
Oldest
This magazine is from a federated server and may be incomplete. Browse more on the original instance.