Регулируем яркость экрана монитора в командной строке Linux

prolinux

Опубликован:  2024-01-01T06:22:51.766018Z
Отредактирован:  2024-01-01T06:22:51.766018Z
Статус:  публичный
38
0
1

Современный компьютер имеет широкую номенклатуру аппаратных реализаций, к ним устойчиво и на долго приклеилось нерусское слово "девайс". Очень распространены в последнее время мобильные компьютеры, так называемые лэптопы или ноутбуки. Характерной особенностью таких компьютеров является отсутствие аппаратных средств настройки яркости экрана монитора, в отличие от мониторов стационарных компьютеров. Как настроить яркость экрана в таком случае? Именно об этом поговорим в очередном выпуске этого уютного блога на примере операционной системы Debian.

Программные средства регулировки яркости

Компьютер, благодаря программному обеспечению, является достаточно умной электронной машиной. И если в его арсенале нет аппаратных средств для решения той или иной проблемы, обязательно найдутся соответствующие программные средства.

В моём распоряжении имеется достаточно старый по меркам компьютеров лэптоп, произведённый на свет Южно-Корейской корпорацией Samsung в далёком и благополучном 2012 году - это мой основной рабочий компьютер - инструмент, помогающий достигать некоторых целей и желаемого. На борту этого компьютера установлена операционная система Debian sid. Аппаратных кнопок на мониторе лэптопа для регулировки его яркости естественно нет, но на клавиатуре предусмотрены функциональные клавиши. И чтобы они работали, в операционной системе установлена специальная программа.

В моей системе для этих целей используется довольно возрастной и очень привычный менеджер питания - Mate Power Manager. Он располагает средствами для регулировки яркости экрана. Вот как выглядит окно его настроек.

UgHGfIau63.png

Как видно, движок позволяет выставлять яркость экрана в процентном соотношении с минимальным интервалом в один процент. А поместив Mate Power Manager в автозагрузку, я каждый раз при включении питания и загрузке компьютера получаю яркость экрана, установленную в предыдущем сеансе. Кроме этого, при включенном менеджере питания функциональные клавиши на клавиатуре (Fn+F2, Fn+F3) позволяют регулировать яркость не активируя окно менеджера питания. Но увеличение или уменьшение яркости за одно нажатие происходит на заданную величину с интервалом в 5%.

JtvZ8hFvNY.png

На экране в этот момент появляется модальное окошко с лампочкой и шкалой прогресса. Казалось бы, всё удобно и юзабельно. Чего ещё нужно? Но в каждой речке, как известно, всегда находятся подводные камушки.

Что ещё нужно?

Нужна возможность регулировать яркость экрана c более гибким интервалом изменения величины и при этом не снимать пальцы рук с основной позиции на клавиатуре (ФЫВА ... ОЛДЖ), и не возить по экрану указателем мыши. У каждого пользователя свои предпочтения. Давайте посмотрим, как можно достичь желаемого простыми средствами.

Управлять компьютером с помощью клавиатуры и при этом не снимать пальцы с основной позиции на ней придумали очень давно разработчики легендарной операционной системы Unix. А Debian, о котором я рассказываю в этом блоге, является Unix-подобной операционной системой. В конце концов, UNIX-WAY - это красиво, "сто" лет назад придумано, а до сих пор красиво.

Действенное средство

Доктор, у меня предпочтения, пропишите мне что-нибудь действенное, пожалуйста... :)

В пакетной базе Debian есть специальная программа для регулировки яркости экрана монитора, она называется brightnessctl, имеет интерфейс командной строки и вполне эффективна на лэптопах. Установить её можно с помощью пакетного менеджера apt, при условии, что он подключен к любому зеркалу официального хранилища пакетов Debian.

$ sudo apt install brightnessclt

Сразу после распаковки и установки пакета программа готова к использованию в любом графическом эмуляторе терминала.

Справка brightnessctl

Как и любая другая программа командной строки, brightnessctl имеет встроенную справку, увидеть её можно вот такой командой:

$ brightnessctl --help

Кому-то может показаться, что у программы слишком длинное имя, но автодополнение в терминале эту проблему решает, просто набираем первые три символа имени и нажимаем клавишу Tab. Вот как выглядит выхлоп в результате выполнения предложенной команды.

brightnessctl 0.5 - read and control device brightness.

Usage: brightnessctl [options] [operation] [value]

