web-dev-qa-db-fra.com

Comment définir la luminosité de l'affichage par défaut?

Est-il possible de régler la luminosité de l'écran par défaut afin de ne pas avoir à la réajuster à chaque redémarrage? L'écran de mon ordinateur portable me tue les yeux à l'écran de connexion car il commence à 100% de luminosité à chaque fois.

35
Jeremy

Examen des solutions et en proposer une meilleure (espérons-le)

Solutions précédentes

/sys/- based: bon pour la console

@gan

Cela fonctionne avec echo 5 > /sys/class/backlight/acpi_video0/brightness mais ne fonctionne pas bien avec X. Plus précisément, X n'est pas au courant de vos paramètres préférés et vous devrez peut-être régler à nouveau la luminosité manuellement au moins une fois, comme dans bug # 1042359 .

setpciname __- based: dépendant du système, dangereux

@erickjohncuevas

Les solutions basées sur des éléments tels que setpci -s 01:00.0 F4.B=50 sont dangereuses. Ici, 01:00.0 est en fait un ID ciblant une carte particulière sur le bus PCI. Et cela dépend du système. Cela signifie que suivre aveuglément cette procédure risque d’écrire des registres de configuration sur d’autres cartes où cela pourrait vouloir dire n'importe quoi, allant de rien à un crash du système à un moment donné dans le futur. Quoi qu'il en soit, cela ne fonctionne pas bien avec X non plus.


Solution proposée

Avantages/inconvénients

La solution ci-dessous présente les avantages suivants:

  • joue bien avec X qui est pleinement conscient des réglages choisis
  • est plus lisible, donc maintenable
  • ne contient pas d'adresse spécifique au système, etc., et peut en conséquence fonctionner sur une gamme plus étendue de matériel (par exemple, lorsque le noyau ignore le rétroéclairage ou n'utilise même pas de carte vidéo basée sur PCI, pensez buntu pour ARM )

Cela suppose: Ubuntu utilisant lightdm (c'est-à-dire 11.10 et au-delà)

Il active uniquement le rétroéclairage au démarrage de lightdm. Mais elle peut être combinée avec la solution /sys ci-dessus si vous devez réellement définir le rétroéclairage plus tôt.

La solution

Le copier-coller de ces commandes devrait faire ce dont vous avez besoin (Sudovous demandera probablement votre mot de passe).

  1. Installez xbacklights'il n'est pas déjà installé (c'est un petit paquet).

    Sudo apt-get install xbacklight
    

    Vous devez tester xbacklightsur la ligne de commande pour voir si cela fonctionne. Par exemple:

    xbacklight = 100 ; sleep 2 ; xbacklight = 30
    

    Essayez de trouver une valeur adaptée à votre matériel et à vos conditions d'éclairage.

  2. Créez un petit script exécutant xbacklightname__.
    Vous pouvez modifier le =30 en une autre valeur si vous le souhaitez.
    Le || true garantit que si xbacklightéchoue pour une raison quelconque, X peut toujours démarrer.

    Sudo bash -c '{
        echo "#!/bin/bash"
        echo "xbacklight =30 || true"
    } >> /etc/lightdm/display-setup-script.sh '
    
  3. Rendre le script exécutable

    Sudo chmod a+rx /etc/lightdm/display-setup-script.sh
    
  4. Demandez à lightdmd’exécuter le script lors du démarrage de X.
    Plus précisément, cela ajoute une ligne display-setup-script dans un fichier de configuration lightdm, mais seulement s’il n’en existe pas déjà.

    if grep -ri ^display-setup-script /etc/lightdm/
    then 
      echo "There may be already a display-setup-script. It may already do what you need. Else please adjust manually" ; 
    else 
      if [[ -d /etc/lightdm/lightdm.conf.d ]]
      then
        # Ubuntu 13.10 and above have lightdm.conf.d. 14.04 *only* has lightdm.conf.d.
        DEST_CONF_FILE=/etc/lightdm/lightdm.conf.d/20-default-brightness.conf
      else
        # Ubuntu 12.04, 12.10, 14.10 do not have lightdm.conf.d, so we change main configuration file
        DEST_CONF_FILE=/etc/lightdm/lightdm.conf
      fi
      echo "Writing into $DEST_CONF_FILE"
      Sudo bash -c "{ 
          echo '[SeatDefaults]' ; 
          echo display-setup-script=/etc/lightdm/display-setup-script.sh ; 
      } >> $DEST_CONF_FILE" ; 
    fi
    

