Voglio riportare una guida su come regolare la luminosità dello schermo del mio portatile Toshiba L750 su ubuntu 12.04. La guida dovrebbe essere valida su qualsiasi versione di ubuntu, non l’ho testata personalmente ma dovrebbe essere valida anche per qualsiasi computer.
Installato ubuntu 12.04 tutto funziona bene tranne la sospensione. Il problema, stando alla documentazione di ubuntu, pare essere dovuto ai driver open source per le schede video Nvidia che non hanno un pieno supporto per il risparmio energetico, quindi anche per la sospensione.
Decido quindi di installare i driver proprietari per Nvidia Geforce . Perfetto! la sospensione funziona, ma alla prima occasione mi accorgo che la combinazione di tasti fn+F6 e fn+F7 per diminuire ed aumentare la luminosità non funzionano.
Soluzione al problema cercando su Google scopro che la soluzione è in poche parole creare due script, uno che aumenta e l’altro che diminuisce la luminosità dello schermo, e associarli a due scorciatoie della tastiera.
La procedura da seguire è la seguente :
Cerchiamo nella directory /sys (e nelle sue sottodirectory) i file contenenti la parola “bright”, quindi da terminale diamo:
find /sys -iwholename *bright*
questo è quello che ottengo sul mio portatile:
/sys/devices/LNXSYSTM:00/device:00/TOS1900:00/backlight/toshiba/brightness
/sys/devices/LNXSYSTM:00/device:00/TOS1900:00/backlight/toshiba/actual_brightness
/sys/devices/LNXSYSTM:00/device:00/TOS1900:00/backlight/toshiba/max_brightness
/sys/devices/LNXSYSTM:00/device:00/TOS1900:00/leds/toshiba::illumination/brightness
/sys/devices/LNXSYSTM:00/device:00/TOS1900:00/leds/toshiba::illumination/max_brightness
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/brightness
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/actual_brightness
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/max_brightness
/sys/devices/pci0000:00/0000:00:1c.5/0000:09:00.0/leds/ath9k-phy0/brightness
/sys/devices/pci0000:00/0000:00:1c.5/0000:09:00.0/leds/ath9k-phy0/max_brightness
find: "/sys/kernel/debug": Permesso negato
/sys/module/video/parameters/brightness_autoswitch_via_bios
/sys/module/video/parameters/brightness_switch_enabled
I 3 file in grassetto riguardano proprio la regolazione della luminosità del monitor. Guardando all’interno di ognuno dei 3 c’è un numero.
L’ultimo file, .../acpi_video0/max_brightness, contiene un numero che è fisso ed indica il valore massimo della luminosità dello schermo, nel mio caso questo valore è 7.
Negli altri due file c’è invece un numero che indica il valore che ha attualmente la luminosità.
Il file .../acpi_video0/actual_brightness non è editabile, non ho la minima idea di quello che serve;
mentre il file .../acpi_video0/brightness è editabile, e se variamo il numerino al suo interno, con i dovuti permessi, vediamo che varia la luminosità.
Per curiosità da terminale diamo:
sudo su
echo 1 > /sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness
Vediamo che la luminosità diventa minima; riscrivendo l’ultimo comando e sostituendo 1 con 7 la luminosità diventa massima.
Sarà, quindi, proprio questo il file che dovremmo variare di volta in volta. Per farlo utilizziamo degli script che aumenteranno o diminuiranno di una unità, ogni volta che vengono eseguiti, il numero contenuto nel file .../acpi_video0/brightness.
Quindi apriamo un editor di testo e scriviamo il seguente codice:
#!/bin/bash
bright=$(cat /sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness)
let "bright = $bright + 1"
echo $bright > /sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness
chiudiamo e salviamo nella nostra home con il nome lum+.sh
Apriamo un altro documento con l’editor di testo e scriviamo il seguente codice:
#!/bin/bash
bright=$(cat /sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness)
let "bright = $bright - 1"
echo $bright > /sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness
chiudiamo e salviamo nella nostra home con il nome lum-.sh
Un occhio attento ci fa notare che i due script sono identici tranne che per il segno +/- nel secondo comando. Il primo script aumenta di 1 il numerino all’interno del file.../acpi_video0/brightness, il secondo script lo diminuisce di 1.
Ad ogni esecuzione di uno degli script avvengono in sequenza le seguenti operazioni:
- leggo il numero all’interno di .../acpi_video0/brightness, che indica la luminosità attuale, e lo copio nella variabile bright;
- la variabile bright la aggiorno al nuovo valore aumentandola o diminuendola di una unità;
- in fine il suo valore lo riverso nuovamente all’interno di .../acpi_video0/brightness .
A questo punto bisogna dare i permessi di esecuzione ai due script, per farlo clicchiamo con il tasto destro su uno dei due file Proprieta -> Permessi e spuntare la casella Esecuzione. Il procedimento va ripetuto per entrambi i file.
L’operazione che faremo adesso non so bene cosa fa’ ma credo che serve a dare ai due script il permesso di essere eseguiti come root quando li avvia l’utente luigi e fa in modo che durante l’esecuzione non venga richiesta la password.
Da terminale diamo:
sudo visudo
nel file che si apre aggiungiamo alla fine queste due righe
wikiwarblog ALL= NOPASSWD: /home/wikiwarblog/lum+.sh
wikiwarblog ALL= NOPASSWD: /home/wikiwarblog/lum-.sh
Ovviamente al posto di wikiwarblog va sostituito il proprio nome utente.
A questo punto ci resta soltanto da creare due scorciatoie da tastiera che eseguano uno o l’altro script. Per far questo bisogna andare in Impostazioni di sistema -> Tastiera -> Scorciatoie e selezionare Scorciatoie personali, clicchiamo sulla + e inseriamo due scorciatoie, la prima con Nome: lum+
Comando:
bash -c "sudo /home/tuonome/lum+.sh"
la seconda con Nome: lum-
Comando:
bash -c "sudo /home/tuonome/lum-.sh"
Assegniamo ora alle due scorciatoie la combinazione di tasti preferita.
Io ho provato a utilizzare la combinazione di default della mia tastiera, che è fn+F6 e fn+F7, ma non funziona, quindi l’ho sostituita con la combinazione CTRL+SHIFT+Su per aumentare la luminosità e CRTL+SHIFT+Giu per diminuirla.
Per rendere tutto funzionante bisogna riavviare la sessione non riavviare il computer.