Избегайте анализа вывода Xrandr

Мне нужно получить информацию от Xrandr в моем программном обеспечении. Предположим, это мой вывод из xrandr -q:

Screen 0: minimum 8 x 8, current 1920 x 1968, maximum 32767 x 32767
LVDS1 connected primary 1366x768+309+1200 (normal left inverted right x axis y axis) 277mm x 156mm
   1366x768      60.02*+
   1360x768      59.80    59.96 
   1280x720      60.00 
   1024x768      60.00 
   1024x576      60.00 
   960x540       60.00 
   800x600       60.32    56.25 
   864x486       60.00 
   640x480       59.94 
   720x405       60.00 
   680x384       60.00 
   640x360       60.00 
DP1 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 518mm x 324mm
   1920x1200     59.95*+
   1920x1080     60.00 
   1600x1200     60.00 
   1680x1050     59.95 
   1280x1024     60.02 
   1280x960      60.00 
   1024x768      60.00 
   800x600       60.32
   640x480       60.00 
   720x400       70.08

Данные, которые я хочу, - это возможные решения вместе с возможной частотой обновления. Пока что мое программное обеспечение считывает возможности /sys/class/drm/card0-DP-1 и так далее, но я не могу найти информацию о возможных скоростях обновления для любого решения. Любой намек на это?

Я также хотел бы знать, расположены ли и как мониторы относительно друг друга, то есть при настройке, если команды, как --above, --below, --left-of, --right-of был использован. Есть ли способ определить это?

Что я действительно не хочу делать, так это анализировать вывод xrandr с терминала. Так что вопрос в том, есть ли у кого-нибудь идея, как это сделать. Я работаю в среде Go, но пока не нашел ни одного пакета, который бы решал мои проблемы.

Любая помощь приветствуется.

1 ответ

Вы можете посмотреть на github.com/BurntSushi/xgbпакет, который является чистой реализацией Go XCB, и имеет доступ кrandr средство.

Другие вопросы по тегам