Skip to content

Instantly share code, notes, and snippets.

@pongloongyeat
Last active August 13, 2021 10:54
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pongloongyeat/16b1117bddb91a5918f0a272133d963b to your computer and use it in GitHub Desktop.
Save pongloongyeat/16b1117bddb91a5918f0a272133d963b to your computer and use it in GitHub Desktop.
Using Granite with Python
import gi
gi.require_version("Gtk", "3.0")
gi.require_version("Granite", "1.0")
from gi.repository import Gtk
from gi.repository import Granite
class MyWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Hello World")
self.gtk_settings = Gtk.Settings.get_default()
self.granite_settings = Granite.Settings.get_default()
self.set_colour_scheme()
self.granite_settings.connect("notify::prefers-color-scheme", self.set_colour_scheme)
def set_colour_scheme(self, *args, **kwargs):
self.gtk_settings.props.gtk_application_prefer_dark_theme = (
self.granite_settings.props.prefers_color_scheme == Granite.SettingsColorScheme.DARK
)
win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment