1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-17 00:07:37 +02:00
Files
jc/docs/parsers/xrandr.md

221 lines
6.3 KiB
Markdown
Raw Normal View History

2022-02-14 09:14:46 -08:00
[Home](https://kellyjonbrazil.github.io/jc/)
<a id="jc.parsers.xrandr"></a>
# jc.parsers.xrandr
2022-03-04 13:27:39 -08:00
jc - JSON Convert `xrandr` command output parser
2022-02-14 09:14:46 -08:00
Usage (cli):
$ xrandr | jc --xrandr
2023-02-21 17:19:17 -08:00
$ xrandr --properties | jc --xrandr
2022-02-14 09:14:46 -08:00
2022-08-15 13:51:48 -07:00
or
2022-02-14 09:14:46 -08:00
$ jc xrandr
Usage (module):
import jc
result = jc.parse('xrandr', xrandr_command_output)
Schema:
2022-02-14 09:20:16 -08:00
{
"screens": [
{
"screen_number": integer,
"minimum_width": integer,
"minimum_height": integer,
"current_width": integer,
"current_height": integer,
"maximum_width": integer,
"maximum_height": integer,
2023-12-10 10:41:20 -08:00
"devices": [
{
"modes": [
{
"resolution_width": integer,
"resolution_height": integer,
"is_high_resolution": boolean,
"frequencies": [
{
"frequency": float,
"is_current": boolean,
"is_preferred": boolean
}
]
}
]
}
],
2022-02-14 09:20:16 -08:00
"is_connected": boolean,
"is_primary": boolean,
"device_name": string,
2023-02-21 17:19:17 -08:00
"model_name": string,
"product_id" string,
"serial_number": string,
2022-02-14 09:20:16 -08:00
"resolution_width": integer,
"resolution_height": integer,
"offset_width": integer,
"offset_height": integer,
"dimension_width": integer,
2022-04-10 18:19:29 +09:00
"dimension_height": integer,
2023-02-21 17:19:17 -08:00
"rotation": string,
"reflection": string
2022-02-14 09:20:16 -08:00
}
],
}
2022-02-14 09:14:46 -08:00
Examples:
2022-02-14 10:06:09 -08:00
$ xrandr | jc --xrandr -p
2022-02-14 10:03:52 -08:00
{
"screens": [
{
"screen_number": 0,
"minimum_width": 8,
"minimum_height": 8,
"current_width": 1920,
"current_height": 1080,
"maximum_width": 32767,
"maximum_height": 32767,
2023-12-10 10:41:20 -08:00
"devices": [
{
"modes": [
{
"resolution_width": 1920,
"resolution_height": 1080,
"is_high_resolution": false,
"frequencies": [
{
"frequency": 60.03,
"is_current": true,
"is_preferred": true
},
{
"frequency": 59.93,
"is_current": false,
"is_preferred": false
}
]
},
{
"resolution_width": 1680,
"resolution_height": 1050,
"is_high_resolution": false,
"frequencies": [
{
"frequency": 59.88,
"is_current": false,
"is_preferred": false
}
]
}
],
"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"
}
]
2023-02-21 17:19:17 -08:00
}
2023-09-30 15:21:29 -07:00
]
2023-02-21 17:19:17 -08:00
}
$ xrandr --properties | 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,
2023-12-10 10:41:20 -08:00
"devices": [
{
"modes": [
{
"resolution_width": 1920,
"resolution_height": 1080,
"is_high_resolution": false,
"frequencies": [
{
"frequency": 60.03,
"is_current": true,
"is_preferred": true
},
{
"frequency": 59.93,
"is_current": false,
"is_preferred": false
}
]
},
{
"resolution_width": 1680,
"resolution_height": 1050,
"is_high_resolution": false,
"frequencies": [
{
"frequency": 59.88,
"is_current": false,
"is_preferred": false
}
]
}
],
"is_connected": true,
"is_primary": true,
"device_name": "eDP1",
"model_name": "ASUS VW193S",
"product_id": "54297",
"serial_number": "78L8021107",
"resolution_width": 1920,
"resolution_height": 1080,
"offset_width": 0,
"offset_height": 0,
"dimension_width": 310,
"dimension_height": 170,
"rotation": "normal",
"reflection": "normal"
}
]
2022-02-14 10:03:52 -08:00
}
2023-09-30 15:21:29 -07:00
]
2022-02-14 10:03:52 -08:00
}
2022-02-14 09:14:46 -08:00
<a id="jc.parsers.xrandr.parse"></a>
2022-03-05 12:15:14 -08:00
### parse
2022-02-14 09:14:46 -08:00
```python
2022-02-14 10:03:52 -08:00
def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict
2022-02-14 09:14:46 -08:00
```
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:
2022-02-14 10:03:52 -08:00
Dictionary. Raw or processed structured data.
2022-02-14 09:14:46 -08:00
### Parser Information
Compatibility: linux, darwin, cygwin, aix, freebsd
Version 1.4 by Kevin Lyter (code (at) lyterk.com)