Controlla la luminosità del monitor esterno tramite software


11

Ciao comunità Ubuntu,

Posso controllare la luminosità del mio DELL U2713HM collegato a DisplayPort tramite il comando:

ddccontrol -p -r 0x10 -w 53

dove in questo esempio il numero 53 rappresenta il livello di luminosità (intervallo da 0 a 100). Ma non so come collegare il comando ai tasti della luminosità sulla tastiera.

Ho già cercato, ma ho appena trovato le risposte agli schermi dei laptop integrati. In /sys/class/backlightè la cartella acpi_video0con alcune sottocartelle e file. Il file actual_brightness contiene un numero compreso tra 0 e 20, che cambia quando si premono i tasti di luminosità.

Come posso ottenere il mio monitor esterno elencato come dispositivo in / sys / class / backlight?

PS: sto eseguendo una nuova installazione di Ubuntu 12.10 con grafica integrata Intel HD4000.


Quando il comando fornito funziona per il monitor esterno, puoi impostare i tasti di scelta rapida personalizzati in Impostazioni di sistema> Tastiera> Tasti di scelta rapida.
tongpu,

È corretto, ma poi posso semplicemente inviare due comandi (scuro / chiaro) e ignorerei il cambio di luminosità interno di Ubuntu con la bella animazione di luminosità.
Remi,

Puoi pubblicare un link con l'output di ddccontrol -p, sto pensando a una soluzione ...
Gerhard Burger

Spero che questo sia di aiuto per te: pastebin.com/L7Y7pRZe
remi

Risposte:


6

Non credo che la soluzione desiderata per ottenere il tuo monitor esterno /sys/class/backlightfunzionerà, ma la buona notizia è che puoi avere la bella animazione della luminosità!

Provare

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

Ora possiamo creare uno script che simula il cambio di luminosità di 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

Come puoi vedere, blocca i valori tra 0 e 100. Ora puoi associare upe downchiama lo script ad alcune scorciatoie da tastiera di tua scelta con Impostazioni di sistema> Tastiera> Scorciatoie , come suggerito da fotomonster.


Note:
Non so quanto tempo ddccontrol -pimpieghi, se è troppo lungo puoi anche aggiungere syncun'opzione allo script che salva il valore di luminosità del monitor in un file. Quindi, invece di ottenere la luminosità corrente da ddccontrolte, puoi semplicemente ottenerla dal tuo file, che dovrebbe essere molto più veloce. Ovviamente dovresti aggiornare le chiamate upe downper scrivere la nuova luminosità nel file ...


script ispirato a questo post su archlinux .


funziona molto bene, grazie mille. Questo è esattamente quello che volevo. Ora l'intero sistema è ben integrato, come un iMac, ma ancora configurabile.
Remi,

Ho ancora bisogno di un piccolo aiuto, legando lo script ai miei tasti di luminosità: askubuntu.com/questions/239560/…
remi
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.