Чтобы обойти ошибку # 1005495 (изменение яркости ЖК-дисплея с помощью горячих клавиш невозможно), я хотел бы иметь один запрос командной строки для увеличения и один для уменьшения яркости моего ЖК-дисплея. Затем я могу сопоставить горячую клавишу каждому из этих запросов.
Проблема в том, что я не знаю, как увеличить и уменьшить яркость ЖК-дисплея в командной строке. А ты?
Примечание ]: xbacklight
работает только с Intel, некорректно работает на Radeon и совсем не работает с драйвером настройки режима ( источник ). Он также работает только на X11, а не на Wayland.
Еще один способ сделать это - использовать другую новую программу с именем xbacklight, открыть свой терминал и набрать
sudo apt-get install xbacklight
, затем ввести xbacklight -set 50
там 50 обозначает диапазон яркости, мы можем увеличить его до 100 от 0.
вы также можете увеличивать и уменьшать яркость от текущего значения до указанного уровня. Как вы упомянули, если вы хотите увеличить до 10% от текущего значения яркость, тогда вы можете задать это
xbacklight -inc 10
, а для уменьшения на 10% вы можете указать это
xbacklight -dec 10
У меня работает следующее:
echo 400 | sudo tee /sys/class/backlight/intel_backlight/brightness
Я думаю, максимально возможное значение находится в файле / sys / class / backlight / intel_backlight / max_brightness
.
Замените intel_backlight
звездочкой, чтобы применить ко всем подсветкам.
Как сказал @palacsint, echo 244> / sys / class / backlight / intel_backlight / яркость
путь работает для меня.
Но максимальные и минимальные значения повторно представлены в Файлы / sys / class / backlight / intel_backlight / max_brightness
и / sys / class / backlight / intel_backlight / bl_power
соответственно.
Кроме того, фактическая яркость вашего компьютера сейчас присутствует в / sys / class / backlight / intel_backlight / actual_brightness
Создайте этот сценарий:
set-яркость. sh
#!/bin/bash
TARGET="acpi_video0"
cd /sys/class/backlight
MAX="$(cat "${TARGET}/max_brightness")"
# The `/1` at the end forced bc to cast the result
# to an integer, even if $1 is a float (which it
# should be)
LOGIC="$(echo "($1 * ${MAX})/1" | bc)"
for i in */; do
if [[ "${TARGET}/" != "$i" && -e "${i}brightness" ]]; then
cat "${i}max_brightness" > "${i}brightness"
fi
done
echo "$LOGIC" > "${TARGET}/brightness"
Запустите его как root с любым значением от 0 до 1.
sudo ./set-brightness.sh 0.5
/ sys / class / backlight / acpi_video0
, там должен быть хотя бы один каталог там, что может зависеть от устройства (например, у меня также есть radeon_bl0
). ] acpi_video0
должен работать всегда, не всегда доступен полный диапазон физической яркости. Попробуйте каждый из них и используйте тот, у которого самая большая гамма, в качестве "ЦЕЛИ" Откройте свой терминал и введите это
xrandr -q | grep " connected"
, это даст вам результат как
LVDS1 подключен 1680x1050 + 0 + 0 (нормальная левая перевернутая правая ось x ось y) 331 мм x 207 мм
Там LVDS1 означает ваш дисплей. Итак, теперь вам нужно сделать как
xrandr --output LVDS1 --brightness 0.5
, где 0,5 означает уровень яркости, и он находится в диапазоне от 0,0 до 1,0. 0.0 -> Полный черный. Поэтому вам нужно выбрать необходимое значение яркости.
Этот не изменяет яркость на аппаратном уровне . Из randr
руководство :
- яркость яркость
Умножьте значения гамма на CRTC, в настоящее время прикрепленные к выходу, на указанное плавающее значение. Полезно для слишком ярких или слишком тусклых выходных сигналов. Однако это модификация только программного обеспечения , если ваше оборудование поддерживает фактическое изменение яркости, вы, вероятно, предпочтете использовать xbacklight.
Попробуйте это в терминале:
xrandr --output LVDS1 --brightness 0.9
Вы можете изменить последнее значение, например, 0.2
qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightness 55
Приведенный выше код все еще действителен. Это будет работать, только если вы являетесь пользователем KDE. Однако в этом случае не потребуется никакого дополнительного программного обеспечения. Он будет вести себя точно так же, как при использовании виджета «батарея и яркость». AFAIK он меняет физическую подсветку, в отличие от xrandr
, который этого не делает.
Помните, что 55 выше не являются долей от 100, а последняя является максимальной яркостью. Вместо этого он связан с max_brightness:
qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl brightnessMax
Существует также "тихая" версия, которую вы можете предпочесть в сценарии:
qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightnessSilent 2000
Вот короткая строка, которая поможет вам расслабить глаза. Просто создайте crontaab со строкой или сделайте сценарий
xrandr --output VGA1 --brightness 0.5; sleep 20; xrandr --output VGA1 --brightness 1
Используя приведенные выше ответы, я создал этот сценарий (сохраненный в моем домашнем каталоге как яркость.sh) для изменения яркости дисплея (поскольку на клавиатуре ноутбука возникла проблема с пролитым чаем, и она пришла в негодность). Не стесняйтесь использовать его (если у вас есть назначенные файлы ... в противном случае потребуется попытка указать на их вариант).
#!/bin/bash
function main_menu
{
sudo clear
cursetting=$(cat /sys/class/backlight/intel_backlight/brightness)
maxsetting=$(cat /sys/class/backlight/intel_backlight/max_brightness)
powersave=$((maxsetting/5))
conservative=$((powersave*2))
medium=$((powersave*3))
performance=$((powersave*4))
echo ""
echo "----------------------- Brightness -----------------------"
echo " 1. Set Display to Minimum (Powersave) brightness setting."
echo " 2. Set Display to Low (Conservative) brightness setting."
echo " 3. Set Display to Medium brightness setting."
echo " 4. Set Display to High (Performance) brightness setting."
echo " 5. Set Display to Maximum brightness setting."
echo " 6. Exit."
echo "----------------------------------------------------------"
if [ $cursetting -eq $powersave ]; then
cursetting='Minimum'
else
if [ $cursetting -eq $conservative ]; then
cursetting='Conservative'
else
if [ $cursetting -eq $medium ]; then
cursetting='Medium'
else
if [ $cursetting -eq $performance ]; then
cursetting='Performance'
else
if [ $cursetting -eq $maxsetting ]; then
cursetting='Maximum'
fi
fi
fi
fi
fi
echo " Current Display Setting - "$cursetting;
choice=7
echo ""
echo -e "Please enter your choice: \c"
}
function press_enter
{
echo ""
echo -n "Press Enter to continue."
read
main_menu
}
main_menu
while [ $choice -eq 7 ]; do
read choice
if [ $choice -eq 1 ]; then
echo $powersave | sudo tee /sys/class/backlight/intel_backlight/brightness
main_menu
else
if [ $choice -eq 2 ]; then
echo $conservative | sudo tee /sys/class/backlight/intel_backlight/brightness
main_menu
else
if [ $choice -eq 3 ]; then
echo $medium | sudo tee /sys/class/backlight/intel_backlight/brightness
main_menu
else
if [ $choice -eq 4 ]; then
echo $performance | sudo tee /sys/class/backlight/intel_backlight/brightness
main_menu
else
if [ $choice -eq 5 ]; then
echo $maxsetting | sudo tee /sys/class/backlight/intel_backlight/brightness
main_menu
else
if [ $choice -eq 6 ]; then
exit;
else
echo -e "Please enter the NUMBER of your choice: \c"
choice = 7
fi
fi
fi
fi
fi
fi
done
Вы можете увеличить / уменьшить яркость с помощью:
# Step up:
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepUp
# Step down:
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepDown
/ sys / class / backlight
xbacklight
не всегда работает xrandr
просто ] выполняет гамма-коррекцию ddccontrol - еще одна опция для управления подсветкой внешних мониторов. Здесь я могу установить подсветку моего внешнего монитора на 50% от его мощности с помощью:
ddccontrol -p -r 0x10 -w 50
Я искал возможные решения этой проблемы, чтобы улучшить способ Redshift обрабатывает изменения яркости . Там я обнаружил, что существует набор исправлений для ядра Linux для улучшения совместимости между устройствами, чтобы ноутбуки и внешние экраны могли работать одинаково с помощью sysfs
.
Между тем. , ddccontrol - единственное, что у меня здесь работает. Как обычно, в вики Arch есть хорошая общая документация по этой теме.
Интерактивный пользовательский интерфейс, подобный ncurses, с использованием xbacklight
ncurses для бедняков. Нажмите h
, и он упадет на 10%, нажмите l
и он повысится на 10%. Затем покажите текущую яркость.
xback() (
done=false;
echo "less: h, more: l, quit: q"
while ! $done; do
read -rsn1 key
if [ "$key" = h ]; then
xbacklight -dec 10
elif [ "$key" = l ]; then
xbacklight -inc 10
elif [ "$key" = q ]; then
done=true
fi
printf "\r$(xbacklight -get) "
done
)
Для портативных компьютеров,
sudo setpci -s 00:02.0 F4.B=80
Измените 80
на [0-FF]
, чтобы получить самую низкую-максимальную яркость. .
Значение указано в шестнадцатеричном формате, поэтому 80
даст вам 50%
от максимальной яркости.
Для настольных ПК необходимо сделать гамма-коррекцию (не тестировалось мной),
xgamma -gamma .75
Чтобы установить абсолютная яркость (для пользователей портативных компьютеров):
BRIGHTNESS=50 # 0 to 100
dbus-send \
--session \
--type=method_call \
--dest="org.gnome.SettingsDaemon.Power" \
/org/gnome/SettingsDaemon/Power \
org.freedesktop.DBus.Properties.Set \
string:"org.gnome.SettingsDaemon.Power.Screen" \
string:"Brightness" \
variant:int32:$BRIGHTNESS
Я использую i3 в качестве оконного менеджера, и я удалил gnome, поэтому Решение gnome не сработало для меня. А другие подходы, основанные на программном обеспечении, просто сделали экран более черным. Итак, немного почитав, я наткнулся на brightctl . Установите его с помощью apt install.
sudo apt install brightctl
Вам потребуются разрешения для изменения устройства отображения, что могут делать только члены группы video (и, очевидно, root). Итак, убедитесь, что вы добавили текущего пользователя в группу видео . Вы можете сделать это так:
sudo usermod $(whoami) -a -G video
После установки я могу увеличивать / уменьшать яркость с помощью приведенных ниже команд на 10 - это очень постепенно и дает мне больше контроля. :
#Increase brightness
/usr/bin/brightnessctl -d intel_backlight set +10
#Reduce brightness
/usr/bin/brightnessctl -d intel_backlight set 10-
Я добавил привязки клавиш в конфигурацию i3. Вот фрагмент привязки клавиш.
#Increase brightness
bindsym XF86MonBrightnessUp exec /usr/bin/brightnessctl -d intel_backlight set +10
#Reduce brightness
bindsym XF86MonBrightnessDown exec /usr/bin/brightnessctl -d intel_backlight set 10-
На основе ответа placsint
cd /sys/class/backlight/intel_backlight/
cat max_brightness | sudo tee brightness