Манжаро xfce узнать какая яркость дисплея

Обновлено: 04.07.2024

Оригинал: How To Adjust Monitor Brightness From Command Line In Linux
Автор: SK
Дата публикации: 1 октября 2018 года
Перевод: А. Кривошей
Дата перевода: январь 2019 г.

Это краткое руководство объясняет, как можно отрегулировать яркость монитора из командной строки в Unix-подобных операционных системах. Регулировка яркости экрана в режиме графического интерфейса проста. Мы уже рассматривали графическое приложение Brightness Controller , которое поможет нам управлять яркостью в Ubuntu-подобных операционных системах. Но разработка этого приложения, похоже, остановилась более года назад, и я не уверен, будет ли оно работать с последними версиями Ubuntu. Еще одним недостатком является то, что приложение Brightness Controller совместимо только с Python2. Ища альтернативные пути, я узнал, что мы можем легко решить эту задачу с помощью утилиты командной строки под названием «xrandr».

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

Сначала нам нужно проверить текущее состояние системного дисплея. Для этого выполните следующую команду:

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

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

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

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

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

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

Проблема регулировки яркости экрана в Linux знакома, пожалуй, каждому кто ставил «пингвина» на ноутбук или моноблок. Причём сама установка, как правило, происходит безболезненно, а вот после перезагрузки уже возможны варианты.

Как заставить нормально работать подсветку экрана в Linux покажу на примере дистрибутива Deepin и моноблока Lenovo AIO 330-20AST. Нет особой разницы в том, какой дистрибутив Linux установлен, главное уловить суть проблемы, а решения везде похожи.

Итак, после первой перезагрузки свежеустановленного Deepin Linux вдруг резко снизился уровень яркости экрана, причём ползунок регулировки выставлен на максимальные 100%. Из особенностей моноблока Lenovo AIO 330-20AST можно отметить отсутствие физических клавиш регулировки яркости на клавиатуре (обычно комбинация [Fn]+[клавиша увеличения/уменьшения яркости]). Предполагается, что всё должно работать программно из операционной системы.

Регулировать яркость экрана получалось от уровня "совсем ничего не видно" до "видно с трудом". Понятно, что это какой-то косяк в настройках, осталось его найти.

Уровень яркости подсветки экрана в Linux контролируется с помощью ACPI (Advanced Configuration and Power Interface — усовершенствованный интерфейс конфигурации и управления питанием) модуля ядра для видео или графическим драйвером.

Сам интерфейс управления подсветкой доступен через папку sysfs в /sys/class/backlight . Посмотрим что там находится:

Имя папки зависит от модели видеокарты и их может быть несколько, если она у вас не одна. Так, для видеокарт от Intel она называется intel_backlight, у AMD может встретиться название radeon0. Зачастую, Linux пишет изменения настроек яркости не в тот каталог, например в acpi_video0, когда реально используется intel_backlight. Заглянем внутрь:

actual_brightness brightness max_brightness subsystem/ uevent
bl_power device/ power/ type

Значение максимальной яркости содержится в файле max_brightness . Рекомендую сперва заглянуть в данный файл, чтобы определить какое значение следует выставить для работы (обычно оно равняется 15, но в моём случае было 100, от того и максимальная яркость моноблока после перезагрузки составляла лишь 15% от реальной).

Файл brightness содержит текущее значение яркости (у меня там стояло число 15). До этого уровня Deepin Linux и предлагал мне регулировки из графической оболочки. Текущее значение в данном файле не может быть выше максимальной яркости, установленной в max_brightness . Моя борьба с подсветкой экрана на Lenovo AIO 330-20AST заключалась в изменении всего одного параметра:

sudo tee /sys/class/backlight/acpi_video0/brightness <<< 100

Как я уже упоминал чуть ранее, не редко из-за специфических особенностей конкретного ноутбука или моноблока ACPI не работает должным образом или Linux не правильно определяет чем же нужно управлять. В таком случае следует менять в grub параметр ядра acpi_backlight при загрузке.

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor"

Подписывайтесь на канал Яндекс.Дзен и узнавайте первыми о новых материалах, опубликованных на сайте.

Среда рабочего стола или графическое окружение рабочего стола - разновидность графических интерфейсов пользователя, обеспечивает пространство, называемое рабочим столом, на котором появляются окна, пиктограммы, панели и другие элементы. Обычно поддерживаются механизмы, объединяющие разные части среды, — например, drag-n-drop, взаимодействие с браузерами, переключение окон, многие дополнительные программы, приоритеты использование памяти и много чего еще что остается "за бортом" для обычного пользователя

