Hacker News new | ask | show | jobs
by zxzax 1832 days ago
I'm afraid I don't understand -- the extensions are configurability. That hasn't been removed. If you didn't have an API to configure these things, there would be no way to do it at all, so it still sounds like you're asking for something contradictory. What would help here? What would be the benefit of removing the extension API, and what would you replace it with?
1 comments

It sounds more to me like you're twisting these things to make them seem contradictory.

> the extensions are configurability

And this is an inadequate mechanism.

(For me! If it works for you, that's great! Me, I like to be able to configure bars and widgets and menus and stuff wherever I want with a few clicks, which is why I run Xfce. Far be it from me to say there should only be one true desktop)

I'm not sure what you mean twisting. If you're asking for the extension API to not be there, I think that would result in a strictly less configurable program. If that's not what you're asking for, then please clarify. Also, I'm not sure what you mean inadequate, the extension API is the internal API of the shell. You can use it to do anything that the shell can do. How could it be made adequate? You can install many extensions to configure the panels and menus in just a few clicks.

Edit: Somebody could probably make an extension to make the shell look and act like XFCE if that was really desired, for whatever reason. I don't think XFCE users would care much, but I just mean this as a way to illustrate what level the extension API sits at -- it's a level below the panels and menus and stuff.

> You can install many extensions to configure...

There, that's the issue you're refusing to see. Having to discover and install extensions to do basic things is not a good feature.

If that's OK for you, great. Doesn't work for me.

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.
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.

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 :)