总的来说,我试图从单独的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'的情况下实现这一目标?是否有一个标志我可以启用/禁用来解决这个问题?
再次感谢您的帮助。
答案 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
了解更多信息。