puppylinux-woof-CE / woof-CE

woof - the Puppy builder
GNU General Public License v2.0
395 stars 284 forks source link

GTK 3 Support #2004

Closed dimkr closed 3 years ago

dimkr commented 3 years ago

I've created a fork of https://github.com/vlastavesely/raleigh-reloaded that mimics the old "Flat-grey-rounded" theme, at https://github.com/dimkr/gtk3_flat_grey_rounded.

I'd like to have dual GTK 2/3 support in ptheme, and the ability to make Flat-grey-rounded the default theme.

dimkr commented 3 years ago

Thanks for merging #2005, @01micko - that was a good first step. Now, we need GTK 3 themes in ptheme.

dimkr commented 3 years ago

I built a mostly GTK 3 image for my Chromebook (geany, gpicview, gtkdialog, yad, archiver, transmission, firefox-esr) to see if it feels very different from a pure GTK 2 (except firefox-esr) image.

gtk3_flat_grey_rounded does a very good job, and most gtkdialog based things I've tried look and behave normally. Some dialogs are bigger, and some widgets have more padding (not surprising).

However, some dialogs, including the "welcome" one are horizontally maximized by default and look awful. I'll see if I can give them a reasonable width limit that works for both GTK 2 and GTK 3.

dimkr commented 3 years ago
~/Development/rox-filer/ROX-Filer/build$ make -kj8  2>&1 | grep error: | wc -l
854

ROX-Filer is not trivial to port to GTK 3 😠

dimkr commented 3 years ago

I've started fixing gtkdialog-based stuff in rootfs-{skeleton,packages} to make them support dual GTK 2/3 (or at least, 3). Some widgets are missing (like combobox) and need to be replaced, and some dialogs are now much bigger because all of the padding GTK 3 adds by default.

Screenshot from my Asus C201, with latest https://github.com/dimkr/gtk3_flat_grey_rounded, quicksetup with comboboxtext instead of combobox and two gtkdialog binaries (GTK 2/3):

1

dimkr commented 3 years ago

1984 is very close to solving this issue. Only ROX-Filer, Xdialog and retrovol use GTK 2 in #1948, and I'm about to drop retrovol.

dimkr commented 3 years ago

Another Puppy theme is ready: https://github.com/dimkr/gtk3_polished_blue

dimkr commented 3 years ago

I've given up on Stardust, it's really hard to port this theme to GTK 3 because of the heavy use of background images. Even if I succeed, it will take a very long time to make it consistent with the GTK 2 theme.

There is some progress with ROX-Filer at https://github.com/dimkr/rox-filer/pulls. I've replaced the use of widgets deprecated in GTK 2 that got removed in GTK 3, and fixed most GSEAL compliance issues. To avoid the large effort needed to cut the X11 dependencies of ROX-Filer, which demand heavy use of deprecated GDK API, I removed the pinboard, the collection view and panels, hoping ROX-Filer's RPC-based architecture it will be possible to build two ROX-Filer binaries that interact (one that still uses GTK 2 and provides the pinboard, and one that uses GTK 3 and provides the rest). I'm fixing GTK 3 incompatibility issues in parallel with the last sprint of GSEAL compliance fixes.

dimkr commented 3 years ago

Missing icon issues are solved. Still trying to port ROX-Filer in https://github.com/dimkr/rox-filer, but largely, GTK 3 applications now look and behave consistently with GTK 2 ones. Some dialogs are too big when using the GTK 3 build of gtkdialog, but this is a trivial problem.

I'm closing this issue, and hope to finish the porting of ROX-Filer one day.