I've read the threads here, on the Dev Tracker, and asked you directly during your prior update stream, so I hate to re-tread ground that has been (lightly) tread before, but please forgive me.

I'm going to lay out a few assumptions that I'm operating under:

  1. libhandy isn't going away given the investment GNOME have made into it
  2. GTK3 and GTK4 will see more and more integration with libhandy

And now for questions based upon the above assumptions:

  1. Given Solus' position on it, this means that as time progresses, more and more GNOME packages will be held back, deprecated, and/or removed.
  2. Does this place the Budgie DE at any risk? Or would the solution simply be to continue to drop any libhandy apps that GNOME/GTK offer, and choose apps that use other GUI frameworks.
  3. If that becomes the case, why then does Budgie exist upon GTK if it won't serve as a means to integrate with and show off these programs?

This latest stack upgrade cycle was great, fixing a number of small papercuts I had with the older Gnome stack, but it also meant that a large number of GNOME programs I used were dropped/removed, and frozen/held-back. It kind of puts an EOL shadow over my setup, which has lead me to jump to Solus Plasma for the time being, though I miss Raven and the nice notifications from GNOME Terminal/etc.

    Saijin_Naib GTK3 and GTK4 will see more and more integration with libhandy

    No it won't. Applications are adding libhandy not the toolkit (GTK). GTK4 will make libhandy pointless.

    Saijin_Naib Given Solus' position on it, this means that as time progresses, more and more GNOME packages will be held back, deprecated, and/or removed.

    Potentially

    Saijin_Naib 2. Does this place the Budgie DE at any risk? Or would the solution simply be to continue to drop any libhandy apps that GNOME/GTK offer, and choose apps that use other GUI frameworks.

    Saijin_Naib 3. If that becomes the case, why then does Budgie exist upon GTK if it won't serve as a means to integrate with and show off these programs?

    No, Budgie is not based on gnome. It simply uses some software developed by gnome, like the calculator or more importantly to Budgie's ability to function, mutter which will not be used in Budgie 11 and is not relevant to the concern of libhandy, as its a window manager/compositor. Applications can be held back or replaced with alternatives that are not infested with libhandy. It also uses the same toolkit (GTK) which has nothing to do with libhandy being used by some developers. GTK is not the problem.

      Harvey

      Thanks for the great breakdown.

      Given that GTK4 will have, as you said, a responsive framework that will render libhandy obsolete, do you believe the projects/developers that have embraced libhandy now would then deprecate it and migrate to "pure" GTK4? i know you don't have a crystal ball, but just looking for your inclination,

      I am sorry I'm conflating GNOME with GTK. I understand the relationship better now. Ditto for libhandy and its implementation(s),

        Saijin_Naib

        Josh and Bryan discussed this on the recent stream. Their suspicion was it will likely stick around for a long time, far longer than anyone wants it to. GTK4 is aiming at December release apparently but as Josh/Bryan pointed out that does not mean it will be considered stable. How quickly individual projects move to GTK4 is anyone's guess. xchat is still GTK2.

        I am inclined to agree, I don't expect people who make poor decisions to quickly change course. Especially not in GTK/Gnomeland.

        Sits and laughs from Qt/Plasmaland 😛

        I think, @Harvey hit the highlights, but I'll go ahead and lay out my thoughts here just so that it's clear where I personally stand on this.

        Many people don't know this, but I've actually spent a fair amount of my professional career working on web-based applications. In my undergrad years I got distracted by chasing trends and frameworks. It meant that I couldn't do as much as I would have been able to if I had just focused on improving things incrementally. One of those trends was "mobile-first" development. Most people forget that smartphones are only a little over a decade old now. We used to design for 1024x768 running on anything from IE7 to the then new Google Chrome. It was clear that we needed to change how we were doing things to handle mobile devices, and later, HiDPI displays. We couldn't think of websites as print-media anymore. They needed to react (groan) to changes in window size, display size, available hardware, etc. As is true with most course-corrections, the first set of changes are always too far in the other direction. For us, this meant relying too heavily on bloated CSS and JS frameworks to build our web applications. Worse, we spent so much time circumventing the limitations of web-browsers with JS, that standards like CSS and JS have barely evolved in the last decade. Worse, web UI has changed to support mobile and touchscreens as a first priority, meaning that become the elements have become sparse and padded to hell, even on desktop "optimized" styling. If you don't have a HiDPI display, this gets even worse. Meanwhile, I moved away from all of that, wrote a 4KB (uncompressed) CSS toolkit that doesn't use any JS, and it meets 80-90% of the requirements for responsive UI design. Compare that to Bootstrap or Foundation which are hundreds of times larger.

        But of course, you're probably wondering what all of this has to do with libhandy and GTK4. People forget the history of things pretty easily these days. If I were to ask you why GTK3 exists and why GTK2 needed to be replaced, most people would just summarize it as GTK2 being too old or cumbersome to work with. The reality isn't much more complicated, but most people would miss it entirely: GPUs became popular and powerful. With this wealth of graphics power lying untapped, people started expecting their GUI environments to start looking nicer and having "expensive" things like animations. GTK2 was written in a time when everything was rendered on a CPU and GPUs were too expensive or too slow to consider targeting. It didn't fit the mold of this new paradigm. So GTK3 was born to rise to this new challenge. Now, we are at another crossroads where mobile devices, HiDPI, switchable graphics, Vulkan, Wayland, and a host of other new technologies need to be addressed and handled. We don't necessarily need to support both CPU and GPU rendering in the same toolkit. Focusing on one means simpler code and being able to optimize better. GTK4 is what will make that happen for GTK.

        But there's a caveat to that. GTK4 has been in development for a long time and people still want to see those kinds of things in GTK3 applications. Purism recognizes this need and wrote libhandy to provide a set fo GTK3 compatible widgets which fill some of the chasm between GTK3 and the expectations of GTK4. It seeks to mostly improve the responsiveness of certain widgets by replacing them entirely and focusing on mobile device support and touchscreens. This is fine if your a company trying to promote GTK3 for mobile applications running on Linux. But it begs a couple of pretty serious questions:

        1. Why couldn't they just have worked on improving the existing GTK3 widgets?
        2. Why do they assume that "mobile-first" is inherently better? How do they know this won't harm the Desktop experience?
        3. Why are they going around and patching libhandy into desktop applications like GNOME Boxes that have no reason to be running on mobile systems?
        4. Won't all of this just be a waste of time once GTK4 is out?

        I won't speak for @JoshStrobl, but I personally feel that Purism should have worked on improving GTK3 widgets rather than writing their own widget toolkit that they are now going around and "infecting" other projects with. I think this will harm the desktop experience in those applications. Having looked at many applications that use libhandy, it's my personal opinion that they look like mobile applications that no one even bothered testing on Desktop systems. Not all that dissimilar from running iOS apps meant for iPhone on an iPad or a Mac, or the similar experiences on Android. If we aren't learning from past mistakes, what's even the point?

        If we start running into problems with the default applications on Budgie, we'll just replace them. As far as GNOME is concerned, I'd much rather focus on having a Budgie 11 that blows it out of the water. I don't really know what that means for us long-term with libhandy on GNOME. For now we'll handle it on an app-by-app basis. Hopefully, GTK4 will pan out and the core GNOME applications won't need libhandy at all going forward. I don't really see a future where libhandy exists on GTK4 because of all the improvements they have made. Time will tell.

          Saijin_Naib

          Gnome Podcasts*
          Lollypop
          Deja Dup Backup*
          Gnome-Screenshot*
          Gnome Contacts
          Cawbird*
          Gnome Clocks*
          Epiphany
          Geary
          Gnome-Calendar

          These are just some of the applications that have been held back, not allowed into the repo, or (will be) removed. The number does appear to keep growing with time as libhandy becomes a bit more common among developers, especially Gnome apps. Now one of my personal reasons why I use Solus is the emphasis on the desktop experience since that is the main way I like to get my work done. I can understand where you're coming from in thinking this could be an issue using software that may not be available in the repo in the future. Thankfully, not everything is going to end up getting libhandy. For better or worse, to help mitigate this we have flatpaks, snaps, appimages, etc. that make this issue far less of an issue for me. Every app that I mentioned above has a container app equivalent (except gnome-screenshot), so even though it may no longer be in the repo, you can still just as easily install them from elsewhere. While maybe not ideal, I've come to embrace the use of container apps when needed and haven't had any issues that keep me from using my system as I intend to use it. Like I said before I understand your concern and I'd say it's warranted, but luckily there are ways to adapt to it that make it less of a hassle and worry.

          Not really sure what the intent of the * is @Scotty-Trees. GNOME Podcasts was never included, deja-dup and gnome-screenshots are held back (new held back in 3.38), cawbird was deprecated (as was tootle) but neither of those happened with this stack upgrade (those weren't actually part of any stack upgrade, they're not GNOME apps), rest were held back.

          Either way, I've had this discussion ad nauseam so I reference to @Harvey for the answers on this one.

            JoshStrobl You know I had a reason late last night for the asterisks, but re-reading my replay I can't for the life of me figure out what I meant to identify by those. The ones I did asterisk I do use still either via flatpak or in their held back form, but can't remember my point of that. And yes, I know Gnome Podcasts was never included, I had made that request. I'll never forget that day, where I was and what I was wearing when I got the rejection notice 😛

              Scotty-Trees I had a reason late last night for the asterisks, but re-reading my replay I can't for the life of me

              i find myself saying this a lot this rotten year--you are far from alone🙂

              a month later

              Harvey No it won't. Applications are adding libhandy not the toolkit (GTK). GTK4 will make libhandy pointless.

              Late to this thread, but this is incorrect. libhandy has evolved to include widgets for common GNOME patterns and closely follow the HIG, in addition to widgetry for adaptive apps. You will likely see an uptick in usage as apps drop custom widgets in favor of libhandy widgets, and adaptivity becomes standard across GNOME apps. This will continue into the GTK4 era.

              DataDrake This is fine if your a company trying to promote GTK3 for mobile applications running on Linux. But it begs a couple of pretty serious questions:

              1. Why couldn't they just have worked on improving the existing GTK3 widgets?
              2. Why do they assume that "mobile-first" is inherently better? How do they know this won't harm the Desktop experience?
              3. Why are they going around and patching libhandy into desktop applications like GNOME Boxes that have no reason to be running on mobile systems?
              4. Won't all of this just be a waste of time once GTK4 is out?
              1. GTK3 is stable and mostly feature frozen as efforts shifted to GTK4. Changes to existing widget behaviours beyond fixes, and new widgets were not going to make it into GTK3.
              2. We don't design things to be mobile-first. We design them to be adaptive. There has not yet been a case where making an app adaptive or adding libhandy widgets made things worse for desktop users. In some cases, like Geary's, we are able to make things like half-tiling work better on desktop.
              3. libhandy now hosts quite a few widgets we want to use as part of the GNOME HIG or for different features: HdyCarousel adds a nice way to have sequential views with gestures, HdyAvatar provides a standard avatar widget instead of each app carrying a different one, and HdyPreferencesWindow gives a standard, clean look to preferences. These are all things that are wanted in different forms across multiple GNOME apps, and have very little to do with "mobile systems".
              4. Most of those widgets will not make it into GTK's core. libhandy will be the home for them for the foreseeable future.

              I don't really see a future where libhandy exists on GTK4 because of all the improvements they have made. Time will tell.

              The improvements made to GTK4 are disconnected from the purpose of libhandy. libhandy will be sticking around for a while, and it's very useful. I say this as a maintainer of multiple apps, and someone who has ported apps to GTK4 and made apps adaptive, separate from Purism.

                BrainBlasted You will likely see an uptick in usage as apps drop custom widgets in favor of libhandy widgets, and adaptivity becomes standard across GNOME apps. This will continue into the GTK4 era.

                No it won't. GTK4 has widgets already that overlap with libhandy. It's only a matter of time before it reaches parity.

                BrainBlasted GTK3 is stable and mostly feature frozen as efforts shifted to GTK4. Changes to existing widget behaviours beyond fixes, and new widgets were not going to make it into GTK3.

                All the more reason to focus on GTK4 then rather than trying to shoehorn functionality into a toolkit that wasn't really designed for it.

                BrainBlasted We don't design things to be mobile-first. We design them to be adaptive.

                "The aim of the Handy library is to help with developing UI for mobile devices using GTK/GNOME."

                BrainBlasted There has not yet been a case where making an app adaptive or adding libhandy widgets made things worse for desktop users.

                That's entirely subjective.

                BrainBlasted HdyCarousel adds a nice way to have sequential views with gestures

                Until touchscreen laptops are widespread enough and well-supported on Linux, gestures are a mobile feature.

                BrainBlasted These are all things that are wanted in different forms across multiple GNOME apps, and have very little to do with "mobile systems".

                Then they belong in GTK instead of a mobile-focused UI library.

                BrainBlasted Most of those widgets will not make it into GTK's core. libhandy will be the home for them for the foreseeable future.

                Of course not. My point was that I'm sure GTK4 will introduce equivalent widgets when GNOME wants them for things. Relying on a third-party library for custom widgets is not something in their best interest, despite the efforts of certain individuals to force libhandy on the rest of us.

                BrainBlasted The improvements made to GTK4 are disconnected from the purpose of libhandy.

                No, they really aren't. GTK4 places a huge focus on reactive widgets and moved their entire input sub-system to be centered around gestures.

                BrainBlasted libhandy will be sticking around for a while, and it's very useful.

                You are welcome to use it. We don't want it.

                BrainBlasted I say this as a maintainer of multiple apps, and someone who has ported apps to GTK4 and made apps adaptive, separate from Purism.

                Appealing to your own authority is not a way to win an argument around here. However, I am happy to now exercise my authority to lock this topic. This isn't debate club. It's pretty clear that you made an account here for the sole purpose of coming here it argue with us. You aren't going to change my mind or @JoshStrobl's mind. Good luck with your projects.

                DataDrake locked the discussion .