Hace poco mas de un mes, un afortunado usuario de Slimbook, indicó en el foro que no le funcionaba backlight-indicator en Ubuntu GNOME 17.04. Inicialmente, pensé que esto era un problema sencillo y que simplemente era cuestión de algún cambio de nomenclatura en la última versión de GNOME 3.24. ¡Qué equivocado estaba!. El problema era mas grave de lo que pensaba y llegaba a afectar incluso a xbacklight.
Sin embargo, este bug ya surgió en Ubuntu 16.10. Sin embargo, como backlight-indicator no hacía uso de este comando, no se vió afectado, y por ello nadie reportó el error.
Sin embargo, en la nueva versión de backlight-indicator, consecuencia de un cambio introducido en GNOME 3.24, he tenido que recurrir a xbacklight…, bueno, realmente he recurrido a acpilight.
acpilight el sustituto compatible de xbacklight
acpilight es una utilidad, que nos permite ajustar el brillo de la pantalla y la retroiluminación del teclado directamente desde la terminal. Lo mejor es que es totalmente compatible con xbacklight. De esta manera, si ya conocías el funcionamiento de xbacklight, no tendrás ningún problema con esta nueva utilidad.
¿Que ha sucedido con xbacklight?
Al parecer, y según cuenta el propio autor de acpilight, en los portátiles modernos XRandR ya no es capaz de configurar el brillo. Ahora el brillo se configura através de la interfaz ACPI vía /sys/class/backlight/
.
De esta manera acpilight supone el sustituto perfecto para xbacklight utilizando la interfaz ACPI en lugar de XRandR, lo que permite que los mas antiguos scripts que hacían uso de esta utilidad puedan seguir funcionando sin ningún problema.
¿Como funciona?
Los usuarios normales, sin derechos de administración, no pueden modificar sys
por las razones que te puedes imaginar.
Para resolver este conflicto, vamos a crear una regla udev de forma que se permite modificar el brillo de la pantalla y la retroiluminación del teclado a todos los usuarios del grupo video
. Este grupo es un grupo del sistema al que se le dan permisos para acceder a los dispositivos de vídeo, como la tarjeta de vídeo o la webcam.
Las reglas introducidas son las siguientes,
UBSYSTEM=="backlight", ACTION=="add", \ RUN+="/bin/chgrp video %S%p/brightness", \ RUN+="/bin/chmod g+w %S%p/brightness" SUBSYSTEM=="leds", ACTION=="add", KERNEL=="*::kbd_backlight", \ RUN+="/bin/chgrp video %S%p/brightness", \ RUN+="/bin/chmod g+w %S%p/brightness"
La retroiluminación del teclado no funciona para todos los portátiles, pero menos da una piedra.
Diferencias con xbacklight
xbacklight configura el brillo de la pantalla definida en $DISPLAY
. Sin embargo, acpilight establece por defecto el brillo para el primer dispositivo que encuentra en el directorio /sys/class/backlight
.
Para conocer todos los dispositivos que se pueden configurar tenemos que ejecutar la orden,
acpilight -list
En mi caso el resultado es el siguiente,
intel_backlight input23::numlock input4::capslock input4::numlock input23::scrolllock input4::scrolllock input23::kana input23::capslock dell::kbd_backlight input23::compose
Ahora si queremos configurar la retroiluminación en el teclado, en el caso de que lo admita, la orden sería la siguiente,
acpilight -set 1 -ctrl dell::kbd_backlight
Y para conocer el valor de la retroiluminación del teclado la orden a ejecutar sería esta otra:
acpilight -get -ctrl dell::kbd_backlight
Algunos cambios respecto al original…
A pesar de que el autor de esta aplicación le puso el mismo nombre a la utilidad, es decir, la llamó xbacklight, pensando en la compatibilidad y funcionamiento de herramientas antiguas, yo he preferido que se llame acpilight. Esto es asi, porque en el caso de instalar ambas podríamos tener un conflicto, cosa que de esta manera evitamos.
Por otro lado, si quieres que esas antiguas herramientas sigan funcionando tan solo tienes que hacer un enlace simbólico tal y como te indico a continuación
cd /usr/bin sudo ln -s acpilight xbacklight
Algunas utilidades interesantes
Entre las diferentes posibilidades que nos ofrece acpilight, podemos encontrar algunas tan interesantes como la de establecer atajos de teclado para que nos incremente el brillo de la pantalla un 10%
O que nos lo reduzca un 10%
También podemos crear un sencillo script que nos permita configurar el brillo que deseamos al inicio de la sesión. Incluso si nos calentamos un poco la sesera, podemos hacer para que en función de la hora del día nos ponga un brillo u otro.
#!/bin/bash HOUR=`date +"%H"` if [ "$HOUR" -gt "19" ] then echo "tarde" acpilight -set 50 else echo "mañana" acpilight -set 80 fi
Instalación
acpilight no se encuentra en los repositorios oficiales de Ubuntu, pero lo puedes instalar fácilmente si tienes instalado ppaurl, con tan solo hacer clic en acpilight.
Otra opción es recurrir al emulador de terminal, y ejecutar las siguientes órdenes,
sudo add-apt-repository atareao/atareao
sudo apt-get update
sudo apt install acpilight
Una vez instalado tienes que reiniciar la sesión para que funcione correctamente.
Conclusiones
En los próximo artículos, comentaré otros cambios introducidos en backlight-indicator, para terminar con un último artículo referido a esta aplicación.
Si encontrais cualquier error, tanto en el funcionamiento de esta utilidad, como en backlight-indicator, os ruego me informeis para que le pueda dar solución cuanto antes.
Que genial herramienta!! Muy buen tutorial! Gracias por compartir.
Me alegro.
Only problem encountered is backlight-indicator will only read light value once. Using either Start or Capture backlight, will only measure light value the first time. I must exit and restart app to read current light value. Camera light only comes on the first time, subsequent tries no camera indicator light and no backlight value changes regardless of room lighting.
4.8.0-53-generic #56~16.04.1-Ubuntu SMP Tue May 16 01:18:56 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux