访问Ubuntu GDM登录屏幕的X Display

时间:2012-05-23 12:31:54

标签: ubuntu x11 ubuntu-10.04 ui-automation

总的来说,我试图从单独的shell中将按键注入Ubuntu登录界面。我在标准登录屏幕上有机器(运行Ubuntu 10.04),我也通过SSH连接到机器。我尝试了以下(来自SSH shell):

$ ps ax | grep X
 2844 tty8     Ss+    0:01 /usr/bin/X :0 -br -verbose -auth /var/run/gdm/auth-for-gdm-Gp2Rlq/database
$ export DISPLAY=:0
$ xdotool key Return
No protocol specified
Error: Can't open display: :0
Failed creating new xdo instance

一旦机器登录到Ubuntu,这个完全相同的方法就可以工作,但它不适用于登录屏幕。

理想情况下,我希望能够从另一个shell完成登录。我 NOT 想要使用自动登录。我只是希望能够获得正确的显示,并执行登录所需的按键操作。

非常感谢任何帮助。

编辑:

感谢上午的小费。我能够解决这个问题:

export DISPLAY=:0
sudo xdotool key Return

这实现了我想要的,但现在我想知道是否有办法在没有'sudo'的情况下实现这一目标?是否有一个标志我可以启用/禁用来解决这个问题?

再次感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

您需要有权连接到显示器。请注意X命令的-auth参数。这就是权威所在。

试试这个:

export XAUTHORITY=/var/run/gdm/auth-for-gdm-<whatever-it-is>/database 
export DISPLAY=:0 
xdotool key Return

您需要是root才能访问权限文件。

请参阅man xauth了解更多信息。