[GTK Integration] Deprecate GTK2 (Hide GUI)
AbandonedPublic

Authored by gikari on May 14 2020, 1:38 PM.

Details

Reviewers
cblack
Group Reviewers
Plasma
VDG
Summary

Since Inkscape is finally moved to GTK3, it's time to start GTK2
deprecation process.

What this does is just a hiding GUI for setting GTK2 themes.
Despite of that, GTK2 will be set implicitly along with the GTK3 theme.

Some FAQ:
Q: What if there is no GTK2 theme with the name of GTK2 one?
A: Chances of that is close to zero. Most, if not all, GTK3 themes
contain gtk-2.0 folder along with gtk-3.0 one. Even if there is such
a theme, currently it also will not work. That's because of xsettingsd,
that overrides GTK2 configuration file.

Q: What about Breeze Dark GTK2 theme for GIMP?
A: GIMP has a dark theme inside. Breeze-dark will not work for the same
reason as the above - xsettingsd with only one theme for GTK2 and GTK3.

GUI changes: now there only one option for GHNS and only one combo for themes,
title for GHNS has changed

Depends on: D29748

Test Plan
  1. Apply D29748 and this patch
  2. Restart Kded5
  3. Open Application Style KCM > GTK Style
  4. Change GTK Theme, check if both GTK2 and GTK3 apps have the same theme
  5. Check Get New... is working

Diff Detail

Repository
R119 Plasma Desktop
Branch
hide-gtk2 (branched from master)
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 26900
Build 26918: arc lint + arc unit
gikari created this revision.May 14 2020, 1:38 PM
Restricted Application added a project: Plasma. · View Herald TranscriptMay 14 2020, 1:38 PM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript
gikari requested review of this revision.May 14 2020, 1:38 PM
  1. There's still GIMP (and IIRC Audacity) when it comes to major GTK2 apps. I'm not saying don't do this, but maybe it's a bit premature?
  2. Now that the GTK theme page only has one small row of items in it, it seems a bit silly to have on a separate page. It feels like it could be moved into the footer on the main page.
  1. There's still GIMP (and IIRC Audacity) when it comes to major GTK2 apps. I'm not saying don't do this, but maybe it's a bit premature?

Yes. That's why i only hide the UI. The backend still sets the GTK2 theme too alongside with GTK3. This only removes the possibility to select different themes for different versions of GTK.

  1. Now that the GTK theme page only has one small row of items in it, it seems a bit silly to have on a separate page. It feels like it could be moved into the footer on the main page.

The amount of the elements is still too many for an inline setting, may be popup would suffice. However I want to do something like this:


(Mind the tabs, that's an old mockup)

In general I made these patches, so that:

  1. I could move the preview management code into plasma-dekstop (for GTK2 it relays on direct config management and it's very hacky)
  2. After that make the KCM use KConfigXT (and additionally prettify it). This allows this bug to be fixed.
ndavis added a subscriber: ndavis.May 14 2020, 5:35 PM
  1. There's still GIMP (and IIRC Audacity) when it comes to major GTK2 apps. I'm not saying don't do this, but maybe it's a bit premature?

GIMP has its own built-in themes now and it uses its own dark theme by default. Audacity is actually a wxWidgets app.

Yes. That's why i only hide the UI. The backend still sets the GTK2 theme too alongside with GTK3. This only removes the possibility to select different themes for different versions of GTK.

GIMP has its own built-in themes now and it uses its own dark theme by default. Audacity is actually a wxWidgets app.

Ah OK then, this seems fine.

wxWidgets is supposed to have GTK3 support since 2.9.4, but Audacity still uses GTK2 for me.
https://docs.wxwidgets.org/3.1.3/page_port.html#page_port_wxgtk

Audacity also has its own built-in themes and you can't fully use the system theme; you can only use it partially.

gikari abandoned this revision.May 31 2020, 8:09 PM

OK, let's wait a bit more until GIMP transitions. Still I would like to combine the GTK2 and GTK3 themes selection into one combobox or a list.