Как увеличить яркость в Linux

Обновлено: 21.11.2024

Настройка яркости экрана — одна из основных задач на любом компьютере, и часто требуется. Однако настройка яркости экрана в Linux может быть немного проблематичной.

Особенно на ноутбуках, поскольку нет специального аппаратного переключателя, напрямую подключенного к дисплею.

Почти на каждом ноутбуке клавиши увеличения и уменьшения яркости объединены с другой клавишей в качестве комбинации клавиш, обычно с клавишей Fn.

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

Настройка яркости экрана Linux

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

Существует множество инструментов с графическим интерфейсом, таких как XFCE Power Manager, для регулировки яркости. Но здесь мы сосредоточимся на инструментах командной строки.

1. Включить подсветку клавиш ACPI

Если клавиши регулировки яркости ноутбука по умолчанию не работают, добавьте параметр ядра Linux во время загрузки и повторите попытку.

  1. Сначала откройте файл /etc/default/grub в своем любимом текстовом редакторе от имени пользователя root.
  2. Найдите строку, начинающуюся с GRUB_CMDLINE_LINUX_DEFAULT= , скорее всего, там также будет слово тихий.
  3. Добавьте туда несколько слов, acpi_backlight=vendor в двойных кавычках.
  4. Сохраните и выйдите из текстового редактора, а затем перезагрузите ноутбук.
  5. Параметры ядра acpi_backlight не ограничиваются только поставщиком, и они гарантированно работают.

    Возможно, вам придется поэкспериментировать с другими параметрами, такими как "родной" или "нет" . После перезагрузки, если горячие клавиши регулировки яркости работают, вы можете установить яркость ноутбука с помощью команды xbacklight.

    Если он не установлен, установите его с помощью apt, sudo apt-get install xbacklight , а затем выполните команду, как показано ниже.

    2. Изменить яркость в Linux через sysfs

    Если клавиши регулировки яркости не работают даже после добавления параметров ядра, вы можете попытаться напрямую манипулировать интерфейсом sysfs.

    Параметры sysfs, связанные с подсветкой дисплея, находятся в каталоге /sys/class/backlight/. И может быть более одного интерфейса контроллера.

    В моем случае это intel_backlight и acpi_video0 , однако во втором интерфейсе невозможно изменить яркость, в моем случае.

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

    Как вы уже могли догадаться, все доступные варианты довольно просты для понимания.

    Значение в файле max_brightness — это максимальная яркость, которую вы можете назначить дисплею, и ее невозможно изменить.

    Файл яркости на самом деле управляет количеством подсветки, вы можете изменить его, как показано ниже.

    И, конечно же, вам нужны привилегии суперпользователя для управления этим файлом.

    То же самое, что и для каталога acpi_video0, вы можете настроить яркость экрана Linux оттуда, только если это поддерживается. Пример ниже.

    3. Использование команды Xrandr для регулировки яркости экрана Linux

    Если это настольный компьютер или внешний монитор подключен к ноутбуку с помощью кабеля VGA или HDMI, то описанный выше метод не сработает.

    Каждый внешний монитор имеет какой-либо дистанционный или специальный переключатель для управления яркостью, контрастностью, насыщенностью цвета и т. д. и т. д.

    Но этого может быть недостаточно, чтобы понизить яркость даже ниже самого низкого уровня, установленного производителем монитора, вы должны использовать инструмент командной строки xrandr Linux.

    Несколько примеров в списке ниже.

    1. Для внутреннего дисплея ноутбука, подключенного через LVDS, используйте
    2. Если монитор подключен к порту HDMI, используйте
    3. Если монитор подключен к порту VGA, то
    4. Или, если это Display Port, используйте

    Проще говоря, можно сказать, что значение яркости 0,8 означает 80 % полной яркости экрана, а 0,6 означает 60 %.

    По сути, это регулировка гаммы монитора, не используйте значение больше 1, иначе изображение станет белым.

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

    Заключение

    Это краткий совет, надеюсь, теперь вы немного лучше знакомы с настройкой яркости экрана в Linux.

    Если у вас есть какие-либо вопросы, предложения или другие методы, оставьте команды ниже.

    В этой статье будут перечислены различные инструменты командной строки, которые можно использовать для управления яркостью экрана.Эти приложения особенно полезны, если вы используете дистрибутив Linux без графического интерфейса. Обратите внимание, что некоторые из этих инструментов могут не работать в вашей системе в зависимости от конфигурации вашего оборудования и видеокарты. В этой статье также будут перечислены приложения, которые не изменяют яркость аппаратного уровня, а вместо этого изменяют значение гаммы или создают общесистемный тонированный фильтр, управляемый программным обеспечением. Все приложения и команды, упомянутые в статье, совместимы только с диспетчером отображения «X» (без поддержки Wayland).

    Xrandr (программный уровень)

    Xrandr — это приложение командной строки, используемое для управления конфигурацией вывода на дисплей. Он может изменять разрешение, ориентацию, работать с несколькими дисплеями и так далее. Чтобы увидеть текущий используемый идентификатор дисплея, выполните следующую команду:

    Вы увидите такой вывод:

    Строка перед частью «подключено» является идентификатором вашего дисплея (в данном случае HDMI-A-0). Теперь вы можете использовать идентификатор для изменения яркости экрана.

    Чтобы проверить текущее значение яркости, используйте следующую команду:

    Чтобы изменить яркость, выполните следующую команду (замените HDMI-A-0 собственным идентификатором дисплея):

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

    Xdotool (аппаратный уровень)

    Xdotool — это утилита командной строки, которую можно использовать для имитации нажатий клавиш и щелчков мыши. Яркость можно изменить, имитируя нажатия кнопок яркости+ и яркости- в вашей системе.

    Чтобы установить xdotool в Ubuntu, выполните следующую команду:

    Чтобы увеличить яркость с помощью xdotool, выполните следующую команду:

    Чтобы уменьшить яркость с помощью xdotool, выполните следующую команду:

    Поскольку xdotool имитирует реальные аппаратные нажатия клавиш, это изменение яркости аппаратного уровня.

    Xgamma (программный уровень)

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

    Чтобы просмотреть текущие значения гаммы, выполните приведенную ниже команду (показывает значения RGB):

    Чтобы изменить значение гаммы, запустите команду в следующем формате:

    Xbacklight (аппаратный уровень)

    Xbacklight позволяет настроить интенсивность подсветки вашего дисплея. Чтобы установить его в Ubuntu, выполните следующую команду:

    Xbacklight может работать не на всех конфигурациях оборудования. Чтобы убедиться, что он работает в вашей системе, выполните следующую команду:

    Если вы не видите никаких выходных данных, xbacklight не будет работать в вашей системе. Чтобы настроить яркость подсветки, выполните следующую команду:

    Brightnessctl (аппаратный уровень)

    Brightnessctl позволяет управлять подсветкой дисплея и яркостью светодиодных индикаторов, доступных на вашем оборудовании.

    Чтобы установить яркостьctl в Ubuntu, выполните следующую команду:

    Чтобы получить список всех управляемых устройств, выполните следующую команду:

    Правильно идентифицировать идентификаторы дисплея может быть нелегко, поскольку имена могут быть неудобными для пользователя, и вам, возможно, придется прибегнуть к некоторым догадкам, чтобы идентифицировать монитор. На снимке экрана выше строка для монитора — «0005:054C:09CC.0005:global». После того, как вы определили правильное имя, выполните приведенную ниже команду, чтобы изменить яркость:

    Redshift (программный уровень)

    Redshift – это инструмент командной строки, который позволяет вручную или автоматически устанавливать цветовую температуру и/или яркость экрана.

    Чтобы установить Redshift в Ubuntu, выполните следующую команду:

    Чтобы изменить яркость с помощью красного смещения, выполните приведенную ниже команду (0,60 для дневного времени, 0,70 для ночного времени, максимум 1,0, минимум 0,1):

    Помимо управления яркостью, Redshift также имеет множество параметров для изменения значений гаммы и цветовой температуры. Вы также можете указать свое местоположение для красного смещения, чтобы конфигурация отображения могла автоматически изменяться до и после захода солнца. Рассмотрение других параметров конфигурации выходит за рамки этой статьи. Чтобы просмотреть все доступные параметры, выполните одну из следующих команд:

    Заключение

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

    Об авторе

    Нитеш Кумар

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

    Проблема: я не знаю, как увеличить или уменьшить яркость ЖК-дисплея в командной строке. А вы?

    Спасибо, Лекенштейн, но это не дубликат, так как lsmod | grep ^i915 не дает мне вывода (см. принятое решение). Все еще ищу решение.

    17 ответов 17

    Откройте терминал и введите это

    это даст вам вывод как

    Там LVDS1 означает ваш дисплей. Итак, теперь вам нужно сделать так, как

    здесь 0,5 обозначает уровень яркости и варьируется от 0,0 до 1,0 . 0.0 -> Полный черный. Поэтому вам нужно выбрать необходимое значение яркости.

    Это не изменяет яркость на аппаратном уровне. Из руководства randr:

    --brightness яркость Умножить значения гаммы на crtc, в настоящее время подключенном к выходу, на указанное плавающее значение. Полезно для слишком ярких или слишком тусклых выходных сигналов. Однако это только программная модификация, если ваше оборудование поддерживает фактическое изменение яркости, вы, вероятно, предпочтете использовать xbacklight.

    Спасибо за ответ, но мне нужно что-то вроде xrandr --increase 10, чтобы увеличить яркость на 10 процентов. Это тоже возможно?

    Жаль, что этот ответ получил так много голосов. Экран моего ноутбука, так сказать, «эмулирует» темноту, заставляя вещи казаться темнее (точно так же, как при воспроизведении видео с ночной сценой это не имеет ничего общего с яркостью экрана, а скорее с пикселями, маскирующими фоновый свет). Яркость точно такая же, батарея тратится даже больше, чем раньше, из-за того, что пиксели стали темнее, чем сейчас.

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

    Примечание: xbacklight работает только с Intel, не работает должным образом с Radeon и вообще не работает с драйвером настройки режима (источник). Он также работает только на X11, а не на Wayland.

    Еще один способ сделать это — с помощью другой новой программы под названием xbacklight открыть терминал и ввести это

    затем введите xbacklight -set 50

    здесь 50 означает диапазон яркости, мы можем увеличить его до 100 от 0 .

    вы также можете увеличивать и уменьшать яркость от текущего значения до указанного уровня. как вы упомянули, если вы хотите увеличить до 10% от текущего значения яркости, вы можете указать это

    и чтобы уменьшить 10% вы можете дать это

    Выглядит как очень простая команда, но мне нужно что-то вроде xbacklight -increase 10, чтобы увеличить яркость на 10 процентов. Это тоже возможно?

    Это действительно выглядит просто, но, к сожалению, у меня это не работает. Яркость просто не меняется ни с -dec, ни с -set. Думаю, мне придется надеяться, что ошибка будет исправлена ​​​​в ближайшее время. Тем не менее спасибо.

    Для меня работает следующее:

    Я предполагаю, что максимально возможное значение находится в файле /sys/class/backlight/intel_backlight/max_brightness.

    Замените intel_backlight звездочкой, чтобы применить ко всем видам подсветки.

    @Ray, когда вы выполняете sudo echo 400 > /sys/class . .. ./brightness перенаправление выполняется оболочкой, а не эхом. И оболочка по-прежнему работает как ваш обычный пользователь, а не как sudo. Вот почему он дает отказ в разрешении. Вам нужна утилита, которая будет записывать в файл с правами root, поэтому tee работает.

    Это смехотворно низкоуровневый подход, но, похоже, это единственное, что надежно работает. Это становится немного менее уродливым, если вы sudo chmod 0646 файл яркости, поэтому sudo больше не требуется для установки яркости.

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

    Использование D-Bus с GNOME

    Вы можете увеличить/уменьшить яркость с помощью gdbus:

    Примечания

    • Привилегии root не требуются! В отличие от /sys/class/backlight.
    • Источник: Arch wiki (здесь для клавиатур).
    • xподсветка работает не всегда. делает гамма-коррекцию. . Для KDE проверьте этот ответ, используя qdbus .

    +1 подтверждает, что это прекрасно работает на внутреннем ЖК-дисплее. Это не влияет на внешние мониторы, которые уже управляются сценариями гаммы и яркости xrandr.

    Измените 80 на [0-FF], чтобы получить минимальную яркость. Значение указано в шестнадцатеричном формате, поэтому 80 даст вам 50 % от максимальной яркости.

    Для настольных компьютеров сделать гамма-коррекцию (не проверено мной),

    Спасибо за ответ, но мне нужно что-то вроде setpci --increase 10, чтобы увеличить яркость на 10 процентов. Это тоже возможно?

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

    Если вы хотите использовать диапазон 202, вы можете использовать $(echo "obase=16; ibase=10; 128" | bc) (примерно 50%). ibase=10; является необязательным.

    Создайте этот скрипт:

    Запустите его от имени пользователя root с любым значением от 0 до 1.

    • Если в вашей системе нет каталога /sys/class/backlight/acpi_video0 , там должен быть как минимум один каталог, который может относиться к конкретному устройству (например, у меня также есть radeon_bl0 ).
    • Если у вас есть другие, имейте в виду, что их значения складываются (отсюда и цикл: все другие значения устанавливаются равными 1,0, а затем устанавливается желаемое значение для целевого).
    • Хотя acpi_video0 должен работать всегда, он не всегда имеет полный диапазон физической яркости. Попробуйте каждый из них и используйте тот, у которого широкая цветовая гамма, в качестве "ЦЕЛЕВОГО"

    Рассмотрите возможность использования /sys/class/backlight/*/brightness вместо того, чтобы пытаться жестко закодировать acpi_video0 в сценарии. Это позволит обобщить путь к файлу, который может быть разным — например, у меня intel_backlight, а не acpi_video0. Это то, что я использовал в своем сценарии здесь

    Попробуйте это в терминале:

    Вы можете изменить последнее значение по своему усмотрению, например. 0,2

    1) Вывод не всегда LVDS1, но пользователь может узнать это с помощью xrandr --verbose 2) Не изменяет интенсивность подсветки

    Вот короткая строка, которая поможет вам расслабить глаза. Просто создайте кронтааб со строкой или напишите скрипт

    Как сказал @palacsint, мне подходит путь echo 244 > /sys/class/backlight/intel_backlight/brightness.

    Но максимальное и минимальное значения повторно отправляются в файлы /sys/class/backlight/intel_backlight/max_brightness и /sys/class/backlight/intel_backlight/bl_power соответственно.

    Кроме того, фактическая яркость, с которой сейчас работает ваш компьютер, указана в /sys/class/backlight/intel_backlight/actual_brightness

    KDE 4.12:

    Плазменная версия KDE: 5.14.3:

    Приведенный выше код по-прежнему действителен. Это будет работать, только если вы являетесь пользователем KDE. Однако в этом случае не потребуется никакого дополнительного программного обеспечения. Он будет иметь точно такое же поведение, как и при использовании виджета «батарея и яркость». Насколько я знаю, он изменяет физическую подсветку, в отличие от xrandr, который этого не делает.

    Учтите, что 55 – это не дробная часть от 100 – это максимальная яркость. Вместо этого это связано с max_brightness:

    Существует также "тихая" версия, которую вы можете предпочесть в скрипте:

    ddccontrol — еще один вариант управления подсветкой внешних мониторов. Здесь я могу установить подсветку моего внешнего монитора на 50% его мощности с помощью:

    Я искал возможные решения этой проблемы, чтобы улучшить способ, которым Redshift обрабатывает изменения яркости. Там я обнаружил, что существует набор исправлений для ядра Linux для улучшения совместимости между устройствами, чтобы ноутбуки и внешние экраны могли работать одинаково через sysfs.

    Тем временем мне здесь подходит только ddccontrol. Как обычно, на вики-сайте Arch также есть хорошая общая документация по этой теме.

    Используя приведенные выше ответы, я создал этот скрипт (сохраненный в моем домашнем каталоге как яркость.sh ) для изменения яркости дисплея (поскольку клавиатура ноутбука пострадала от пролитого чая и стала непригодной для использования). Не стесняйтесь использовать его (если у вас есть указанные файлы. В противном случае потребуется переделка, чтобы указать на их вариант).

    Вы могли бы добиться большего успеха, чем просто вложение большого количества условий if, таких как elif или еще лучше case . Также я предлагаю прочитать руководство по стилю, такое как google.github.io/styleguide/shell.xml, и попробовать линтер, такой как shellcheck, поскольку это поможет вам создать лучший код. Хотел бы я, чтобы кто-нибудь сказал мне это, когда я начал писать сценарии много лет назад. :)

    Чтобы установить абсолютную яркость (для пользователей ноутбуков):

    Интерактивный пользовательский интерфейс, похожий на ncurses, с использованием xbacklight

    Проклятия бедняка. Нажмите h, и он упадет на 10%, нажмите l, и он поднимется на 10%. Затем покажите текущую яркость.

    Я использую i3 в качестве диспетчера окон и удалил gnome, поэтому решение gnome мне не подошло. А другие подходы, основанные на программном обеспечении, просто делали экран более черным. Итак, немного почитав, я наткнулся на Brightctl. Установите его с помощью apt install.

    Вам потребуются разрешения для изменения устройства отображения, что могут сделать только члены группы video (и, очевидно, root).Итак, убедитесь, что вы добавили текущего пользователя в группу video. Вы можете сделать это так:

    После установки я могу увеличивать/уменьшать яркость с помощью приведенных ниже команд на 10 – это очень постепенно и дает мне больше контроля. :

    Я добавил привязки клавиш в свою конфигурацию i3. Вот фрагмент привязки клавиш.

    Настроить яркость экрана в графическом интерфейсе очень просто. А как насчет CLI? В этом кратком руководстве объясняется, как настроить яркость монитора из командной строки в Linux с помощью утилиты xrandr.

    Мы уже рассмотрели приложение с графическим интерфейсом контроллера яркости, которое поможет нам управлять яркостью в операционных системах, подобных Ubuntu.

    Но разработка контроллера яркости, кажется, застопорилась больше года, и я не уверен, будет ли он работать с последними версиями Ubuntu. Еще одним недостатком является то, что приложение Brightness Controller совместимо только с Python2.

    При поиске альтернативных способов я узнал, что можно легко настроить яркость монитора с помощью утилиты командной строки под названием "xrandr".

    Что такое xrandr?

    Программа xrandr используется для установки размера, ориентации и/или отражения выходных данных на экране. С помощью Xrandr мы также можем отображать текущее состояние экрана системы, изменять или устанавливать разрешение, отключать отключенные выходы и включать подключенные.

    Кроме того, Xrandr предустановлен в большинстве дистрибутивов Linux, поэтому нам не нужно устанавливать дополнительные инструменты/приложения.

    Настройка яркости монитора из командной строки в Linux

    <р>1. Во-первых, нам нужно проверить текущее состояние дисплея системы. Для этого запустите:

    Пример вывода:

    Проверить текущее состояние отображения системы в Linux с помощью xrandr

    Как видите, в настоящее время подключен дисплей LVDS-1. Этот вывод отображает текущее разрешение и частоту обновления экрана.

    <р>2. Если вы хотите узнать только активное отображаемое имя, используйте команды «grep» и «head» с «xrandr», как показано ниже.

    <р>3. Значение яркости должно находиться в диапазоне от 0,0 до 1,0, где 0,0 соответствует самому тусклому (полностью черному), а 1,0 соответствует самому яркому значению. Например, чтобы установить значение яркости экрана 0,7, выполните:

    Замените LVDS-1 своим активным отображаемым именем. Здесь 0,7 означает 70 % максимальной яркости экрана.

    Чтобы вернуться к нормальной яркости, выполните:

    Не используйте ничего выше 1.0. Это может привести к тому, что дисплей станет полностью белым, и вы не сможете четко видеть что-либо на экране.

    Читайте также: