liferea icon indicating copy to clipboard operation
liferea copied to clipboard

Support org.freedesktop.appearance API for dark/light theme switching

Open RushingAlien opened this issue 1 year ago • 6 comments

Hello, GNOME, KDE, and other DEs have adopted a standard, desktop agnostic API for deciding themes, GNOME even goes so far as to make their dark settings that's not in gnome-tweaks only set dark/light this way. gambar gambar Both of these toggle set dark theme only via the org.freedesktop.appearance API, hence issue #1275, the API used in gnome-tweaks is not touched through these toggles and is considered unsupported usecase The API: https://flatpak.github.io/xdg-desktop-portal/docs/#gdbus-org.freedesktop.portal.Settings And don't worry, the API works outside of Flatpak Apps that have implemented this API

  • Firefox
  • LibreOffice
  • Libadwaita apps
  • Libhandy apps
  • Chromium
  • Kirigami
  • KDE Frameworks Apps

RushingAlien avatar Oct 22 '23 22:10 RushingAlien

This is already implemented. Relevant code can be found in src/conf.c:286

#1275 is a strange issue, but not caused by not implementing the FreeDesktop portal support.

lwindolf avatar Oct 23 '23 13:10 lwindolf

I also experience issue #1275 .

Okay, seeing the code, doesn't look like it consults with portal and d-bus to fetch theme values? As far as I am aware, the portal settings is not a gschema, but communicated through d-bus

to reproduce

  • set light theme in gnome-tweaks
  • set dark theme in gnome-control-center or shell quick settings

RushingAlien avatar Oct 25 '23 11:10 RushingAlien

@RushingAlien I was maybe naivly expecting both interfaces GDBUS endpoint and GSettings schema to report the same setting value. If both places report different values how is the app to behave?

About reproducing: can you elaborate a bit more? Do you run in Flatpak or is the effect visible without Flatpak too?

lwindolf avatar Oct 25 '23 21:10 lwindolf

Hello again, Sorry for the late reply.

I don't think portals has a GSettings schema endpoint at all

And to answer your question:

About reproducing: can you elaborate a bit more? Do you run in Flatpak or is the effect visible without Flatpak too?

I have reproduced issue in both flatpak and non-flatpak

I'm guessing you are using Ubuntu? Ubuntu downstreams a lot hacks to make things work

RushingAlien avatar Oct 28 '23 09:10 RushingAlien

I don't think portals has a GSettings schema endpoint at all

This confirms my suspicion

liferea/src on  fdo-dark [!?] via C v13.2.1-gcc 
  ➜ LANG=en_US.UTF-8 ./liferea 
(net.sourceforge.liferea:182875): GLib-GIO-ERROR **: 16:54:38.741: Settings schema 'org.freedesktop.appearance' is not installed
Jejak/titik-putus jebakan (core didump)

I remove the conditional for the fdo codepath in liferea

I can't see anything in dconf-editor either

What we have however is /org/gnome/desktop/interface/color-scheme which is a gnome gsettings schema that controls the fdo settings(dbus) apps then are expected to read the fdo settings

Of course, thiss means KDE has a different trigger for fdo settings probably doesn't use gsettings at all

RushingAlien avatar Oct 28 '23 09:10 RushingAlien

Given the implementation by libadwaita (https://gitlab.gnome.org/GNOME/libadwaita/-/blob/main/src/adw-settings-impl-portal.c) we should entirely switch to DBUS only too. It is easier to maintain.

lwindolf avatar Apr 13 '24 18:04 lwindolf