Contrôlez la luminosité du moniteur externe via le logiciel

10

Bonjour la communauté Ubuntu,

Je peux contrôler la luminosité de mon DELL U2713HM connecté à DisplayPort via la commande:

ddccontrol -p -r 0x10 -w 53

où dans cet exemple, le nombre 53 représente le niveau de luminosité (plage de 0 à 100). Mais je ne sais pas comment lier la commande à mes touches de luminosité sur mon clavier.

J'ai déjà cherché, mais je viens de trouver des réponses aux écrans d'ordinateur portable intégrés. Le /sys/class/backlightdossier acpi_video0contient certains sous-dossiers et fichiers. Le fichier actual_brightness contient un nombre compris entre 0 et 20, qui change lorsque j'appuie sur les touches de luminosité.

Comment obtenir mon moniteur externe répertorié en tant que périphérique dans / sys / class / backlight?

PS: J'exécute une nouvelle installation d'Ubuntu 12.10 avec des graphiques intégrés Intel HD4000.

remi
la source
Lorsque la commande que vous avez fournie fonctionne pour votre moniteur externe, vous pouvez définir des touches de raccourci personnalisées dans Paramètres système> Clavier> Raccourcis.
tongpu
C'est correct, mais je peux simplement envoyer deux commandes (sombre / clair) et j'ignorerais le changeur de luminosité interne d'Ubuntu avec la belle animation de luminosité.
remi
Pouvez-vous poster un lien avec la sortie de ddccontrol -p, je pense à une solution ...
Gerhard Burger
J'espère que cela vous sera utile: pastebin.com/L7Y7pRZe
remi

Réponses:

6

Je ne pense pas que votre solution souhaitée pour obtenir votre moniteur externe /sys/class/backlightfonctionnera, mais la bonne nouvelle est que vous pouvez avoir la belle animation de luminosité!

Essayer

notify-send " " -i notification-display-brightness-low -h int:value:50 -h string:x-canonical-private-synchronous:brightness &

Maintenant, nous pouvons créer un script qui simule le changeur de luminosité d'Ubuntu:

#!/bin/bash
#get current brightness
presbright=$(ddccontrol -p | grep -A1 0x10 | tr -d '\n\t' | sed 's/.*value=\([^a-zA-Z]*\),.*/\1/')
#stepsize for the brightness change
stepsize=10

case "$1" in
        up)
          newbright=$(( ${presbright}+${stepsize} ))
          newbright=$(echo $newbright | awk '{if($1 < 100){if($1 > 0) print $1; else print 0;} else print 100;}')

          notify-send " " -i notification-display-brightness-low -h int:value:$newbright -h string:x-canonical-private-synchronous:brightness &
          ddccontrol -p -r 0x10 -w $newbright
        ;;
        down)
          newbright=$(( ${presbright}-${stepsize} ))
          newbright=$(echo $newbright | awk '{if($1 < 100){if($1 > 0) print $1; else print 0;} else print 100;}')

          notify-send " " -i notification-display-brightness-low -h int:value:$newbright -h string:x-canonical-private-synchronous:brightness &
          ddccontrol -p -r 0x10 -w $newbright            
        ;;
        status)
          echo $presbright
        ;;
        *)
          echo "Accepted arguments are: up, down, status."
        ;;
esac

exit 0

Comme vous pouvez le voir, il restreint les valeurs entre 0 et 100. Vous pouvez maintenant lier le upet les downappels au script à certains raccourcis clavier de votre choix avec Paramètres système> Clavier> Raccourcis , comme l'a suggéré fotomonster.


Remarques:
Je ne sais pas combien de temps ddccontrol -pprend, s'il est trop long, vous pouvez également ajouter une syncoption au script qui enregistre la valeur de luminosité du moniteur dans un fichier. Ensuite, au lieu d'obtenir la luminosité actuelle, ddccontrolvous pouvez simplement l'obtenir à partir de votre fichier, ce qui devrait être beaucoup plus rapide. Bien sûr, vous devrez mettre à jour le upet les downappels pour écrire la nouvelle luminosité dans le fichier ...


script inspiré de ce post sur archlinux .

Gerhard Burger
la source
fonctionne très bien, merci beaucoup. C'est exactement ce que je voulais. Maintenant, tout le système est bien intégré, comme un iMac, mais toujours configurable.
remi
J'ai encore besoin d'un peu d'aide pour lier le script à mes touches de luminosité: askubuntu.com/questions/239560/…
remi