code: def set(self, key, value):
          
          logger.debug("Settings %s -> %s" % (key, value))
          if key in self.DEFAULTS:
              vtype = type(self.DEFAULTS[key])
          else:
              vtype = type(value)
  
          if vtype not in self.VALID_KEY_TYPES:
              logger.warn("Invalid key type: %s" % vtype)
              return False
  
          #for gconf refer to the full key path
          key = self._fix_key(key)
  
          if vtype is bool:
              self._client.set_bool(key, value)
          elif vtype is str:
              self._client.set_string(key, value)
          elif vtype is int:
              self._client.set_int(key, value)
          elif vtype in (list, tuple):
              #Save every value as a string
              strvalues = [str(i) for i in value]
              #self._client.set_list(key, gconf.VALUE_STRING, strvalues)
  
          return True
docs: Sets the key value in gconf and connects adds a signal
          which is fired if the key changes