Назначение рабочего стола (окружения) создание интуитивного, в данном случае графического способа взаимодействия пользователя с компьютером.

Для Windows среда рабочего стола может быть только одна для каждой из поколений операционных систем, поэтому у пользователей данного вопроса не возникает. Для Linux cреда рабочего стола может быть самой разной так как сама система и графическое окружение принципиально разные программные продукты и Linux вообще может существовать без графической оболочки, а Windows нет.

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

Оконный менеджер

Но, нужно помнить, есть еще понятие: "Менеджер окон Linux" или "Оконный менеджер". Он служит для управление окнами приложений, таким образом оконный менеджер понятие более узкое. А среда рабочего стола более широкое понятие. Среда рабочего стола включает в себя и менеджер окон и другие программы и библиотеки которые иногда очень тесно интегрированы с менеджерами и с сами рабочим столом с целью создать удобное, полноценное графическое окружение.

для лучшего понимания можно составить следующую формулу:

Среда рабочего стола = Менеджер окон + отдельный набор библиотек и приложений

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

Представители оконных менеджеров

i3, AWESOME WM, XMONAD, OPENBOX, DWM, GALA, KWIN, FLUXBOX, JWM и еще много и много других

Рассмотрим, например JWM или i3 (i3wm)

Оконные менеджеры

Менеджер окон для X Window System, написан на Си. Портирован на множество операционных систем FreeBSD, NetBSD, OpenBSD, Minix, OpenSolaris. Используется в качестве оконного менеджера по умолчанию в Puppy Linux.

i3 (i3wm)

i3 - это тайловый (фреймовый)* оконный менеджер с открытым исходным кодом, полностью написанный с нуля для операционных систем GNU/Linux и BSD. Развитие и ответвление оконного менеджера wmii ( ссылка на страницу )

*Тайловый (фреймовый) оконный менеджер это менеджер с не перекрываемыми (не пересекающимися) окнами.

Но сегодня мы поговорим именно о среде рабочего стола или графическом окружении рабочего стола.

Среды рабочего стола, представители.

"Отцы основатели"

GNOME

Старейший дизайн рабочего стола в Linux.

KDE ( KDE Plasma )

Одно из самых мощных и настраиваемых окружений рабочего стола в Linux.

Самые легкие и быстрые

Основана на GTK+ и использует собственный менеджер окон Xfwm.

Cinnamon (Корица)

Ответвление от GNOME. Изначально разрабатывался для Linux Mint, а сейчас используется для многих других проектов Linux (Fedora, Manjaro, Debian, Ubuntu, Calculate , Arch и др.) А еще подходит и для FreeBSD.

То же ответвление от GNOME, но на базе Gnome 2.

На основе Qt, появился в результате слияния LXDE и Razor-qt.

Pantheon

Для дистрибутива Elementary OS. Среда рабочего стола Pantheon интегрирована с другими приложениями Elementary OS, Plank (док-панель), Epiphany (веб-браузер по умолчанию) и Code (текстовый редактор), Gala (оконный менеджер дистрибутива основанный на Mutter)

Красивые

DDE (Deepin Desktop Environment)

Для дистрибутива Linux DEEPIN, основан на Debian

Выводы, самые лучшие среды рабочего стола

А что дальше? Какие среды рабочего стола будут?

А дальше все зависит от того куда повернётся и какими путями пойдет технический прогресс. Уже сейчас в связи с разработкой и уходом в массы шлемов VR, а я сейчас про Oculus Quest 2 который бьет рекорды по продажам выпускаю и еще выпустят виртуальные рабочие столы и что там будет, кто ж знает. Будет это напоминать реальный стол или комнату или еще чего то, не знаю, но думаю дизайнеры уже работают над этим. Интересные перспективы возникают с уходом от графической визуализации при переходе на нейроинтерфейсы, но там вообще "темный лес" и чего там будет вообще никто не знает.

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

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

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

Contents

Обзор

Существует несколько способов контролировать яркость. В соответствии с этим обуждением [1] и этой wiki страницей [2], способы контроля делятся на следующие категории:

  • яркость управляется горячей клавишей, определённой производителем, и нет интерфейса для того, чтобы ОС могла настраивать яркость.
  • яркость можно контролировать через ACPI или через графический драйвер.
  • яркость можно контролировать посредством аппаратного регистра с помощью setpci.

Все методы доступны пользователю через /sys/class/backlight и xrandr/xbacklight может выбрать один способ контролировать яркость. Пока еще не совсем понятно, который из способов xbacklight предпочитает по умолчанию.

