LINUX.ORG.RU

История изменений

Исправление Darth_Revan, (текущая версия) :

#!/usr/bin/env python3
import re
import subprocess
import yaml

res = {}
out = subprocess.check_output(["xrandr"], universal_newlines=True)
match = re.search(
            r"^(\S+)\sconnected\s+(primary\s+)?(\d+)x(\d+)([+-]\d+)([+-]\d+)",
            out, re.MULTILINE)
if match:
    res[match[1]] = {
        "name"    : match[1],
        "w"       : int(match[3]),
        "h"       : int(match[4]),
        "x"       : int(match[5]),
        "y"       : int(match[6]),
        "primary" : 1 if match[2] else 0,
    }

print(yaml.dump(res, default_flow_style=False), end="")

Слегка переписал, попытавшись сделать более похожим на то, что было у ТС.
Теперь 21 строчка, вместо 21 у ТС. Ужас-то какой…

Исходная версия Darth_Revan, :

#!/usr/bin/env python3
import re
import subprocess
import yaml

res = {}
out = subprocess.check_output(["xrandr"], universal_newlines=True)
match = re.search(
            "^(\S+)\sconnected\s+(primary\s+)?(\d+)x(\d+)([+-]\d+)([+-]\d+)",
            out, re.MULTILINE)
if match:
    res[match[1]] = {
        "name"    : match[1],
        "w"       : int(match[3]),
        "h"       : int(match[4]),
        "x"       : int(match[5]),
        "y"       : int(match[6]),
        "primary" : 1 if match[2] else 0,
    }

print(yaml.dump(res, default_flow_style=False), end="")

Слегка переписал, попытавшись сделать более похожим на то, что было у ТС.
Теперь 21 строчка, вместо 21 у ТС. Ужас-то какой…