Na verdade, resolvi isso por meio de um processo de dois passos:
- usou xdotool para simular eventos de teclado.
- usou o irexec para ouvir eventos IR específicos e, em seguida, disparou o script
$ irexec /etc/lirc/lirc.greeter.conf
Aqui está o lirc.greeter.conf
begin
remote = mceusb
button = KEY_UP
prog = irexec
repeat = 0
config = greeter_sendkey Up
end
begin
remote = mceusb
button = KEY_DOWN
prog = irexec
repeat = 0
config = greeter_sendkey Down
end
begin
remote = mceusb
button = KEY_OK
prog = irexec
repeat = 0
config = greeter_sendkey Return
end
e o script envia o evento para:
#!/bin/bash
LOGIN='who | grep tty7 | /usr/bin/awk '{ print }''
if [ -z "" ];
then
echo "usage: greeter_sendkey CMD"
exit 2
fi
if [ "$LOGIN" ];
then
echo "$LOGIN is logged into console"
else
export XAUTHORITY=/var/run/lightdm/root/:0
export DISPLAY=:0
/usr/bin/xdotool key
fi
O comando who verifica se alguém está logado em tty7 a sessão gráfica local. Se não houver ninguém logado, assuma que o saudador está sendo executado. Como o script precisa interagir com o servidor X, ele precisa do arquivo xauth. Este é o arquivo xauth para o Ubuntu 12.04