198 votes

Comment modifier la luminosité de l'écran LCD depuis la ligne de commande (ou via script) ?

Pour contourner bug #1005495 (la modification de la luminosité de l'écran LCD via les touches de raccourci est impossible), j'aimerais disposer d'une requête en ligne de commande pour augmenter et réduire la luminosité de mon écran LCD. Je pourrais ensuite associer une touche de raccourci à chacune de ces requêtes.

Le problème est que je ne sais pas comment augmenter et réduire la luminosité de l'écran LCD en ligne de commande. Le savez-vous ?

2voto

Paul D'Ambra Points 101

En utilisant les réponses ci-dessus, j'ai créé ce script (enregistré dans mon répertoire personnel en tant que brightness.sh ) pour modifier la luminosité de l'écran (car le clavier de l'ordinateur portable a souffert d'un problème de thé renversé et est devenu inutilisable). N'hésitez pas à l'utiliser (si vous avez les fichiers désignés... sinon il faudra bricoler pour pointer vers votre variation de ceux-ci).

#!/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

2voto

anarcat Points 141

ddccontrol est une autre option pour contrôler le rétro-éclairage des moniteurs externes. Ici, je peux régler le rétroéclairage de mon moniteur externe à 50% de sa puissance avec :

ddccontrol -p -r 0x10 -w 50

J'ai cherché des solutions possibles pour ce problème afin d'améliorer la façon dont Redshift poignées changements de luminosité . Par là, j'ai découvert qu'il y a un patchset pour le noyau Linux d'améliorer la compatibilité entre les appareils, afin que les ordinateurs portables et les écrans externes puissent fonctionner de manière similaire, grâce à sysfs .

En attendant, ddccontrol est la seule chose qui fonctionne pour moi ici. Comme d'habitude, le wiki d'Arch a bonne documentation générale sur le sujet également.

1voto

Kavan Points 49

Pour régler la luminosité absolue (pour les utilisateurs d'ordinateurs portables) :

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

1voto

Rolf Points 1420

Sur la base de La réponse de placsint

cd /sys/class/backlight/intel_backlight/
cat max_brightness | sudo tee brightness

0voto

Interface utilisateur interactive de type ncurses utilisant xbacklight

Les ncurses d'un pauvre homme. Hit h et qu'il baisse de 10%, frappez l et il augmente de 10%. Ensuite, montrez la luminosité actuelle.

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
)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X