def saveDeviceInfo(card): if not os.path.exists(consts.config_dir): os.mkdir(consts.config_dir, 0o755) try: doc = ciksemel.parse(consts.config_file) except OSError: doc = ciksemel.newDocument("ZORG") for tag in doc.tags("Card"): if tag.getAttribute("busId") == card.bus_id: tag.hide() break cardTag = doc.insertTag("Card") cardTag.setAttribute("busId", card.bus_id) addTag(cardTag, "VendorId", card.vendor_id) addTag(cardTag, "ProductId", card.product_id) if card.driver: addTag(cardTag, "Driver", card.driver) if card.depth: addTag(cardTag, "Depth", str(card.depth)) # Save output info outputs = cardTag.insertTag("Outputs") for name, output in list(card.outputs.items()): out = outputs.insertTag("Output") out.setAttribute("name", name) addTag(out, "Enabled", "true" if output.enabled else "false") addTag(out, "Ignored", "true" if output.ignored else "false") if output.mode: addTag(out, "Mode", output.mode) if output.refresh_rate: addTag(out, "RefreshRate", output.refresh_rate) if output.rotation: addTag(out, "Rotation", output.rotation) if output.right_of: addTag(out, "RightOf", output.right_of) if output.below: addTag(out, "Below", output.below) if name in card.monitors: mon = card.monitors[name] monitor = out.insertTag("Monitor") addTag(monitor, "Vendor", mon.vendor) addTag(monitor, "Model", mon.model) addTag(monitor, "HorizSync", mon.hsync) addTag(monitor, "VertRefresh", mon.vref) f = open(consts.config_file, "w") f.write(doc.toPrettyString().replace("\n\n", ""))
def saveKeymap(layout, variant=""): if not os.path.exists(consts.config_dir): os.mkdir(consts.config_dir, 0o755) try: doc = ciksemel.parse(consts.config_file) except OSError: doc = ciksemel.newDocument("ZORG") keyboardTag = doc.getTag("Keyboard") if keyboardTag: keyboardTag.hide() keyboardTag = doc.insertTag("Keyboard") keyboardTag.insertTag("Layout").insertData(layout) if variant: keyboardTag.insertTag("Variant").insertData(variant) f = file(consts.config_file, "w") f.write(doc.toPrettyString().replace("\n\n", ""))
def newNode(node, tag): return iks.newDocument(tag)
def newDocument(self): """clear DOM""" self.doc = iks.newDocument(self.rootTag)