Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

History is back around to repeating itself. I'm an avid Linux user (and even a developer who uses GTK pretty regularly), but the recent developments surrounding GNOME, Flatpak and their related libraries has not made me optimistic for the future of Linux applications.

GTK4 is really bad. It launched with horrible text rendering issues (still unfixed, 10+ months later), broke compatibility with a number of basic features, and then had those features replaced by the GNOME middleware known as libadwaita. libadwaita is in a "functional" release state, but still lacks support for custom stylesheets, basic desktop integration on non-GNOME desktops and has it's own litany of bugs that accompany it. Fair enough for brand-new software, but the state of GTK4 is unacceptable and borderline impossible to use on a daily basis. If you're a developer, things only get worse. Gone are the days of fast app development with gtk::Builder workflows, and now Glade has been thrown by the wayside with no replacement. Talk about a second-class developer experience. And then there's the strange omissions that the GNOME team insists on; some issues are marked as WONTFIX since they can be mitigated with Flatpak. Some features (like appindicators) have been ignored completely because they don't align with the GNOME desktop's vision. The general demeanor of the team has been my-way-or-the-highway, so making suggestions mostly gets you labelled as a troll in their gitlab and sees you forcibly removed if you don't give up and assimilate into their opinion.

Flatpak itself is becoming the new Wayland. With more than 600 open issues on Github and outstanding issues like random data deletion, portal malfunctioning, compositor glitches, security holes and more, it's less like the "one package manager to rule them all" and more like "snap but it doesn't work". It's slow, doubles the dependencies that you store on your system (!!!) and doesn't integrate with your desktop unless you go out of your way to install questionable third party hacks that forward your native stylesheet and XDG options. I'd honestly rather use AppImage if given the option.

The future of app development on Linux is bleaker than ever. Fragmentation is at an all-time-high, and the technology that was supposed to fix it only fanned the flames into an unsalvageable dumpster fire. If you are a Linux developer planning on shipping an app, please stay on GTK2/3 for the sake of your users. I outright refuse to run GTK4, libadwaita or Flatpak on any of my systems. Nothing I've seen recently changes my opinion on that.

Dead dove, do not eat.



> The general demeanor of the team has been my-way-or-the-highway, so making suggestions mostly gets you labelled as a troll in their gitlab and sees you forcibly removed if you don't give up and assimilate into their opinion.

Remember:

> I guess you have to decide if you are a GNOME app, an Ubuntu app, or an XFCE app unfortunately. I'm sorry that this is the case but it wasn't GNOME's fault that Ubuntu has started this fork. And I have no idea what XFCE is or does sorry.

> It is my hope that you are a GNOME app. Yes this kind of fragmentation is unfortunate. I'm not happy about it either. Anyway, I just wanted to give you a heads up. Wish you the best.

This was a message from a GNOME dev about the transmission torrent client, 11 years ago. I guess they're consistent with themselves over time at least.

The issue about border decorations on Wayland on their gitlab was also bewilderingly infuriating.


(the issue about border decorations: https://gitlab.gnome.org/GNOME/mutter/-/issues/217)


> And I have no idea what XFCE is or does sorry.

Where is this from?



Heh, drive by comment saying app functionality will be broken with no clear replacement, from someone who didn't even know a major desktop environment at the time, then proposals from another dev to completely rearchitect the app about 6 years later.

Nice.


Only if you are hung up on gnome of course. Plenty of alternatives that work out of the box in desktop space and flatapps aren't really needed really as one click with much less issues is possible many gui package managers.

First option for anyone coming from other OS should be kde. Defaults are sane and customizations are easy to do. Frankly I really don't know why all distros provide gnome by default. There are neither helping themselves nor the broader linux desktop community by shipping something that's broken in so many ways.


> I really don't know why all distros provide gnome by default.

As far as I know, GNOME is still the only Linux desktop environment that includes a screen reader, and possibly some other categories of accessibility tools. That's important for distributors who are legally required to provide accessibility options, e.g. because they're selling to the US federal government.


Aah. That would explain it.


I guess XFCE will be either moved to QT5 or, maybe, as a crazy move, rewrite everything in Motif.


> libadwaita is in a "functional" release state, but still lacks support for custom stylesheets,

Libadwaita is an implementation of GNOME's design, analogous to libgranite in elementary OS. This includes the visual design. GNOME only has one style, Adwaita (which means “the only one”!).

If you don't want to use GNOME's design, you don't want to use libadwaita.

> basic desktop integration on non-GNOME desktops

Libadwaita is the library you use when you're targetting GNOME.

If you want to target something other than GNOME, you don't want to use libadwaita.

Libadwaita isn't trying to be a general-purpose library for making apps that feel integrated on any platform. I don't think it's reasonable to criticise it for not being something it's not trying to be. It's like objecting that a dog doesn't meow :)

> and has it's own litany of bugs that accompany it.

Now, that is always a fair criticism :)


> Libadwaita is the library you use when you're targetting GNOME.

> If you want to target something other than GNOME, you don't want to use libadwaita.

Does GTK4 provide any viable model of development if one doesn't want to target GNOME or elementary? I, for one, haven't seen a non-trivial GTK4 app that doesn't use libadwaita or libgranite and the more I discuss this online, the more I suspect that this is intended but unspoken behavior.

Even LibreOffice has now decided to use libadwaita. Does that mean LibreOffice's GTK version is only intended for GNOME? If yes, GTK4 is basically a toolkit for GNOME masquerading as a general purpose toolkit.


