尝试运行xdotool,但显示“无法打开显示:(空)”

时间:2019-12-01 21:17:14

标签: linux macos devops xdotool

很抱歉再次报告此众所周知的错误消息。但是我需要帮助..:/

对我没有任何帮助。.如果重要,我将在macOS Catalina上运行。

我在Mac上安装了xdotoolbrew并尝试运行

xdotool getmouselocation

以下错误消息是

Error: Can't open display: (null)
Failed creating new xdo instance

我一直在寻找解决方案很长时间,发现了很多答案。运行export DISPLAY=:0,一切正常。.

但这对我不起作用。 :/

非常感谢您的帮助!

P.S .:为了更好地理解:DISPLAY的确切含义是什么?是我的计算机的显示器吗?

1 个答案:

答案 0 :(得分:1)

根据official notice by apple

  

Mac不再包含X11,但是XQuartz项目中提供了X11服务器和客户端库。

为什么X11在这种情况下很重要?

xdotool-命令行X11自动化工具。

因此,除了设置export DISPLAY=:0

安装xquartz

DISPLAY到底是什么意思?

根据x manual

  

从用户的角度来看,每个X服务器都具有以下形式的显示名称:

               hostname:displaynumber.screennumber
     

应用程序使用此信息来确定应如何   连接到服务器,默认情况下应使用哪个屏幕(在   显示带有多个监视器):

     
      
  1. 主机名   主机名指定显示器实际连接到的机器的名称。如果未提供主机名,则   与同一台计算机上的服务器进行通信的最有效方法   将会被使用。

  2.   
  3. 显示编号   词组“显示器”通常用于表示共享通用键盘和指针(鼠标,平板电脑,   等等。)。大多数工作站往往只有一个键盘,并且   因此,只有一个显示器。但是,较大的多用户系统   经常有几个显示器,这样一个人可以   一次完成图形工作。为避免混淆,每个显示器上   当X时,为计算机分配显示编号(从0开始)。   用于该显示的服务器已启动。显示编号必须始终为   以显示名称给出。

  4.   
  5. 屏幕编号   某些显示器在两个或更多显示器之间共享一个键盘和指针。由于每个监视器都有自己的一组窗口,因此每个   在X服务器上为屏幕分配一个屏幕号(从0开始)   该显示开始。如果没有给出屏幕号,则屏幕   将使用0。

  6.   

找到更简单的描述here

显示(简化)包括:

  • 键盘
  • 鼠标
  • 屏幕

即通过ssh连接时,您使用的是这3种不同的设备。