Controle el brillo del monitor externo a través del software

10

Hola comunidad Ubuntu,

Puedo controlar el brillo de mi DELL U2713HM conectado con DisplayPort mediante el comando:

ddccontrol -p -r 0x10 -w 53

donde en este ejemplo el número 53 representa el nivel de brillo (rango de 0 a 100). Pero no sé cómo vincular el comando a mis teclas de brillo en mi teclado.

Ya busqué, pero acabo de encontrar respuestas a las pantallas integradas de portátiles. En /sys/class/backlightestá la carpeta acpi_video0con algunas subcarpetas y archivos. El archivo actual_brightness contiene un número del 0 al 20, que cambia cuando presiono las teclas de brillo.

¿Cómo consigo que mi monitor externo aparezca como dispositivo en / sys / class / backlight?

PD: estoy ejecutando una nueva instalación de Ubuntu 12.10 con gráficos integrados Intel HD4000.

remi
fuente
Cuando el comando que proporcionó funciona para su monitor externo, puede establecer teclas de acceso directo personalizadas en Configuración del sistema> Teclado> Accesos directos.
tongpu
Eso es correcto, pero luego puedo enviar dos comandos (oscuro / brillante) e ignoraría el cambiador de brillo interno de Ubuntu con la agradable animación de brillo.
remi
¿Puedes publicar un enlace con la salida de ddccontrol -p, estoy pensando en una solución ...
Gerhard Burger
Espero que esto sea de ayuda para usted: pastebin.com/L7Y7pRZe
remi

Respuestas:

6

No creo que su solución deseada para instalar su monitor externo /sys/class/backlightfuncione, ¡pero la buena noticia es que puede tener la agradable animación de brillo!

Tratar

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

Ahora podemos hacer un script que simule el cambiador de brillo de 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

Como puede ver, sujeta los valores entre 0 y 100. Ahora puede vincular upy downllamar al script a algunos atajos de teclado de su elección con Configuración del sistema> Teclado> Atajos , como sugiere fotomonster.


Notas:
No sé cuánto tiempo ddccontrol -plleva, si es demasiado tiempo también puede agregar una syncopción al script que guarda el valor de brillo del monitor en un archivo. Luego, en lugar de obtener el brillo actual ddccontrol, simplemente puede obtenerlo de su archivo, que debería ser mucho más rápido. Por supuesto, necesitaría actualizar el upy las downllamadas para escribir el nuevo brillo en el archivo ...


guión inspirado en esta publicación en archlinux .

Gerhard Burger
fuente
funciona muy bien, muchas gracias Eso es exactamente lo que quería. Ahora todo el sistema está bien integrado, como un iMac, pero aún configurable.
remi
Todavía necesito un poco de ayuda, vinculando el script a mis teclas de brillo: askubuntu.com/questions/239560/…
remi