Example #1
0
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", ""))
Example #2
0
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", ""))
Example #3
0
def newNode(node, tag):
    return iks.newDocument(tag)
Example #4
0
 def newDocument(self):
     """clear DOM"""
     self.doc = iks.newDocument(self.rootTag)