Cambiar el nivel de brillo desde línea de comando en Linux

Debido a que uso XMonad, siempre busco la forma de realizar tareas con el teclado.  Cuando hablé de ese administrador de ventanas también puse un par de scripts que uso para escribir información miscelánea en la “barra” que creo con dzen2. Pero hay algo que todavía no logro desde la línea de comandos: cambiar el nivel de brillo de la pantalla.

Bueno, en realidad no es que no haya podido, solamente que el método que uso no es definitivamente el mejor: cambiar directamente el archivo /sys/class/backlight/acpi_video0/brightness con el nivel de brillo deseado (que sin mal no recuerdo va de 0 a 20) con el comando:

echo 10 > /sys/class/acpi_video0/brightness

(para un valor de 10, por ejemplo. La ubicación del archivo puede variar dependiendo de la distribución.)

El problema de este método es que, para que funcione, hay que hacer una de 2 cosas:

  • chmod para que cualquier usuario pueda modificarlo, o
  • ejecutar el comando como root

Para muchos, quizá no importe el hecho de tener que ser root para ejecutar un comando, pero hay que recordar que se recomienda no ejecutar nada como súper usuario para evitar posibles agujeros de seguridad. Y tener el archivo con permisos 777 tampoco es la meta.

Estuve revisando, y encontré que xrandr tiene la propiedad Backlight, la cual controla el nivel de brillo en la pantalla. Según xrandr –prop los valores válidos están en el rango 0-9, así que intenté un xrandr –set Backlight 5, pero no pasó nada.

Como tengo gnome-power-manager en .xsession y las hotkeys de la laptop para ajustar el brillo funcionan, pensé que mi problema estaría resuelto, pero no contaba con que al usarlas, el valor que cambia es el mismo que xrandr reporta, por lo que, como ya podrán imaginar, no pasó nada. Y lo mismo pasó con xbacklight, el cual reporta un cambio al usar xbacklight -10%, pero en realidad no sucede nada.

Cierto es que podría hacer un script para modificar el brillo y podría ligarlo a la combinación de teclas Mod4 + left/right, pero termino en lo mismo de arriba: si no lo ejecuto como root, sencillamente no va a funcionar.

De momento, lo que hago siempre que entro en Linux (en XMonad) es ejecutar el comando ya mencionado (echo del valor al archivo) como root. Da flojera, sí, pero es la única solución que ha funcionado hasta el momento.