Яркость подсветки экрана регулируется установлением уровня питания светодиодов или катодов. Уровень питания может часто контролироваться с помощью ACPI модуля ядра для видео. Интерфейс к этому модулю доступен через папку sysfs в /sys/class/backlight .

Имя папки зависит от модели видеокарты.

Именно эта подсветка - управляется видеокартой ATI. В видеокарте Intel она называется intel_backlight . В следующем примере используется acpi_video0 .

Папка содержит следующие файлы и папки:

Максимальную яркость можно прочитать из max_brightness , которая обычно равна 15.

Яркость может быть изменена, если записать число в brightness . Здесь невозможно использовать число выше максимальной яркости.

Параметры ядра

Иногда ACPI не работает должным образом из-за различных реализаций материнских плат и особенностей ACPI, что может приводить, например, к неточным оповещениям о яркости. Этому могут быть подвержены некоторые ноутбуки с двойной графикой (например, выделенный графический процессор Nvidia / Radeon с интегрированным графическим процессором Intel / AMD). Кроме того, иногда может быть необходимо зарегистрировать свою собственную подсветку acpi_video0 , даже если другая уже существует (например, intel_backlight ), что может быть достигнуто добавлением следующих параметров ядра:

Если вы обнаружите, что изменение подсветки acpi_video0 на самом деле не изменяет яркость, вам может потребоваться использовать acpi_backlight=none .

  • На ноутбуках Nvidia Optimus параметра ядра nomodeset может препятствовать регулировке подсветки.
  • На ноутбуках Asus вам может также понадобиться загрузить модуль ядра asus-nb-wmi .
  • Отключение legacy-загрузки на Dell XPS13 приводит к невозможности изменить подсветку.

Правило Udev

Если доступен интерфейс ACPI, уровень подсветки может быть установлен во время загрузки с использованием правила udev:

Выключение подсветки

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

Подсветка должна включиться снова при движении мыши или вводе с клавиатуры. Если предыдущая команда не работает, есть шанс, что vbetool заработает. Отметьте, однако, что в этом случае подсветка должна быть вручную активирована снова. Выполните:

Чтобы снова включить подсветку:

Например, это можно использовать при закрытии крышки ноутбука с помощью Acpid.

Служба systemd-backlight

Некоторые ноутбуки имеют несколько видеоадаптеров (как Optimus) и восстановление подсветки не выполняется в следствие ошибок. Попробуйте маскировать instance этой службы, например systemd-backlight@backlight\:acpi_video1 в случае acpi_video1 .

Из man-страницы systemd-backlight@.service:

systemd-backlight принимает следующий параметр командной строки:

Принимает логическое значение. По умолчанию "1".

Если "0", не восстанавливает настройки яркости во время загрузки. Однако, настройки будут всё равно сохраняться при выключении.

Утилиты настройки

xbacklight

Яркость может быть установлена с помощью пакета xorg-xbacklight .

  • xbacklight работает только с intel. Radeon не поддерживает свойство подсветки RandR.
  • xbacklight в настоящий момент не работает с modesetting-драйвером [3].

Чтобы установить яркость в 50% от максимальной:

Приращения могут использоваться вместо абсолютных значений, например, для увеличения или уменьшения яркости на 10%:

Гамма может быть установлена с использованием пакета xorg-xrandr или xorg-xgamma . Следующие команды создают одинаковый эффект.

Совет: Эти команды могут быть привязаны к клавишам клавиатуры, как описано в Extra keyboard keys in Xorg.

Если вы сталкиваетесь с ошибкой "No outputs have backlight property", это потому, что xrandr/xbacklight не выбирает правильную папку в /sys/class/backlight . Вы можете указать папку, настроив опцию Backlight в device-разделе файла xorg.conf. К примеру, если имя папки intel_backlight , раздел device может быть настроен следующим образом:

Другие утилиты

setpci

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

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

Использование DBus с Gnome

Яркость также можно регулировать с помощью настроек gnome. При использовании этого метода изменения отражаются в интерфейсе gnome.

Пошаговое изменение яркости (для контроля с клавиатуры) также может быть реализовано этим методом.

Цветовая коррекция

xcalib

Примечание: xcalib не меняет силу подсветки, а просто модифицирует LUT-таблицу: это означает, что время работы от батареи не изменится. Однако, это может быть полезно, когда регулировка подсветки недоступна (настольные ПК). Используйте xcalib -clear , чтобы сбросить LUT.

Пакет xcalib (upstream URL) доступен в AUR и может использоваться, чтобы уменьшить яркость экрана. Видео-демонстрация доступна на YouTube. Эта программа может корректировать гамму, инвертировать цвета и уменьшать контраст. Например, чтобы уменьшить яркость посредством изменения контраста:

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