Options:
  -l, --list            list devices with available brightness controls.
  -q, --quiet           suppress output.
  -p, --pretend         do not perform write operations.
  -m, --machine-readable    produce machine-readable output.
  -n, --min-value       set minimum brightness, defaults to 1.
  -e, --exponent[=K]        changes percentage curve to exponential.
  -s, --save            save previous state in a temporary file.
  -r, --restore         restore previous saved state.
  -h, --help            print this help.
  -d, --device=DEVICE       specify device name (can be a wildcard).
  -c, --class=CLASS     specify device class.
  -V, --version         print version and exit.

Operations:
  i, info           get device info.
  g, get            get current brightness of the device.
  m, max            get maximum brightness of the device.
  s, set VALUE          set brightness of the device.

Valid values:
  specific value        Example: 500
  percentage value      Example: 50%
  specific delta        Example: 50- or +10
  percentage delta      Example: 50%- or +10%

Получаем информацию о доступных устройствах

Чтобы воспользоваться программой и достичь желаемого, на начальном этапе необходимо получить список "девайсов", параметрами которых программа умеет управлять. Для этого воспользуемся ключом -l.

$ brightnessctl -l

И вот что показывает эта команда в моём терминале.

Available devices:
Device 'intel_backlight' of class 'backlight':
    Current brightness: 2783 (57%)
    Max brightness: 4882

Device 'input0::scrolllock' of class 'leds':
    Current brightness: 0 (0%)
    Max brightness: 1

Device 'input0::capslock' of class 'leds':
    Current brightness: 0 (0%)
    Max brightness: 1

Device 'ath9k-phy0' of class 'leds':
    Current brightness: 255 (100%)
    Max brightness: 255

Device 'input0::numlock' of class 'leds':
    Current brightness: 1 (100%)
    Max brightness: 1

Как мы видим из выхлопа, для каждого устройства в списке указано текущее состояние параметра - яркости, и максимальное достижимое значение. На моей машине программа может управлять яркостью нескольких устройств, и первым в этом списке числится устройство с именем intel_backlight - у машины процессор Intel и встроенное в процессор видео.

Кроме этого, у каждого устройства в этом списке определён ещё и класс. Таким образом, управлять яркостью устройства мы можем, обращаясь к нему по имени, или по имени класса.

Изменяем яркость экрана монитора

Давайте попробуем обратиться к устройству с помощью brightnessctl по его имени. Начнём с общей информации по устройству.

$ brightnessctl -d intel_backlight i

Увидим следующий выхлоп.

Device 'intel_backlight' of class 'backlight':
    Current brightness: 2783 (57%)
    Max brightness: 4882

Успех! Программа показала информацию об устройстве. Точно также мы можем обратиться к устройству по имени его класса.

$ brightnessctl -c backlight i

И в этом случае мы увидим абсолютно аналогичный выхлоп. Изменить яркость экрана монитора с помощью brightnessctl очень просто, нам потребуется операция set, с помощью которой мы можем задать желаемое значение. При этом, значение можно задавать как в процентах, так и в условных единицах - очень плавно. Вот как возможные значения описывает справка программы.

Valid values:
  specific value        Example: 500
  percentage value      Example: 50%
  specific delta        Example: 50- or +10
  percentage delta      Example: 50%- or +10%

Обращаемся к устройству по имени.

$ brightnessctl -d intel_backlight s +3
Updated device 'intel_backlight':
Device 'intel_backlight' of class 'backlight':
    Current brightness: 2786 (57%)
    Max brightness: 4882

Обращаемся к устройству по имени класса.

$ brightnessctl -c backlight s 17-
Updated device 'intel_backlight':
Device 'intel_backlight' of class 'backlight':
    Current brightness: 2769 (57%)
    Max brightness: 4882

Как видно из выхлопа программы, при помощи brightnessctl можно изменять яркость экрана монитора очень плавно в пределах одного процента, если использовать при этом в качестве задаваемого значения условные единицы, а можно и более резко и отчётливо, используя процентное выражение.

Увы, продемонстрировать, как изменяется яркость экрана в рамках текстового блога у меня вряд ли получится, но поверьте мне на слово, она изменяется, и если не верите, проверьте. :) Программа brightnessctl - достаточно эффективное средство для управления яркостью экрана монитора. В моём случае оператор компьютера доволен.

Выводы и умозаключения

  1. Управлять компьютером можно двумя различными способами: при помощи графического пользовательского интерфейса или при помощи текстовых команд;

  2. В наборе программного обеспечения операционной системы Debian для управления яркостью экрана монитора есть полный набор средств, удовлетворяющий любые предпочтения конечного пользователя;

  3. Программа brightnessctl достаточно проста в освоении и использовании, даёт возможность управлять яркостью экрана в любых желаемых пропорциях с любыми интервалами, в том числе очень плавно, и при этом пальцы рук оператора всегда остаются в основной позиции на клавиатуре. UNIX-WAY - это красиво!