#! /usr/bin/python import gtk import gconf import os class CheckFontChange: def __init__(self): client = gconf.client_get_default() client.add_dir('/desktop/gnome/font_rendering', gconf.CLIENT_PRELOAD_NONE) client.notify_add('/desktop/gnome/font_rendering/hinting', self.settings_changed) client.notify_add('/desktop/gnome/font_rendering/antialiasing', self.settings_changed) client.notify_add('/desktop/gnome/font_rendering/rgba_order', self.settings_changed) client.notify_add('/desktop/gnome/font_rendering/dpi', self.settings_changed) self._xmlstr_hinting = """ %s hint%s """ self._xmlstr_rgba = """ %s """ self._xmlstr_antialias = """ %s """ self._xmlstr_dpi = """ %s """ self._xmlstr_header = """ """ self._xmlstr_footer = """ """ def settings_changed(self, client, *args, **kwargs): f = open(os.path.join(os.path.expanduser('~'),'.fonts.conf'),"w") fcontents = self._xmlstr_header cad = client.get_string('/desktop/gnome/font_rendering/hinting') if cad == "none": aux = "false" else: aux = "true" fcontents += self._xmlstr_hinting % (aux, cad) cad = client.get_string('/desktop/gnome/font_rendering/antialiasing') if cad == "none": aux = "false" else: aux = "true" fcontents += self._xmlstr_antialias % aux if cad == "rgba": aux = client.get_string('/desktop/gnome/font_rendering/rgba_order') elif cad == "none": aux="none" else: aux="unknown" fcontents += self._xmlstr_rgba % aux aux = str(client.get_float('/desktop/gnome/font_rendering/dpi')) fcontents += self._xmlstr_dpi % aux fcontents += self._xmlstr_footer f.write(fcontents) f.close() if __name__ == '__main__': CheckFontChange() gtk.main()