Как отключить подсветку, но оставить ЖК-дисплей включенным?

Как отключить подсветку, но оставить ЖК-дисплей включенным?

Как установить нулевую яркость на ноутбуках, у которых на регуляторе яркости установлена ​​ненулевая минимальная яркость?

Решение должно работать независимо от XIe, оно также должно работать в виртуальных терминалах.

решение1

В сегменте ноутбуков с чипсетами Intel, похоже, существует разделение между панелями, подключенными по LVDS и eDP:

еDP:

echo 4 > /sys/class/backlight/intel_backlight/bl_power

…следует отключить подсветку.

echo 0 > /sys/class/backlight/intel_backlight/bl_power

следует включить его снова.

Низковольтная дифференциальная передача:

Я обнаружил, что невозможно отключить подсветку на моих планшетах Thinkpad X201 и X201 через sysfs (bl_power ничего не делает; по-видимому, это относится только к eDP).

Эта страницаимеет очень длинное описание запутанной истории управления подсветкой в ​​ядре Linux. TL;DR:

i915 поддерживает bl_power для панелей eDP (но не LVDS), начиная с версии 3.18.

ОДНАКО,Мне удалось отключить подсветку с помощью инструмента под intel_backlightназваниемintel-gpu-tools. Для этого требуются права root, поскольку, по-видимому, запись производится в необработанный регистр.

intel_backlight 0

...выключил подсветку. Увеличив яркость с помощью регуляторов, я ее снова включил.

Я также написал скрипт, который подключил для срабатывания по событию ACPI, генерируемому клавиатурой (в моем случае это fn+space или ) button/zoom. Если ваша система не использует это событие ACPI, вам нужно использовать acpi_listen, чтобы найти то, которое есть в вашей системе.

Чтобы запустить его, я создал файл с fnspace-backlightименем /etc/acpi/events:

# Wyatt Ward
# hook for magnify acpi event (fn+space)
# toggle LCD backlight on/off
event=button/zoom
action=/etc/acpi/actions/toggle-lcd-light.sh

Я также создал файл с именем /etc/acpi/actions/toggle-lcd-light.sh, помеченный как исполняемый. Это позволяет мне переключать подсветку, не меняя ранее установленный уровень яркости, сохраняя временное значение в /brightness. Поскольку события ACPI запускают действия от имени пользователя root, будьте осторожны.

#! /bin/bash
BRIGHTSAVEFILE="/brightness"
BRIGHTSYSFS="/sys/class/backlight/acpi_video0/brightness"

# is the light on or off?
INTEL_BACKLIGHT="/usr/bin/intel_backlight"
light_state=$("$INTEL_BACKLIGHT" | sed 's/current backlight value: //g'|sed 's/%//g')
echo "light: ""$light_state"
if [ "$light_state" -eq 0 ]; then
  cat "$BRIGHTSAVEFILE" > "$BRIGHTSYSFS"
else
  # back up current brightness level
  cat "$BRIGHTSYSFS" > "$BRIGHTSAVEFILE"
  # turn off backlight
  "$INTEL_BACKLIGHT" 0
fi

А еще забавное замечание: вы можете управлять подсветкой с невероятной степенью детализации, слегка изменив intel_backlight. Изменение его для чтения аргументов как чисел с плавающей точкой, а не целых чисел, и для выполнения арифметики с плавающей точкой, требует только настройки нескольких строк кода и позволяет вам делать смехотворно точные изменения яркости, включая те, которые ниже минимума, который вы можете получить через sysfs.

решение2

Из X-Windows

В X Windows вы можете использовать приложение xbacklightдля получения и установки процентного значения яркости экрана.

Пример

текущий уровень

$ xbacklight -get
100.000000

установлен на 75%

$ xbacklight -set 75
$ xbacklight -get
73.333333

установить обратно на 100%

$ xbacklight -set 100
$ xbacklight -get
100.000000

С консоли

Чтобы добиться чего-то подобного для виртуального терминала, вам, скорее всего, придется взаимодействовать с настройками ACPI через /sysфайловую систему.

Пример

затемняет его

$ echo "10" | sudo tee /sys/class/backlight/acpi_video0/brightness 
10

полная яркость

$ echo "15" | sudo tee /sys/class/backlight/acpi_video0/brightness 
15

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

Ничего из этого не работает?

Если ни один из этих двух вариантов вам не подходит, взгляните на тему ArchLinux Wiki под названием:Подсветка. В этой статье описаны все методы, которые я когда-либо видел для достижения этой цели!

Рекомендации

Связанный контент