Как изменить яркость монитора с помощью библиотеки расширений X11 RandR?

Я могу просто изменить яркость монитора через

xrandr --output VGA1 --brightness 0.25

Хотя это только программная модификация, она все равно делает свое дело. Согласно справочной странице, xrandr — это примитивный интерфейс командной строки для расширения RandR, поэтому можно программно изменить яркость моего монитора. Однако я не нашел никакого связанного API в его заголовочном файле <X11/extensions/Xrandr.h>.

Как изменить яркость монитора с помощью библиотеки расширений X11 RandR в C?


person Kevin Dong    schedule 14.01.2015    source источник


Ответы (1)


да, расширение xrandr, запрос RRChangeOutputProperty. С libXrandr это функция XRRChangeOutputProperty. См. пример использования в источник xbacklight.

person Andrey Sidorov    schedule 14.01.2015
comment
Согласно справочной странице, xbacklight и xrandr --brightness совершенно разные. . xblacklight управляет аппаратной яркостью, если это возможно, а xrandr — нет. - person Kevin Dong; 15.01.2015
comment
какой из них вам нужен? и гамма, и подсветка изменены с помощью вызовов расширения randr - person Andrey Sidorov; 15.01.2015
comment
Изменение гаммы и подсветки — это нормально, но я хочу знать, как xrandr реализует яркость. xblacklight не влияет на яркость моего монитора, а xrandr влияет. - person Kevin Dong; 15.01.2015
comment
Xblacklight (то же самое и для xrandr --set backlight), скорее всего, не повлияет на ваш монитор, потому что не каждый драйвер xf86-video поддерживает подсветка. Xrandr--brightness вместо этого просто работает в программном обеспечении с гаммой и цветами внутренне на сервере, и поэтому он всегда работает. - person mirh; 23.06.2019