[Home](https://kellyjonbrazil.github.io/jc/) # jc.parsers.xrandr jc - JSON Convert `xrandr` command output parser Usage (cli): $ xrandr | jc --xrandr $ xrandr --properties | jc --xrandr or $ jc xrandr Usage (module): import jc result = jc.parse('xrandr', xrandr_command_output) Schema: { "screens": [ { "screen_number": integer, "minimum_width": integer, "minimum_height": integer, "current_width": integer, "current_height": integer, "maximum_width": integer, "maximum_height": integer, "devices": [ { "props": { # either an EdidModel object or key value pairs : { "name": string, "product_id": string, "serial_number": string, } }, "resolution_modes": [ { "resolution_width": integer, "resolution_height": integer, "is_high_resolution": boolean, "frequencies": [ { "frequency": float, "is_current": boolean, "is_preferred": boolean } ] } ] } ], "is_connected": boolean, "is_primary": boolean, "device_name": string, "model_name": string, "product_id" string, "serial_number": string, "resolution_width": integer, "resolution_height": integer, "offset_width": integer, "offset_height": integer, "dimension_width": integer, "dimension_height": integer, "rotation": string, "reflection": string } ] } Examples: $ xrandr | jc --xrandr -p { "screens": [ { "screen_number": 0, "minimum_width": 8, "minimum_height": 8, "current_width": 1920, "current_height": 1080, "maximum_width": 32767, "maximum_height": 32767, "devices": [ { "resolution_modes": [ { "resolution_width": 1920, "resolution_height": 1080, "is_high_resolution": false, "frequencies": [ { "frequency": 60.03, "is_current": true, "is_preferred": true } ] }, ], "is_connected": true, "is_primary": true, "device_name": "eDP1", "resolution_width": 1920, "resolution_height": 1080, "offset_width": 0, "offset_height": 0, "dimension_width": 310, "dimension_height": 170, "rotation": "normal", "reflection": "normal" } ] } ] } $ xrandr --properties | jc --xrandr -p { "screens": [ { "devices": [ { "props": { "EDID": [ "00ffff5700000000", "001c01a5544d9a27", "0e50540101010101", "010101383e401010", "3500350f00000000", "0000000000fe0041", "554f0a20000000fe", "00423137200a0070" ], "scaling mode": [ "Full aspect ", "supported: Full, Center, Full aspect" ], "Colorspace": [ "Default ", "supported: Default, RGB_Wide_Gamut_Fixed_Point, RGB_Wide_Gamut_Floating_Point, opRGB, DCI-P3_RGB_D65, BT2020_RGB, BT601_YCC, BT709_YCC, XVYCC_601, XVYCC_709, SYCC_601, opYCC_601, BT2020_CYCC, BT2020_YCC" ], "EdidModel": { "name": "Generic", "product_id": "22333", "serial_number": "0" } }, "resolution_modes": [ { "resolution_width": 320, "resolution_height": 180, "is_high_resolution": false, "frequencies": [ { "frequency": 59.84, "is_current": false, "is_preferred": false } ] } ], "is_connected": true, "is_primary": true, "device_name": "eDP-1", "rotation": "normal", "reflection": "normal", "resolution_width": 1920, "resolution_height": 1080, "offset_width": 0, "offset_height": 0, "dimension_width": 309, "dimension_height": 174 } ], "screen_number": 0, "minimum_width": 320, "minimum_height": 200, "current_width": 1920, "current_height": 1080, "maximum_width": 16384, "maximum_height": 16384 } ] } ### parse ```python def parse(data: str, raw: bool = False, quiet: bool = False) -> jc.parsers.xrandr.Response ``` Main text parsing function Parameters: data: (string) text data to parse raw: (boolean) unprocessed output if True quiet: (boolean) suppress warning messages if True Returns: Dictionary. Raw or processed structured data. ### Parser Information Compatibility: linux, darwin, cygwin, aix, freebsd Source: [`jc/parsers/xrandr.py`](https://github.com/kellyjonbrazil/jc/blob/master/jc/parsers/xrandr.py) Version 2.1 by Kevin Lyter (code (at) lyterk.com)