Hacker News new | ask | show | jobs
by zxzax 1832 days ago
I'm sorry, please don't assume bad faith, I'm not refusing. I just don't understand how opening a configuration dialog and doing a couple clicks to install an extension that changes the panels, is different from opening another configuration dialog and making a few clicks to change the panels. It seems exactly the same to me. I don't have any preference towards either of these, I'm just interested to hear why it doesn't work for you.
2 comments

For me, it's very simple. There are certain things that I must have in a desktop environment (DE) --- for example, having a 3x3, 2-dimensional workspace. As far as a DE is concerned, I want to be a user of the DE, not a developer of the desktop environment.

The problem is that the extension API is fundamentally unstable, and so extensions which provide the functionality that I consider a must-have, are unreliable, and may break in future versions of GNOME. I don't want to be in the position of debugging an extension which stops working in a future version of GNOME. I may be a kernel programmer, but as far as the desktop environment is concerned, I just want to be a user of it. And if an extension breaks, and I have to figure out which other extension might have the feature that I want, but which might require painful configuration somersaults after successive new GNOME versions, the answer is very simple. I'm just going to say, "No Thanks". KDE/Plasma supports what I consider to be fundamental key functionality, and I don't have to mess with it. And so GNOME is just not for me. If it works for you, great! But an extension API which is not stable, and when what I consider core functionality can only be provided by extensions which are resting on top of quicksand, is not going to be persuasive answer.

Hi Ted, thanks for responding. The extension API is similar to the kernel's driver API, with the same caveats -- you can use it externally, but you need to track upstream for breaking changes, because upstream is always going to need to have the ability to refactor and deprecate things, otherwise they get stuck maintaining deprecated/crufty APIs forever. And yes, I am suggesting that making a stable extension API for the shell would probably be about as difficult as making a stable Linux driver API. There is not really any consensus on what a GUI shell is supposed to look and act like, as you can probably tell from all the arguments all over the years.

If KDE has a solution to this problem in the works, I'd love to hear about it, but AFAIK this is not solveable with code, because it's a headcount problem, not a technical one. Otherwise my suggestion would be the same as the kernel developers say to someone using out-of-tree drivers: either get your extension upstreamed, and deal with the long review process from the shell developers, and be prepared to explain in extreme detail why you need 2d workspaces and why it's worth it to have upstream maintain that... or just don't update your shell until the extension gets updated. This isn't really a Gnome specific problem either if you ask me, I haven't seen any desktop compositors for Linux that are active and offering a fully complete and stable API, because turns out it's not an easy thing to do.

KDE has solved the problem for me by providing 2-D workspace as a core feature, and not relegating it to the slums of "you want it, write your own d*mn extension".

GNOME has chosen not to do this. And so, GNOME is not for me, because I consider a 2-D workspace a "must have" feature. And so I will choose KDE over GNOME, because as a user (and I'm not interested in becoming a Desktop developer, sorry; I'm also not a web browser developer, or word processor or spreadshet developer, either. We can't be developers for everything), KDE meets my needs as a user. GNOME does not.

My main complaint with GNOME is that their answer for "you don't support feature X" is not, "yeah, sorry, we have an opinioned design, and go f*ck off", but rather, "Stop complaining, we have an extension for that". And so they don't understand that unstable extensions is not an answer to a user complaint that a feature doesn't exist. If they don't want to support a feature, that's fine. But don't try to use the lame excuse, "there's an extension for that", since they don't want to admit that they are asking users to rely on something that will randomly break.

If someone wants to use ZFS, I'll tell them that this is not supported by Linux. If you really want ZFS, use Illumos or FreeBSD. If you use Linux with ZFS, and it breaks, that's not my problem, and I'll be first to disclaim that Linux support ZFS. Because it really doesn't. There may be 3rd party developers who are trying to make that work, but I would never recommend to a user that they use Linux/ZFS, since if they need newer hardware support which is in a kernel not supported by Linux/ZFS, or their distribution has updated their default kernel to a version that doesn't support Linux/ZFS, they shouldn't come complaining to the Linux kernel community. Unfortunately GNOME is trying to have things both ways.

That's great, I support you using KDE. But the fact is, if you really wanted that feature in core Gnome, someone would have to advocate for it, implement it, and then get that feature upstreamed, and then someone will have to maintain it upstream, indefinitely. An alternative to that would be for someone to write the extension, and then maintain it by tracking upstream, indefinitely; both are about the same amount of work. So it's not clear to me why you're complaining about having to write your own extensions -- this is just how open source works. You have to do the same thing in KDE if you decide you want to add some new non-default functionality that doesn't exist there too. It's not any different because it's a desktop and not a kernel, or a web browser, or a spreadsheet, or whatever. I'm happy that you could use KDE and that it works for you, but from my perspective Gnome is not doing anything weird or strange that KDE is not doing, other than having a different default design of what workspaces are supposed to be.
My only real complaint is advocates like you who try to claim that an extension is a valid solution to a feature request. Because it really isn't. People spend a lot of time customizing their environment to meet their needs. And they often don't have a choice not to update some package like a GNOME Shell. The problem is that there are huge numbers of dependencies, and if you hold back on updating GNOME Shell, you can't update a potentially huge number of other packages, and you risk your desktop or laptop installation becoming unstable.

So the "just a few clicks and you can install an extension" is really a very weak, naive argument. One might even say, one made in bad faith. I don't tell people to use out-of-tree kernel modules either, because that's not really a solution for exactly the same reason. Instead, I tell them, yeah that sucks, I suggest that you not buy Nvidia hardware. :-)

