A luz de fundo do teclado acende após a tela de bloqueio / exibição

9

Acabei de atualizar o Ubuntu (15.04 para 15.10) e agora estou me deparando com um comportamento estranho: sempre que eu bloqueio a tela (usando qualquer um dos Ctrl + Alt + L, Win + L ou apenas clicando em "Lock" no menu da barra de tarefas), a luz de fundo do teclado acende, mesmo que eu sempre a mantenha desligada.

Eu não tenho idéia de onde começar a investigar isso. Isso não aconteceu no Ubuntu 15.04 e não parece que outras pessoas se depararam com isso.

Meu laptop é um Dell Inspiron, se ajudar.

Update: Mais tarde eu entendi que esse problema acontece sempre que a tela é ligada, o que acontece logo após eu travar a tela por causa de um bug . Então, esses são eventos relacionados, mas a causa real é a ativação da tela.

    
por dsetton 19.11.2015 / 16:47

1 resposta

13

Então, a Web é realmente uma coisa incrível! Depois de muita pesquisa e mergulhando em muitos links do fórum, consegui entender melhor o problema, descobrir qual programa era responsável por ele e, finalmente, desativar esse comportamento para sempre. Eu pensei em escrever meus passos, no caso de outras pessoas se depararem com o mesmo problema.

Passo 1. Monitore o sistema para saber se / quando a luz de fundo do teclado está sendo ligada

A primeira coisa é saber que o status atual da luz de fundo do teclado pode ser verificado lendo o arquivo /sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/brightness . Então, gostaríamos de ser notificados sobre quaisquer alterações neste arquivo e, idealmente, qual processo invocou a alteração.

Isso pode ser feito usando fanotify . Eu usei o programa de exemplo que é fornecido na página man e adicionei alguns modificações * para que eu pudesse monitorar as alterações no arquivo de brilho. Acontece que o processo responsável pela modificação foi /usr/lib/upower/upowerd , que é um processo daemon para UPower .

Etapa 2. Descubra por que a UPower está ligando a luz de fundo (falha)

Essa foi a parte mais imprecisa da investigação, e ainda não sei dizer por que isso acontece. Eu encontrei uma pessoa com um muito problema similar mas sem solução, então Eu comecei a ver se eu poderia desativar o UPower completamente (e quais seriam as conseqüências) quando eu encontrasse este link . Acontece que o UPower tem um arquivo de configuração! Isso é melhor.

Etapa 3. Pare o UPower de ligar a luz de fundo do teclado

Por fim, editei o arquivo de configuração mencionado acima, localizado em /etc/dbus-1/system.d/org.freedesktop.UPower.conf e alterei <allow> para <deny> na seguinte linha:

<allow send_destination="org.freedesktop.UPower"
       send_interface="org.freedesktop.UPower.KbdBacklight"/>

Eu reiniciei o dbus com sudo service dbus restart (use systemctl restart dbus.service no Ubuntu 16.04 e posterior) e continuei a bloquear minha tela para testar o resultado e ... Funcionou !! Bem, sorta. A tela de login não apareceria, então não pude entrar novamente e tive que forçar a reinicialização. Mas então tudo funcionou muito bem!

E é isso! Ainda estou curioso para saber qual seria a maneira correta de fazer isso. Se você sabe, deixe um comentário, por favor!

* Por exemplo, o programa de exemplo foi configurado apenas para monitorar FAN_OPEN_PERM e FAN_CLOSE_WRITE events, mas nesse caso foi um evento FAN_MODIFY .

    
por dsetton 09.12.2015 / 18:51