elkowar / eww

ElKowars wacky widgets
https://elkowar.github.io/eww
MIT License
8.89k stars 370 forks source link

[META] GTK4 progress #109

Closed elkowar closed 3 years ago

elkowar commented 3 years ago

Current state

The GTK4 migration has been going on in the background for quite a while now. After the GNOME team decided to reMove a lot of useful functionality such as properly positioning windows, a lot of this had to be reimplemented manually for GTK4. This seems to be pretty much done, at least the basics. Doing those X11 spacific things, an implementation of _NET_WM_STRUT has also been realized in the gtk4 branch. As a result of GTK removing a lot of the display-backand specific functionality, MacOS support is currently worse than ever, which should be improved.

As described in the closing comment on #10, GTK4 removed the possibility of using wlr-layer-shell to render Eww on wayland. This means that on wayland, eww will not be able to position its widgets itself - that will have to be done from the wayland compositors side.

Given that GTK4 is still very new, it isn't actually packaged everywhere yet. As long as GTK4 is not available in at least a couple of the more popular distributions that eww users may be using, gtk4 will not be merged into master. Once it does get merged, a short guide / link on how to build GTK4 if it's not available will have to be added to the Readme and documentation.

Why even GTK4

Reading all of those issues introduced b. Gtk4, understandably the question as to why a migration should still be done arises. The answer to that has three parts:

What's left

With the current GTK4 branch, which should already be usable for X11 users, some things are still missing until it can be merged into master:

Axarva commented 3 years ago

Sad Gentoo user noises

undefinedDarkness commented 3 years ago

With shaders, eww will finally be deserving of wacky in the title hopefully

elkowar commented 3 years ago

Compiling GTK really isn't all that bad, it takes like 2 minutes on a reasonably high end PC, so it'll not be all that bad even on low-end machines

elkowar commented 3 years ago

Update

Gtk4 turns out to be really unstable currently, also noticably slower. As some other things that I want to implement require sizable refactors of other parts of the code, and I really don't want to maintain two codebases, the GTK4 migration will be stopped, for now.

It's really sad, as the GTK4 stuff could have been awesome. But, given all of the issues that came up, waiting for gtk4 to be ready, stable and for the GNOME team to fix their shit regarding the removed APIs and regarding wayland support will make a lot of things a lot less stressful.

For those of you who where waiting for wobbly widgets,... hope is not lost, it's just going to take a bit longer than initially expected.

pyranota commented 7 months ago

how about now? is it not the right time to implement gtk4?