#! /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()