在 Unity Greeter 上使用 MCE 远程?

在 Unity Greeter 上使用 MCE 远程?

有没有办法让 LightDM 在欢迎屏幕上将 MCE 遥控器视为输入设备?我有三个帐户 - 我的用户帐户、MythTV 和 XBMC,我希望能够使用遥控器在它们之间切换。我对 xorg.conf 进行了以下更改:

Section "InputClass"
    Identifier           "Remote"
    MatchDevicePath      "/dev/input/event2"
    Option            "Ignore" "True"
EndSection

X.org 可以看到遥控器:

#cat /var/log/Xorg.0.log | grep Media |grep input |grep event
[354591.052] (II) config/udev: Adding input device Media Center Ed. eHome Infrared Remote Transceiver (0471:060c) (/dev/input/event2)

答案1

我实际上通过两步过程解决了这个问题:

  • 使用 xdotool 模拟键盘事件。
  • 使用 irexec 监听特定的 IR 事件,然后启动脚本

$irexec /etc/lirc/lirc.greeter.conf

这是 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

以及它将事件发送到的脚本:

#!/bin/bash

LOGIN=`who | grep tty7 | /usr/bin/awk '{ print $1 }'`

if [ -z "$1" ];
  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 $1
fi

who 命令检查是否有人登录到 tty7 本地图形会话。如果没有人登录,则假设欢迎程序正在运行。由于脚本需要与 X 服务器交互,因此它需要 xauth 文件。这是 ubuntu 12.04 的 xauth 文件

相关内容