Как управлять подсветкой по команде терминала

Я пытаюсь сделать программу, которая управляет яркостью ОС Linux, но мне нужно знать, как управлять подсветкой монитора, просто используя команды терминала? Мне нужно уметь увеличиваться, уменьшаться. А также затемнение экрана (и возврат отмены затемнения), если это возможно.

9 ответов

Решение

Есть много возможностей. Просто назвать несколько:

1.Голое эхо

echo 8 > /sys/class/backlight/intel_backlight/brightness

Посмотрите /sys/class/backlight/intel_backlight/ яркость /max_brightness, чтобы увидеть, какая максимальная яркость поддерживается.

2.Самый простой в использовании

устанавливать xbacklight пакет, а затем попробуйте

 xbacklight -inc 20     # increase backlight by 20%
 xbacklight -dec 30     # decrease by 30%
 xbacklight -set 80     # set to 80% of max value
 xbacklight -get        # get the current level

3.Изощренный

Бежать xrandr --verbose и искать строку с разрешением, как LVDS1 connected 1024x600+0+0, Имя вашего дисплея (LVDS1 в этом примере) необходимо здесь. Теперь вы готовы установить яркость

xrandr --output LVDS1 --brightness 0.4

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

xrandr --output LVDS1 --brightness 1.7
xrandr --output LVDS1 --brightness -0.4  #yes, negative value is possible
xrandr --output LVDS1 --brightness 1

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

xrandr --output LVDS1 --reflect x
xrandr --output LVDS1 --reflect xy
xrandr --output LVDS1 --reflect normal     # return to normal state
xrandr --output LVDS1 --rotate left
xrandr --output LVDS1 --rotate inverted
xrandr --output LVDS1 --rotate normal      # again, back to normal

Альтернатива голому эхо с XFCE4 Power Manager

На моем DELL Inspiron 11 xbacklight не работает ("Нет выходов имеют свойство подсветки"). Метод голого эха, описанный user362097, работает.

Если вы используете Xubuntu или какой-либо дистрибутив, использующий XFCE4 Power Manager, вы можете использовать xfpm-power-backlight-helper:

pkexec xfpm-power-backlight-helper --get-max-brightness
# I get 6009
pkexec xfpm-power-backlight-helper --set-brightness 1000

Зачем мучить себя? Разве вы не хотите хороший графический интерфейс?

Этот простой скрипт написан для работы с системой подсветки, упомянутой в ответе @user3620917 как "Bare Echo". Но как только вы выясните, какая команда работает в вашей системе, вы можете адаптировать этот слайдер для работы с ним.

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

yad --scale --print-partial

полный скрипт:

#!/bin/sh 
BrPath='/sys/class/backlight/intel_backlight/' 
BrCur=`cat ${BrPath}brightness` 
BrMax=`cat ${BrPath}max_brightness` 
BrMin=$(( (BrMax + (100 - 1)) / 100))   # 100th max-brightness, rounded up to nearest integer 
yad --scale --min-value $BrMin --max-value $BrMax --value $BrCur --print-partial --title 'Set brightnessradky's Dpup Stretch 7.5 (RC3)' --width 300 --fixed --sticky --mouse --on-top --escape-ok --button OK --hide-value | while read BrNew 
   do echo "$BrNew" > ${BrPath}brightness 
   done

Объяснение всех опций: https://www.mankier.com/1/yad

Установить:

  • Убедитесь, что простая команда echo работает на вашем компьютере. Попробуйте различные значения и посмотрите, не изменится ли ваша яркость.

    эхо 10000000 > /sys/ класс / подсветка /intel_backlight/ яркость

  • Подтвердите, что Яд работает:

    yad --scale --print-part

  • сохранить скрипт в файле с именем set-Brightness

  • при необходимости отредактируйте BrPath= линия в соответствии с вашим путем подсветки.
  • поместите скрипт в / usr / local / bin
  • Создайте панель запуска на панели или рабочем столе, которая запускает команду set-Brightness. Поскольку он находится в / usr / local / bin, ваша ОС должна его найти - не нужно вводить весь путь.

