Files
faugus-launcher/faugus/dark_theme.py
2026-01-03 18:20:31 -03:00

28 lines
1.3 KiB
Python

import os
from gi.repository import Gtk, Gio, GLib
IS_FLATPAK = 'FLATPAK_ID' in os.environ or os.path.exists('/.flatpak-info')
def apply_dark_theme():
if IS_FLATPAK:
if (os.environ.get("XDG_CURRENT_DESKTOP")) == "KDE":
Gtk.Settings.get_default().set_property("gtk-theme-name", "Breeze")
try:
proxy = Gio.DBusProxy.new_sync(
Gio.bus_get_sync(Gio.BusType.SESSION, None), 0, None,
"org.freedesktop.portal.Desktop",
"/org/freedesktop/portal/desktop",
"org.freedesktop.portal.Settings", None)
is_dark = proxy.call_sync(
"Read", GLib.Variant("(ss)", ("org.freedesktop.appearance", "color-scheme")),
0, -1, None).unpack()[0] == 1
except:
is_dark = False
Gtk.Settings.get_default().set_property("gtk-application-prefer-dark-theme", is_dark)
else:
desktop_env = Gio.Settings.new("org.gnome.desktop.interface")
try:
is_dark_theme = desktop_env.get_string("color-scheme") == "prefer-dark"
except Exception:
is_dark_theme = "-dark" in desktop_env.get_string("gtk-theme")
if is_dark_theme:
Gtk.Settings.get_default().set_property("gtk-application-prefer-dark-theme", True)