Come cambiare la luminosità dell'LCD dalla riga di comando (o tramite script)?

135

Per aggirare bug # 1005495 ​​ (cambiare la luminosità dell'LCD tramite tasti di scelta rapida impossibile), mi piacerebbe avere una query da riga di comando per aumentare e una per ridurre la luminosità del mio LCD. Potrei quindi mappare un tasto di scelta rapida a ciascuna di queste query.

Il problema è: non so come aumentare e ridurre la luminosità dell'LCD sulla riga di comando. Hai?

    
posta user69748 10.06.2012 - 19:28

12 risposte

141

un altro modo in cui dobbiamo farlo è con un altro nuovo programma chiamato xbacklight, apri il tuo terminale e digita questo

sudo apt-get install xbacklight

quindi digita questo xbacklight -set 50

50 rappresenta la gamma di luminosità che possiamo ottenere fino a 100 da 0.

puoi anche aumentare o diminuire la luminosità dal valore attuale al livello specificato. Come hai detto se vuoi aumentare fino al 10% dal valore attuale della luminosità, allora puoi dare questo

xbacklight -inc 10

e per diminuire del 10% puoi dare questo

xbacklight -dec 10 
    
risposta data Ten-Coin 11.06.2012 - 07:28
130

Apri il tuo terminale e digita questo

xrandr -q | grep " connected"

ti darà l'output come LVDS1 connesso 1680x1050 + 0 + 0 (normale sinistra invertita destra asse x asse y) 331mm x 207mm

Lì LVDS1 sta per il tuo display.

quindi ora devi fare come

xrandr --output LVDS1 --brightness 0.5

lì 0,5 indica luminosità e varia da 0,0 a 1,0. 0.0 - & gt; Pieno nero. Quindi devi scegliere il valore richiesto di luminosità.

    
risposta data Ten-Coin 11.06.2012 - 07:25
79

I seguenti lavori per me:

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

Suppongo che il valore massimo possibile sia nel file /sys/class/backlight/intel_backlight/max_brightness .

    
risposta data palacsint 19.05.2014 - 11:51
11

Per computer portatili,
sudo setpci -s 00:02.0 F4.B=80

Modifica 80 di [0-FF] per ottenere la luminosità più bassa. Il valore specificato è esadecimale, quindi 80 ti darà una 50% di luminosità massima.

Per desktop [non testato da me],
xgamma -gamma .75

    
risposta data Gaurav Gandhi 10.06.2012 - 19:37
5

Prova questo nel terminale:

xrandr --output LVDS1 --brightness 0.9

Puoi cambiare l'ultimo valore a tuo piacimento, es. 0.2

    
risposta data ripu 23.09.2013 - 00:12
3

Ecco una linea breve che può aiutarti a rilassare i tuoi occhi. Crea semplicemente un crontaab con la linea o crea uno script

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

Crea questo 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  is a float (which it 
# should be)
LOGIC="$(echo "( * ${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"

Esegui come root, con qualsiasi valore compreso tra 0 e 1.

sudo ./set-brightness.sh 0.5
  • Se il tuo sistema non ha un /sys/class/backlight/acpi_video0 , dovrebbe esserci almeno una directory, che potrebbe essere specifica per dispositivo (ho anche una radeon_bl0 , per esempio).
  • Se ne hai altri, tieni a mente il loro stack di valori (da qui il ciclo, spingendo tutti i valori altri a 1.0, quindi imposta quello di destinazione sull'importo desiderato).
  • Anche se acpi_video0 dovrebbe funzionare sempre, non sempre è disponibile l'intera gamma di luminosità fisica. Prova ognuno di essi e utilizza quello con la gamma più ampia come "TARGET"
risposta data Fordi 09.03.2016 - 20:18
2

Come ha detto @palacsint, il percorso echo 244 > /sys/class/backlight/intel_backlight/brightness funziona per me.

Tuttavia, i valori max e min vengono reinviati rispettivamente in /sys/class/backlight/intel_backlight/max_brightness e /sys/class/backlight/intel_backlight/bl_power .

Inoltre, la luminosità effettiva che il tuo computer sta eseguendo ora è presente in /sys/class/backlight/intel_backlight/actual_brightness

    
risposta data user281989 07.12.2014 - 06:59
2

Utilizzando le risposte di cui sopra, ho creato questo script (salvato nella mia directory home come brightness.sh) per modificare la luminosità del display (poiché la tastiera del portatile ha sofferto un problema con il tè versato e divenne inutilizzabile). Sentiti libero di usarlo (se hai i file designati ... altrimenti sarà necessario armeggiare per indicare la tua variazione di essi).

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

KDE 4.12:

qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightness 55
    
risposta data int_ua 26.03.2014 - 05:54
1

ddccontrol è un'altra opzione per controllare la retroilluminazione per i monitor esterni. Qui posso impostare la retroilluminazione del mio monitor esterno al 50% della sua potenza con:

ddccontrol -p -r 0x10 -w 50

Ho cercato possibili soluzioni per questo problema per migliorare il modo in cui Redshift gestisce cambiamenti di luminosità . Da lì ho scoperto che esiste una patchset per il kernel Linux per migliorare la compatibilità tra i dispositivi, in modo che i laptop e gli schermi esterni potrebbe funzionare allo stesso modo, attraverso sysfs .

Nel frattempo, ddccontrol è l'unica cosa che funziona per me qui. Come al solito, la wiki di Arch ha una buona documentazione generale sull'argomento.

    
risposta data anarcat 25.01.2018 - 23:14
0

Interfaccia utente simile a ncurses interattiva che utilizza xbacklight

Le ncurse di un povero. Colpisci h e scende del 10%, colpisci l e aumenta del 10%. Quindi mostra la luminosità corrente.

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
)
    

Leggi altre domande sui tag