Xflux

Xflux это порт f.lux для системы X-Windows. Он меняет оттенок экрана между синим в течение дня и желтым или оранжевым ночью. Это помогает вам адаптироваться к времени суток и перестать поздно ложиться спать из-за вашего яркого монитора.

В AUR существуют различные пакеты, которые используют f.lux.[5] "Основной" пакет - xflux AUR , который охватывает функционал командной строки f.lux. Существуют различные демоны для автоматического запуска пакета xflux.

redshift

Redshift использует randr , чтобы настроить яркость экрана в зависимости от времени суток и вашего географического положения. Она также может выполнять RGB гамма-коррекцию и задавать цветовые температуры. Как и xcalib , это лишь программное решение, и внешний вид курсора мыши не изменяется. Чтобы выполнить быструю настройку яркости, попробуйте что-то вроде этого:

Совет: Если ваша долгота западная или широта южная, вы должны ввести ее как отрицательную. Пример для Berkeley, CA:

NVIDIA settings

Пользователи несвободных драйверов NVIDIA могут менять яркость дисплея с помощью утилиты nvidia-settings в разделе "X Server Color Correction". Однако, заметьте, что это не имеет ничего общего с подсветкой (Интенсивность), она всего лишь регулирует цветность. (Уменьшение яркости таким образом не является энергоэффективным. Используйте его в последнюю очередь, если все другие варианты не срабатывают; увеличение яркости портит цвета на экране полностью, по аналогии с засвеченностью фотографий.)

Увеличение яркости выше максимального уровня

Вы можете испльзовать xrandr для увеличения яркости выше максимального уровня:

Это установит уровень яркости на 200%. Это приведёт к повышению энергопотребления и снижению качества цвета в пользу яркости, тем не менее оно особенно подходит для ситуаций, когда окружающий свет очень яркий (например, солнечный свет).

Внешние мониторы

DDC/CI (Командный интерфейс обмена данными между компьютером и монитором) может использоваться для связи с внешними мониторами, реализующими стандарт MCCS (Monitor Control Command Set) по шине I2C.

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

Утилита ddcutil может использоваться, чтобы вывести или поменять настройки яркости:

Решение проблем

Частота ШИМ-модуляции подсветки (только для Intel i915)

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

Однако, частота переключения, так называемая частота ШИМ (широтно-импульсная модуляция), может быть недостаточно высокой, чтобы глаз воспринимал её как непрерывное свечение, и вместо этого видно мерцание. Это вызывает у некоторых людей такие симптомы, как головные боли и усталость глаз.

Если у вас графический адаптер Intel i915, то возможно настроить частоту ШИМ, чтобы устранить мерцание.

Период ШИМ (обратно пропорциональный частоте) записывается в 4 старших байта регистра 0xC8254 (если вы используете чипсет Intel GM45, вместо этого используйте адрес 0x61254 ). Чтобы манипулировать значениями регистров, установите intel-gpu-tools из официальных репозиториев.

Чтобы увеличить частоту, период должен быть уменьшен. Например:

Затем, чтобы удвоить частоту ШИМ, разделите 4 старших байта на 2 и запишите полученное значение, сохраняя нижние байты неизменными:

Чтобы установить новую частоту автоматически, попробуйте написать правило udev или установить intelpwm-udev AUR .

Инвертированная яркость (только для Intel i915)

  • после установки xf86-video-intel systemd-backlight.service выключает подсветку во время загрузки
    • возможное решение: маскировать systemd-backlight.service

    sysfs изменен, но нет изменения яркости

    Примечание: Такое поведение и способы его обхода были подтверждены на Dell M6700 с Nvidia K5000m (версия BIOS до A10) и Clevo P750ZM (Eurocom P5 Pro Extreme) с Nvidia 980m.

    На некоторых системах горячие клавиши яркости на клавиатуре корректно изменяют значения интерфейса acpi в /sys/class/backlight/acpi_video0/actual_brightness , но яркость экрана не изменяется. Апплеты яркости в окружениях рабочего стола могут также показывать изменения без результатов.

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

    В этом случае единственное решение - дождаться исправления от производителя BIOS или драйвера GPU.

    Обходной путь - использовать inotify api ядра для запуска xbacklight каждый раз, когда изменяется значение /sys/class/backlight/acpi_video0/actual_brightness .

    Сперва установите inotify-tools . Затем создайте скрипт, который будет запускаться при каждом включении с помощью автозагрузки.

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