Причины сбоя:

  • Ваш путь подсветки может быть не Intel. Определите, какой путь подсветки является правильным для вашей машины. https://askubuntu.com/questions/437983/how-to-find-backlight-is-managed-by-which-card
  • У вас может быть установлен старый Яд, или не установлен вообще. http://archive.ubuntu.com/ubuntu/pool/universe/y/yad/
  • Если вы не работаете от имени пользователя root, вам может потребоваться предоставить вашему пользователю (или всем пользователям) права на запись в файл яркости.

    chmod 666 /sys/ класс / подсветка /intel_backlight/ яркость

  • В параметре yad 'title' могут быть символы, которые могут не понравиться некоторым версиям yad, например, parens. (у меня работают паренсы, мммм).

Для внешних подключенных мониторов существуют утилиты Linux, которые поддерживают DDC / MCCS, стандарт VESA для управления настройками монитора с ПК. Команды MCCS могут быть отправлены через i2c (модуль ядра i2c-dev) на мониторы DVI, DisplayPort, HDMI или через USB для мониторов, подключенных через USB. Я обнаружил, что утилита командной строки ddcutil является надежным инструментом DDC / MCCS. Если вам нужен небольшой интерфейс для ddcutil в системном трее, я написал vdu_controls (скрипт Qt на Python). Я написал краткое введение в vdu_controls, ddcutil и DDC / MCCS в сообщении на форуме OpenSUSE .

      % ddcutil --display 2 getvcp 10
VCP code 0x10 (Brightness): current value =    50, max value =   100

% ddcutil --display 2 setvcp 10 90

Я искал команду для регулировки подсветки ЖК-панели ноутбука под управлением Fedora 30 XFCE.

По какой-то причине xbacklight не работал. Я также полагаю, что даже если бы xbacklight работал в графической среде, например, под X-сервером, он не работал бы на уровне запуска 3 в виртуальной консоли. работает как под XFCE, так и на уровне запуска 3. Установить с помощью

sudo dnf install brightlight

для информации о запуске типа команды:

brightlight -h

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

Здесь диапазон параметров составляет 100-999 в зависимости от ваших требований, отрегулируйте номер в командной строке ниже

echo 200 | sudo tee /sys/class/backlight/intel_backlight/brightness

Надеюсь, это будет вам полезно.

step1: открыть терминал ctrl + alt + t

step2:xrandr | grep "подключен" | вырезать -f1 -d ""

step3:xrandr --output [имя-монитора] --brightness [уровень яркости]

 example: xrandr --output LVDS-1 --brightness 0.75

Уровень яркости должен быть установлен от 0,5 до 1 для лучшей видимости.

Вот простая команда для управления яркостью в любой системе на базе Linux

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

Чтобы узнать это, запустите эту команду

xrandr -q

Это даст полезную информацию об экране

Вот мой экран подключен к eDP

Для вашей системы все может быть иначе

Узнав, что запустите следующую команду

xrandr --output eDP --brightness [0-10]

Замените eDP подключенным экраном из приведенного выше вывода, и вы можете иметь нормальные значения яркости от 0,1 до 1,0.

Если вы хотите изменить его на аппаратном уровне, то это зависит от того, какая у вас видеокарта. У меня Radeon Card + Intel интегрированная карта. Поэтому я изменяю яркость с помощью следующих сценариев для 3 упомянутых вами задач.

  1. Увеличить яркость
cb=$(cat /sys/class/backlight/intel_backlight/brightness)   
nb=$(($cb + 50))     
echo $nb > /sys/class/backlight/intel_backlight/brightness     
notify-send -t 1 -a "My Brightness controller" $nb
  1. Уменьшить яркость
cb=$(cat /sys/class/backlight/intel_backlight/brightness)    
nb=$(($cb - 50))    
echo $nb > /sys/class/backlight/intel_backlight/brightness     
notify-send -t 1 -a "My Brightness controller" $nb
  1. Тусклый экран
cb=$(cat /sys/class/backlight/intel_backlight/brightness)    
if [ $cb -ne 0 ]    
then    
    nb=0    
    echo $cb > /home/prem/Documents/sys_files/old_bright    
else    
    nb=$(cat /home/prem/Documents/sys_files/old_bright)    
fi    
echo $nb > /sys/class/backlight/intel_backlight/brightness

В вашем случае вам может потребоваться изменить имя папки от Intel, в зависимости от вашего графического процессора.

Другие вопросы по тегам