Como alterar o brilho do LCD a partir da linha de comando (ou via script)?

141

Para contornar bug # 1005495 (alterando o brilho do LCD via hotkeys impossível), eu gostaria de ter uma consulta de linha de comando para aumentar e um para reduzir o brilho do meu LCD. Eu poderia então mapear uma tecla de atalho para cada uma dessas consultas.

O problema é: não sei como aumentar e reduzir o brilho do LCD na linha de comando. Você?

    
por user69748 10.06.2012 / 19:28

12 respostas

144

mais uma forma de fazer isso é com outro novo programa chamado xbacklight, abra seu terminal e digite isto

sudo apt-get install xbacklight

digite este xbacklight -set 50

lá 50 significa faixa de brilho, podemos obtê-lo até 100 de 0.

você também pode aumentar e diminuir o brilho do valor presente para o nível especificado. Como você mencionou, se você quiser aumentar para 10% do valor atual de brilho, então você pode dar isso

xbacklight -inc 10

e para diminuir 10% você pode dar isso

xbacklight -dec 10 
    
por rɑːdʒɑ 11.06.2012 / 07:28
133

Abra o seu terminal e digite isto

xrandr -q | grep " connected"

ele lhe dará a saída como LVDS1 conectou 1680x1050 + 0 + 0 (direita esquerda direita x eixo invertido) 331mm x 207mm

Existe o LVDS1 para o seu monitor.

agora você tem que fazer o que

xrandr --output LVDS1 --brightness 0.5

lá 0,5 significa brilho e varia de 0,0 a 1,0. 0,0 - > Preto cheio. Então você tem que escolher o valor necessário de brilho.

    
por rɑːdʒɑ 11.06.2012 / 07:25
85

O seguinte funciona para mim:

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

Eu acho que o valor máximo possível está no arquivo /sys/class/backlight/intel_backlight/max_brightness .

    
por palacsint 19.05.2014 / 11:51
12

Para laptops,
sudo setpci -s 00:02.0 F4.B=80

Altere 80 por [0-FF] para obter o brilho mais alto. O valor especificado está em hexadecimal, portanto, 80 fornecerá a você 50% do brilho máximo.

Para desktops [não testados por mim],% xgamma -gamma .75

    
por Gaurav Gandhi 10.06.2012 / 19:37
5

Tente isso no terminal:

xrandr --output LVDS1 --brightness 0.9

Você pode alterar o último valor como quiser, por exemplo. 0,2

    
por ripu 23.09.2013 / 00:12
3

Aqui está uma pequena linha que pode ajudá-lo a relaxar os olhos. Basta criar um crontaab com a linha ou fazer um script

xrandr --output VGA1 --brightness 0.5; sleep 20; xrandr --output VGA1 --brightness 1
    
por Cristianpark 07.03.2014 / 21:32
3

Faça este script:

set-brightness.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"

Execute como root, com qualquer valor entre 0 e 1.

sudo ./set-brightness.sh 0.5
  • Se o seu sistema não tiver um /sys/class/backlight/acpi_video0 , deve haver pelo menos um diretório lá, que pode ser específico do dispositivo (eu também tenho um radeon_bl0 , por exemplo).
  • Se você tiver outros, lembre-se da pilha de valores deles (daí o loop; pressione todos os outros outros valores para 1.0 e, em seguida, defina o destino para a quantidade desejada).
  • Embora o acpi_video0 deva sempre funcionar, ele nem sempre tem a gama completa de brilhos físicos disponíveis. Experimente cada um deles e use aquele com a maior gama como seu "TARGET"
por Fordi 09.03.2016 / 20:18
2

KDE 4.12:

qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightness 55
    
por int_ua 26.03.2014 / 05:54
2

Como @palacsint disse, echo 244 > /sys/class/backlight/intel_backlight/brightness path funciona para mim.

Mas os valores máximos e mínimos são reenviados nos arquivos /sys/class/backlight/intel_backlight/max_brightness e /sys/class/backlight/intel_backlight/bl_power , respectivamente.

Além disso, o brilho real que seu computador está executando agora está presente em /sys/class/backlight/intel_backlight/actual_brightness

    
por user281989 07.12.2014 / 06:59
2

Usando as respostas acima, eu criei este script (salvo no meu diretório home como brightness.sh) para modificar o brilho da tela (como o teclado do laptop sofreu um problema de chá derramado e tornou-se inutilizável). Sinta-se livre para usá-lo (se você tiver os arquivos designados ... caso contrário, mexer para apontar a sua variação deles será necessário).

#!/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
    
por Aaron Nichols 26.02.2017 / 01:13
1
O

ddccontrol é outra opção para controlar a luz de fundo de monitores externos. Aqui posso definir a retroiluminação do meu monitor externo para 50% da sua potência com:

ddccontrol -p -r 0x10 -w 50

Eu olhei em possíveis soluções para este problema para melhorar a maneira como Redshift lida com mudanças de brilho . Por lá, descobri que há um conjunto de patches para o kernel do Linux para melhorar a compatibilidade entre dispositivos, para que os laptops e as telas externas poderia funcionar de forma semelhante, através de sysfs .

Enquanto isso, o ddccontrol é a única coisa que funciona para mim aqui. Como de costume, o wiki do Arch tem boa documentação geral sobre o tópico também.

    
por anarcat 25.01.2018 / 23:14
0

Interface do usuário semelhante a ncurses interativa usando xbacklight

As ncurses de um homem pobre. Atinge h e diminui 10%, atinge l e sobe 10%. Em seguida, mostre a luminosidade atual.

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
)