web-dev-qa-db-fra.com

Comment changer la luminosité de LCD à partir de la ligne de commande (ou via un script)?

Pour contourner le problème bug n ° 1005495 (changer LCD la luminosité via des raccourcis clavier impossibles), j'aimerais avoir une requête en ligne de commande pour augmenter et une pour réduire la luminosité de mon LCD. Je pourrais ensuite mapper un raccourci clavier à chacune de ces requêtes.

Le problème est le suivant: je ne sais pas comment augmenter et réduire la luminosité LCD sur la ligne de commande. Le faites vous?

160
user69748

Une autre façon de faire est d’utiliser un autre nouveau programme nommé xbacklight, ouvrez votre terminal et tapez ceci.

Sudo apt-get install xbacklight

puis tapez ce xbacklight -set 50

là 50 signifie la plage de luminosité, nous pouvons obtenir jusqu’à 100 à partir de 0.

vous pouvez également augmenter et diminuer la luminosité de la valeur actuelle au niveau spécifié. Comme vous l'avez indiqué si vous souhaitez augmenter la luminosité jusqu'à 10%, vous pouvez indiquer cette valeur.

xbacklight -inc 10

et pour diminuer de 10%, vous pouvez donner cette

xbacklight -dec 10 

Avertissement : xbacklight ne fonctionne qu'avec Intel, pas correctement sur Radeon et pas du tout avec le pilote modesetting ( source ).

154
rɑːdʒɑ

Ouvrez votre terminal et tapez ceci

xrandr -q | grep " connected"

il vous donnera la sortie comme

LVDS1 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 331mm x 207mm

Il LVDS1 représente votre affichage. Alors maintenant, vous devez faire comme

xrandr --output LVDS1 --brightness 0.5

0,5 correspond au niveau de luminosité et il est compris entre 0,0 et 1,0. 0.0 -> Full black. Vous devez donc choisir la valeur de luminosité requise.

Cela ne modifie pas la luminosité au niveau matériel . De randr manual :

--brightness brightness Multipliez les valeurs gamma sur le crtc actuellement attaché à la sortie avec la valeur flottante spécifiée. Utile pour les sorties trop brillantes ou trop faibles. Cependant, il s’agit d’une modification logicielle uniquement . Si votre matériel prend en charge la modification de la luminosité, vous préférerez probablement utiliser xbacklight.

146
rɑːdʒɑ

Ce qui suit fonctionne pour moi:

echo 400 | Sudo tee /sys/class/backlight/intel_backlight/brightness

Je suppose que la valeur maximale possible est dans le fichier /sys/class/backlight/intel_backlight/max_brightness.

Remplacez intel_backlight par un astérisque à appliquer à tous les rétroéclairages.

104
palacsint

Pour les ordinateurs portables,

Sudo setpci -s 00:02.0 F4.B=80

Modifiez 80 by [0-FF] pour obtenir la luminosité la plus faible, la plus élevée. La valeur spécifiée est en hexadécimal, donc 80 vous donnera un 50% de luminosité maximale.

Pour que les ordinateurs de bureau fassent un correction gamma (non testé par moi),

xgamma -gamma .75
12
Gaurav Gandhi

Faites ce 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"

Exécutez-le en tant que root, avec une valeur comprise entre 0 et 1.

Sudo ./set-brightness.sh 0.5
  • Si votre système n'a pas de /sys/class/backlight/acpi_video0, il devrait y avoir au moins un répertoire, qui peut être spécifique à un périphérique (j'ai aussi un radeon_bl0, par exemple).
  • Si vous en avez d'autres, gardez à l'esprit leur pile de valeurs (d'où la boucle; poussant toutes les valeurs other à 1.0, puis définissez la valeur cible sur la quantité souhaitée).
  • Bien que acpi_video0devrait fonctionne toujours, il n’a pas toujours la gamme complète de luminosité physique disponible. Essayez chacune d’elles et utilisez celle qui a la plus grande gamme comme "CIBLE"
4
Fordi

Essayez ceci dans le terminal:

xrandr --output LVDS1 --brightness 0.9

Vous pouvez modifier la dernière valeur à votre guise, par exemple. 0,2

4
ripu

Comme @palacsint l'a dit, echo 244 > /sys/class/backlight/intel_backlight/brightness path fonctionne pour moi.

Mais les valeurs max et min sont renvoyées dans les fichiers /sys/class/backlight/intel_backlight/max_brightness et /sys/class/backlight/intel_backlight/bl_power respectivement.

De plus, la luminosité actuelle de votre ordinateur est présente dans /sys/class/backlight/intel_backlight/actual_brightness

3
user281989

tilisation de DBus avec Gnome

Les étapes de luminosité pour le contrôle du clavier peuvent également être mises en œuvre avec cette méthode.

# 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

Remarques

3
Pablo Bianchi

KDE 4.12:

qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightness 55

Version KDE Plasma: 5.14.3:

Le code ci-dessus est toujours valide. Cela ne fonctionnera que si vous êtes un utilisateur de KDE. Cependant, dans ce cas, aucun logiciel supplémentaire ne sera nécessaire. Il aura exactement le même comportement que lors de l'utilisation du widget "batterie et luminosité". Autant que je sache, cela change le rétro-éclairage physique, contrairement à xrandr qui ne le fait pas.

Attention, le 55 ci-dessus n'est pas une fraction de 100, ce dernier étant la luminosité maximale. Au lieu de cela, il est lié à max_brightness:

qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl brightnessMax

Il existe également une version "silencieuse" que vous pourriez préférer dans un script:

qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightnessSilent 2000

Réf: qdbus , plein , luminosité

3
int_ua

En utilisant les réponses ci-dessus, j'ai créé ce script (enregistré dans mon répertoire personnel sous le nom de brillance.sh) pour modifier la luminosité de l'écran (car le clavier de l'ordinateur portable avait un problème de thé renversé et devenait inutilisable). N'hésitez pas à l'utiliser (si vous avez les fichiers désignés ... sinon, bricoler pour indiquer votre variante sera nécessaire).

#!/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
2
Aaron Nichols

Voici une courte ligne qui peut vous aider à détendre vos yeux. Il suffit de créer une crontaab avec la ligne ou de créer un script

xrandr --output VGA1 --brightness 0.5; sleep 20; xrandr --output VGA1 --brightness 1
2
Cristianpark

ddccontrol est une autre option permettant de 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 à ce problème pour améliorer la façon dont Redshift gère changements de luminosité . Par là, j’ai trouvé qu’il existe un patchset pour le noyau Linux afin d’améliorer la compatibilité entre périphériques, afin que les ordinateurs portables et les écrans externes puissent fonctionner de la même manière, grâce à sysfs.

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

1
anarcat

Interface utilisateur interactive de type ncurses utilisant xbacklight

Un pauvre homme ncurses. Appuyez sur h et il diminue de 10%, puis sur l et augmentez de 10%. Ensuite, affichez 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
)