Eu finalmente resolvi isso usando algumas soluções alternativas.
O primeiro passo foi tornar as chaves detectáveis. Eu tinha um laptop de um modelo similar (Lenovo Z400) e olhei para quais códigos de teclas eram gerados para ele. Com base nisso, eu coloco isso no meu /etc/rc.local/
:
setkeycodes e054 225 # Brightness up -> brightness up
setkeycodes e04c 224 # Brightness down -> brightness down
O segundo passo foi fazer com que as teclas mudassem o brilho. A primeira vez que notei que a execução de xdotool key 232
e xdotool key 233
aumentou e diminuiu o brilho perfeitamente (incluindo a notificação de alteração no Unity). Então eu tentei duas coisas para fazer o brilho funcionar.
Primeiro, notei que xev
me mostrou os eventos XF86MonBrightnessUp
e XF86MonBrightnessDown
para as duas chaves, o que significa que tudo estava funcionando bem no nível X. Então eu simplesmente usei o gerenciador de atalhos do Ubuntu e registrei as duas chaves (que foram lidas como equivalentes no XF86) para os comandos xdotool
. Isso funcionou muito bem!
No entanto, algumas semanas depois, devido a alguns pacotes / drivers que eu mudei, xev
parou de relatar os eventos XF86 e, portanto, o método acima não funcionou. No entanto, acpi_listen
mostrou que video/brightnessdown
e video/brightnessup
eventos estavam sendo gerados, então, depois de algum googling, coloquei o seguinte em um novo arquivo, /etc/acpi/events/ideapad-monitor-brightness-up
:
# same event as reported by acpi_listen
event=video/brightnessup BRTUP 00000086 00000000 K
action=su vivek -c "export DISPLAY=:0.0; xdotool getactivewindow && xdotool key 233 2>&1 > /tmp/log"
# The redirection into /tmp/log probably doesn't make any difference
e também um arquivo ideapad-monitor-brightness-down
equivalente com xdotool key 232
e que resolveu o problema. Não tive nenhum problema desde então. :)