Please don't assume bad faith. Extensions can be a solution to some problems, but they're obviously not perfect -- I'm not saying they are.

>The problem is that there are huge numbers of dependencies, and if you hold back on updating GNOME Shell, you can't update a potentially huge number of other packages, and you risk your desktop or laptop installation becoming unstable.

So just to be clear, that same problem propagates to upstream, which is exactly why the extensions break. If they wanted the extensions to not break so much, the alternatives there that upstream has would be:

- Hold up the release so that everyone gets a chance to update their extensions. This causes sweeping problems because now everything else is delayed if an extension developer is slow, and this may not even help if the extension developer has truly vanished, because then nobody will be around to update the extension. Gnome switched to time-based releases a long time ago to get away from those problems.

- Merge the extension upstream. There are a large number of extensions, and some of them conflict with each other, so this is sadly not feasible to do with every extension that everyone wants, and some people will still be unhappy because their extension was not popular enough to get merged.

- Limit the extension API to a small group of stable functions. This will reduce the total number of extensions, and people will still be unhappy because some things will not be part of this API (e.g. it's unlikely you'd get the full lower-level workspaces API that allows you to implement something like 2d workspaces).

- Don't allow extensions at all. Now if you want to change the shell's behavior, you have to do a hard fork.

So yeah, I agree extensions are sometimes not a valid solution to a feature request, but the problem is that every other solution is even worse, at least for Gnome anyway.

>I suggest that you not buy Nvidia hardware.

If you want to play this game, I could suggest that you just not use 2d workspaces. But I won't -- I think you deserve to use that feature if you want it. And if I did buy nvidia hardware, I would use nouveau :)

I was using GNOME when 2-D workspaces was a supported feature, and when it was removed, people told me, "don't worry, use an extension; the feature isn't really gone". The problem is then the next time my distribution updated to a new version of GNOME, things broke, and I had to scramble to figure out how to get a working desktop environment again.

Fool me once, shame on you. Fool me twice, shame on me.

I think the suggestion there would be to find someone who is willing to maintain the extension when upstream does a new release.
Well, because I'm having to install third party pieces which may or may not break stuff, may or may not be supported for long, may or may not break on the next update, in order to achieve a base level of configurability which it seems like DE designers don't want you to have in the first place.

Maybe they fixed things in the last few years, I have no idea, but last time I had to use Gnome 3 it broke existing DE muscle memory of using all sorts of environments across all sorts of platforms, and made it hard to discover how to change anything. Having to then install third party pieces to achieve minor change is not something I feel is an adequate replacement, particularly coming from systems where easy, built-in configurability comes as standard.

Again, if that all sounds fine to you, more power to you. To me it's an opinionated DE that tries its best to push its own ideas of usage on the user, and hides any/all options behind an API rather than exposing them to the user by default.

Why would I bother with such a DE when I can find one that supports what I want to do out of the box?

>having to install third party pieces which may or may not break stuff, may or may not be supported for long, may or may not break on the next update

Right, so that is a problem, but it's a different problem from lack of configurability. Those things are being addressed in other ways such as with the extension rebooted initiative: https://blogs.gnome.org/sri/2020/09/16/the-gnome-extensions-...

You're making a distinction of "third party" here but I don't understand why that really matters for configurability, for example it's no different from installing an unoffical XFCE panel applet, or using a third party file manager, etc. In the gnome shell, the extension API is built-in and standard. That is the configurability. If you're asking for specific panel settings to be included by default, that really isn't possible in a way that would please everyone -- you can look at the sheer number of panel extensions there are to see why that is the case. Again someone could make one to make it look and act exactly like XFCE's panel, but that would just be yet another option. Does that explain it? It's not really possible for the shell to act the way you're asking.

I support you using XFCE if that's what you want, but if you're asking for changes to be made in Gnome, those could probably not be made without causing much worse breakage. If you're not asking for that, then never mind, I misunderstood :)

> Right, so that is a problem, but it's a different problem from lack of configurability

Lack of out of the box configurability, lack of ease of discovery of configurability, lack of dependability on third party pieces (which may be essential to my workflow, that third party widget in Xfce isn't).

That initiative looks like a good move, I don't mean to disparage that.

> In the gnome shell, the extension API is built-in and standard. That is the configurability.

And that's not a good mechanism for me, as discussed.

> If you're asking for specific panel settings to be included by default

Yes, that's specifically my preference, for a system the user can configure, easily/out of the box, without relying on third parties to patch some really simple stuff back in.

> It's not really possible for the shell to act the way you're asking.

I'm not asking the shell to act any particular way, nor am I asking for changes in Gnome. I have had no real interest in Gnome since the 2->3 transition and this approach is part of that.

>Yes, that's specifically my preference, for a system the user can configure, easily/out of the box, without relying on third parties to patch some really simple stuff back in.

I personally would describe that approach as actually more lacking in configurability, because with that you're limited to only the built-in settings. In my opinion all those could be improved with further improvements the extension system. In general I also see the line between "third party" as being blurry in these open source projects, because any random person can contribute something. But in the end, you deserve to use something that is to your preference.

>I'm not asking the shell to act any particular way, nor am I asking for changes in Gnome.

Sorry, I guess I'm confused as to why you'd be talking about technical issues with GNOME, if it's been totally irrelevant to your interests for the last 10 years, and you don't even use it. If you're not interested to give constructive feedback or try to fix the issues, or try to describe different ways of achieving your workflow, then I would say I'm not really interested to discuss complaints about these things.