Controle o brilho do monitor externo via software

10

Olá, comunidade Ubuntu,

Eu posso controlar o brilho do meu DELL U2713HM conectado com DisplayPort via o comando:

ddccontrol -p -r 0x10 -w 53

onde neste exemplo o número 53 representa o nível de brilho (faixa de 0 a 100). Mas eu não sei como ligar o comando às minhas teclas de brilho no meu teclado.

Eu já pesquisei, mas encontrei respostas para telas de laptop integradas. Em /sys/class/backlight é a pasta acpi_video0 com algumas subpastas e arquivos. O arquivo actual_brightness contém um número de 0 a 20, que está mudando quando eu pressiono as teclas de brilho.

Como faço para que meu monitor externo seja listado como um dispositivo em / sys / class / backlight?

PS: Estou executando uma nova instalação do Ubuntu 12.10 com placa gráfica integrada Intel HD4000.

    
por remi 23.11.2012 / 10:42

1 resposta

6

Eu não acho que sua solução desejada de colocar seu monitor externo em /sys/class/backlight funcionará, mas a boa notícia é que você pode ter a animação de brilho legal!

Tente

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

Agora podemos criar um script que simule o alterador de brilho do Ubuntu:

#!/bin/bash
#get current brightness
presbright=$(ddccontrol -p | grep -A1 0x10 | tr -d '\n\t' | sed 's/.*value=\([^a-zA-Z]*\),.*//')
#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 você pode ver, ele fixa os valores entre 0 e 100. Agora, você pode vincular as chamadas up e down ao script a alguns atalhos de teclado de sua escolha com Configurações do sistema > Teclado > Atalhos , como o fotomonster sugerido.

Notas:
Não sei quanto tempo ddccontrol -p demora, se for muito longo, você também pode adicionar uma opção sync ao script que salva o valor de brilho do monitor em um arquivo. Então, em vez de obter o brilho atual de ddccontrol , você pode simplesmente obtê-lo do seu arquivo, que deve ser muito mais rápido. É claro que você precisaria atualizar as chamadas up e down para gravar o novo brilho no arquivo ...

script inspirado por esta postagem no archlinux .

    
por Gerhard Burger 10.01.2013 / 12:25