Entonces, ¡la Web es realmente una cosa increíble! Después de mucho investigar y sumergirme en muchos enlaces del foro, logré comprender mejor el problema, averiguar qué programa era responsable y, finalmente, desactivar este comportamiento para siempre. Pensé en escribir mis pasos, en caso de que otras personas se encuentren con el mismo problema.
Paso 1. Monitoree el sistema para saber si / cuando se enciende la luz de fondo del teclado
Lo primero es saber que el estado actual de la luz de fondo del teclado se puede verificar leyendo el archivo /sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/brightness
. Por lo tanto, nos gustaría recibir notificaciones de cualquier cambio en este archivo e, idealmente, qué proceso invocó el cambio.
Esto se puede hacer usando fanotify . Utilicé el programa de ejemplo que se proporciona en la página de manual y agregué algunas modificaciones * para poder monitorear los cambios en el archivo de brillo. Resulta que el proceso responsable de la modificación fue /usr/lib/upower/upowerd
, que es un proceso demonio para UPower .
Paso 2. Descubre por qué UPower está encendiendo la luz de fondo (falla)
Esta fue la parte más difusa de la investigación, y todavía no puedo decir por qué sucede esto. Encontré una persona con un problema muy similar pero sin solución, así que comencé a ver si podía desactivar completamente UPower (y cuáles serían las consecuencias) cuando encontré este enlace . Resulta que UPower tiene un archivo de configuración! Eso es mejor.
Paso 3. Deje de encender la luz de fondo del teclado
Finalmente, edité el archivo de configuración mencionado anteriormente, ubicado en /etc/dbus-1/system.d/org.freedesktop.UPower.conf
, y cambié <allow>
a <deny>
en la siguiente línea:
<allow send_destination="org.freedesktop.UPower"
send_interface="org.freedesktop.UPower.KbdBacklight"/>
Luego reinicié dbus con sudo service dbus restart
(uso systemctl restart dbus.service
en Ubuntu 16.04 y posterior) y procedí a bloquear mi pantalla para probar el resultado y ... ¡Funcionó! Bueno, más o menos. La pantalla de inicio de sesión no se mostraba, por lo que no pude volver a iniciar sesión y tuve que forzar un reinicio. ¡Pero entonces todo funcionó muy bien!
¡Y eso es! Todavía tengo curiosidad sobre cuál sería la forma correcta de hacer esto. Si lo sabes, deja un comentario, por favor!
* Por ejemplo, el programa de ejemplo solo se configuró para monitorear FAN_OPEN_PERM
y FAN_CLOSE_WRITE
eventos, pero en este caso fue un FAN_MODIFY
evento.