Peut être testé en redémarrant lightdmà partir d'une session racine sur la console. Ou plus simplement en redémarrant.

Testé sur Ubuntu 12.04, 12.10, 13.10, 14.04, 14.10, 16.04.

S'il vous plaît fournir des commentaires sur votre expérience.

26
Stéphane Gourichon

source

Faire écho à une valeur donnée n'aide pas la luminosité car la valeur sera différente d’un système à l’autre.

Vous devez d’abord régler la luminosité de l’écran au niveau qui vous convient le mieux, ce qui peut être facilement effectué dans Paramètres système Luminosité et verrouillage ou en utilisant les touches de fonction.

Maintenant, allez à /sys/class/backlight/<folder> (mon dossier est intel_backlight)

screen shot of the folder

Dans ce dossier, vous pouvez voir le fichier actual_brightness et le fichier max_brightness. (Si vous avez modifié la luminosité après l'ouverture de ce fichier, n'oubliez pas d'actualiser (à l'aide de Ctrl + R ou F5) pour afficher les paramètres actuels.)

Maintenant, nous avons besoin de la même valeur que la luminosité à chaque démarrage de notre système. Cela peut être fait en modifiant à chaque fois la valeur de ce dossier au démarrage. Nous devons changer le fichier rc.local.

Tapez d'abord ces commandes dans le terminal (que vous pouvez ouvrir en recherchant Terminal dans le tiret ou en appuyant sur Ctrl + Alt + T):

Sudo -i
gedit /etc/rc.local

et ajouter la ligne

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

Remplacez 900 par la valeur dont vous avez besoin (c'est-à-dire la valeur obtenue à l'aide de la procédure ci-dessus). Remplacez également intel_backlight par le nom de dossier de /sys/class/backlight/.

Par exemple, mon /etc/rc.local:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
rfkill block bluetooth
echo 900 > /sys/class/backlight/intel_backlight/brightness

exit 0

En passant, j'ai ajouté la ligne rfkill block bluetooth à mon fichier rc.local car je n'utilise pas du tout Bluetooth, mais Ubuntu lance Bluetooth chaque fois qu'il redémarre (même si Bluetooth était déjà désactivé). Vous pouvez également l'ajouter, et juste au cas où vous voudriez utiliser Bluetooth, vous pourrez toujours le redémarrer, même si cette ligne est dans votre rc.local).

Ne changez pas la valeur de exit 0 dans la fin. Si cette ligne n'existe pas, ajoutez-la.

Maintenant, même si vous avez redémarré le système, vous aurez la même valeur que celle dont vous avez besoin.

Veillez à ne pas définir une valeur de luminosité supérieure à max_brightness, car cela vous générera une erreur indiquant que cet argument est invalide.

7
Tummala Dhanvi

Ce n'est pas par défaut. Chaque fois que je redémarre, ma luminosité est réglée sur 100%. Puis je règle la luminosité avec la commande:

$ echo 5 | Sudo tee /sys/class/backlight/acpi_video0/brightness
3
Gan

Une fois que vous avez défini votre luminosité préférée, vous pouvez suivre la réponse de N0rbert ici: La luminosité est réinitialisée sur Maximum à chaque redémarrage . En résumé:

Sudo add-apt-repository ppa:nrbrtx/sysvinit-backlight
Sudo apt-get update
Sudo apt-get install sysvinit-backlight

Sudo service sysvinit-backlight status # Show current brightness levels and values saved in files
Sudo service sysvinit-backlight start # Set saved levels from files
Sudo service sysvinit-backlight stop # Save current levels to files
1
nyxee

Avez-vous regardé redshift? Il a été conçu pour un autre objectif (rendre l’écran moins bleuâtre la nuit), mais cela pourrait également résoudre votre problème.

À installer:

Sudo apt-get install redshift

Mon fichier de configuration (~/.config/redshift.conf):

[redshift]
;temp-day=5700
;temp-night=4600
brightness-day=1.0
brightness-night=0.75
gamma=0.8
adjustment-method=vidmode
location-provider=manual

[manual]
lat=63.81415
lon=20.41742

Si vous réglez luminosité-jour et luminosité-nuit sur une valeur qui vous convient et réglez temp-jour et temp-nuit sur la même valeur, vous utiliserez effectivement redshift pour définir votre luminosité uniquement.

Pour que redshift démarre automatiquement à la connexion, sélectionnez Applications/Outils système/Préférences/Applications de démarrage/Ajouter. Nom: redshift. Commande:/usr/bin/redshift.

1
Niclas Börlin