Source code for draugr.os_utilities.linux_utilities.gtk_utilities.gtk_settings
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = "Christian Heider Nielsen"
__doc__ = r"""
Created on 03/08/2020
"""
__all__ = ["GtkSettings"]
from sys import stderr
try:
import gi # PyGObject lib
# Ubuntu / Debian
## system
### sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0
## conda
### conda install -c conda-forge pygobject
### conda install -c conda-forge gtk3
## pip
### sudo apt install libgirepository1.0-dev gcc libcairo2-dev pkg-config python3-dev gir1.2-gtk-3.0
### pip3 install pycairo
### pip3 install PyGObject
gi.require_version("Gtk", "3.0")
gi.require_version("Gdk", "3.0")
except ImportError as ix:
print(
"Make sure gi is installed, see https://lazka.github.io/pgi-docs/index.html",
file=stderr,
)
raise ix
from warg import SingletonMeta
[docs]class GtkSettings(metaclass=SingletonMeta):
"""description"""
[docs] def __init__(self):
try:
from gi.repository import Gtk, Gdk # , GObject, Gio, GLib
except (ImportError, ImportWarning):
stderr.write("Could not import GTK. Please install it.")
# a = Gio.Settings("org.gnome.gedit.preferences.editor")
# print(a.get_string("wrap-mode"))
# settings = Gio.Settings('org.my.font')
# face = settings.get_string('default-face')
# size = settings.get_double('default-size')
self.settings = Gtk.Settings.get_default()
# self.settings = Gtk.Settings.get_for_screen(Gdk.get_default_root_window().get_screen())
def __getitem__(self, item):
return self.settings.get_property(item)
def __setitem__(self, key, value):
self.settings.set_property(key, value)
@property
def all_settings(self):
"""description"""
for i in self.settings.list_properties(): # getting all existing properties
yield i
def __enter__(self):
return self
def __exit__(self, exc_type, exc_val, exc_tb):
return 0 # self.settings
if __name__ == "__main__":
def abvdfj() -> None:
"""
:rtype: None
"""
a = GtkSettings()
def ofgof():
"""description"""
for b in a.all_settings:
print(b)
ofgof()
print(a["gtk-dialogs-use-header"])
# print(a['gtk-dialogs-use-header1'])
abvdfj()