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. :)