> Does GTK4 provide any viable model of development if one doesn't want to target GNOME or elementary?

It's possible to make apps using GTK3 without libhandy, so I don't see why you couldn't make apps using GTK4 without libadwaita.

Technically, libadwaita is just a bunch of widgets. Apparently it's a very useful bunch of widgets.

> Even LibreOffice has now decided to use libadwaita. Does that mean LibreOffice's GTK version is only intended for GNOME?

I guess so. Either that, or they're intending to use libadwaita in an “off-label” way.

> If yes, GTK4 is basically a toolkit for GNOME masquerading as a general purpose toolkit.

The whole reason libadwaita's widgets are not just part of GTK is so that GTK doesn't have to cater to GNOME, and can be a more general-purpose toolkit. Libadwaita 1.0 was just released last month, so presumably it will take some time for that to come to fruition.


As someone with firsthand experience in this field: it's not worth your time. Getting GTK4 to work in other desktops is a shitshow in the first place (it has horrible rendering issues on x11/Plasma configs), but all of the good stuff like gtk::Builder and connect-closures have been removed, making imperative development an enormous pain in the ass. If you still manage to make an app despite that mess, you'll be left with horrible font rendering issues that can only be fixed with a very specific Flatpak configuration (hope you didn't want to run your own app natively!) and by the time you've got it all figured out you'll probably be looking into Qt.

Please, just use GTK2 or GTK3 if you're planning on making non-GNOME apps. GTK4 is simply not finished yet.


What if I want to use GNOME's nice touch functionality and rich set of apps, but not the style? (Which in my subjective view is wayyy too gray).

Why do those things have to be tightly coupled all of a sudden? We've made it through decades without breaking theming, what changed?


> We've made it through decades without breaking theming, what changed?

According to the GNOME team, application developers were getting bug reports filed against their application about broken interface elements, and GNOME was having bug reports filed for the same. The devs stated it was the fault of the theme being used, and as such it would eliminate a lot of headaches for both if themes were forbidden.

"Independent developers" set out to explain this in more detail. [1] While it is targeted at vendors who created their own themes for branding, it echos the overall sentiment toward theming from GNOME itself.

A blog post from a dev as well. [2]

[1] https://stopthemingmy.app/ [2] https://blogs.gnome.org/tbernard/2018/10/15/restyling-apps-a...


That sounds like it'd be solved by a filter rule in their bug tracker, removing theming altogether seems like a strong overreaction imo.


That's called GtkGesture. Just use it. The libadwaita components literally bind the gesture to the ui design pattern widget.

If you just don't want the ui design pattern just use the gesture, it's already there waiting for you to make something with it.


I'm not talking about a library, I'm more concerned with DEs implementing the library.

Things like swipe with three fingers to switch desktops, swipe up with three fingers to show open windows etc. Why is all that stuff tied to a UI theme?


It's not, you're just confused.

Swipe to switch desktops is implemented in GNOME Shell and Mutter. GNOME Shell's default CSS style is also called Adwaita, but it in no way affects the availability of gestures.


If Libadwaita optionally extended GTK (based on desktop preferences) so that when Gnome apps are used on other desktops they can fall back to GTK or other inherited UI, that would be great, but at the moment, Libadwaita is a hard dependency (when used), which makes Gnome applications more different (than not using Libadwaita) on other desktops.


I've been a gnome user for well over a decade. What's common to hear from people like you who have a good level of understanding the ecosystem and the community is that Gnome developers consistently make shitty design decisions and refuse to take input from a wider audience.

What is the reason for no group emerging, forking gnome and doing it the right way? I'd actually pay to support such efforts.


> What is the reason for no group emerging, forking gnome and doing it the right way? I'd actually pay to support such efforts.

That's basically what happened with XFCE, MATE, Cinnamon and Budgie, the rest of the userbase is pretty contented with other desktops like Plasma that can fill most of the same gaps.

With that being said, I too would fund a GTK2 or GTK3 fork if I could be promised developers who don't swing their ego around like a sledgehammer and refuse to apologize when things break. The GNOME project is starting to be the albatross of Linux development, and while I'm happy to develop with GTK3 ad-infinitum, I do hope that a fork emerges from someone more capable (and with more free time) than me. Come to think of it, it's kinda crazy how most modern DEs are made just because of how tired people are running the GNOME treadmill.


It’s not forked from Gnome but KDE tends to stay out of your way pretty easily and supports just as much as Gnome (with some Wayland caveats) if not more. In fact KDE community is very responsive and if you participate you will likely experience and benefit from the momentum they have.


I find touch support much worse on KDE unfortunately. GNOME works really well on my surface pro, KDE, not so much.


I wish I could get any Linux on my Surface Pro 3. That thing heats up to 60c within 5 minutes of turning it on, and then randomly freezes. This is how I learned about the awesome feature Wayland has where you can't reload your session like you can in x11...


Are you running the surface-linux kernel? The SP3 should be well-supported!

https://github.com/linux-surface/linux-surface/wiki/Supporte...


You'd need a really big lot of $s to go beyond RedHat/IBM's budget ; you wouldn't hear as many complaints if GNOME wasn't the default DE on so many distros.


Isn't that exactly what cinnamon and mate did?


That's what XFCE is. (And MATE of course!) Now that they uniformly use Gtk3+, they could even try to achieve better touch readiness than even Gnome itself!


XFCE didn't fork Gnome, though. It was a CDE clone at the start. It just uses Gtk, but otherwise it doesn't really copy Gnome much.


Flatpak is a bad idea but GTK4 and libadwaita are really nice.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: