diff --git a/jc/parsers/xrandr.py b/jc/parsers/xrandr.py index 60b51802..89f55981 100644 --- a/jc/parsers/xrandr.py +++ b/jc/parsers/xrandr.py @@ -330,8 +330,8 @@ def _parse_mode(line: str) -> Optional[Mode]: for match in result: d = match.groupdict() frequency = float(d["frequency"]) - is_current = len(d["star"]) > 0 - is_preferred = len(d["plus"]) > 0 + is_current = len(d["star"].strip()) > 0 + is_preferred = len(d["plus"].strip()) > 0 f: Frequency = { "frequency": frequency, "is_current": is_current, @@ -376,3 +376,52 @@ def parse(data: str, raw: bool =False, quiet: bool =False) -> Dict: return {} return result + +if __name__ == '__main__': + data = '''\ +Screen 0: minimum 320 x 200, current 2806 x 900, maximum 8192 x 8192 +LVDS-1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm + 1366x768 60.00*+ + 1280x720 60.00 59.99 59.86 59.74 + 1024x768 60.04 60.00 + 960x720 60.00 + 928x696 60.05 + 896x672 60.01 + 1024x576 59.95 59.96 59.90 59.82 + 960x600 59.93 60.00 + 960x540 59.96 59.99 59.63 59.82 + 800x600 60.00 60.32 56.25 + 840x525 60.01 59.88 + 864x486 59.92 59.57 + 700x525 59.98 + 800x450 59.95 59.82 + 640x512 60.02 + 700x450 59.96 59.88 + 640x480 60.00 59.94 + 720x405 59.51 58.99 + 684x384 59.88 59.85 + 640x400 59.88 59.98 + 640x360 59.86 59.83 59.84 59.32 + 512x384 60.00 + 512x288 60.00 59.92 + 480x270 59.63 59.82 + 400x300 60.32 56.34 + 432x243 59.92 59.57 + 320x240 60.05 + 360x202 59.51 59.13 + 320x180 59.84 59.32 +VGA-1 connected 1440x900+1366+0 normal Y axis (normal left inverted right x axis y axis) 408mm x 255mm + 1440x900 59.89*+ 74.98 + 1280x1024 75.02 60.02 + 1280x960 60.00 + 1280x800 74.93 59.81 + 1152x864 75.00 + 1024x768 75.03 70.07 60.00 + 832x624 74.55 + 800x600 72.19 75.00 60.32 56.25 + 640x480 75.00 72.81 66.67 59.94 + 720x400 70.08 +HDMI-1 disconnected (normal left inverted right x axis y axis) +DP-1 disconnected (normal left inverted right x axis y axis)''' + + parse(data) \ No newline at end of file