I am sorry to reporting this well known error message again.
Nothing works for me. I am running on MacOS Catalina, if it is important.
I installed xdotool
with brew
on my Mac and try to run
xdotool getmouselocation
The error message that follows is
Error: Can't open display: (null)
Failed creating new xdo instance
I was searching for a solution for a long time, found plenty of answers that said. Run export DISPLAY=:0
and everything is fine. But this didn't work for me.
PS: For better understanding: What does DISPLAY means exactly? It is the monitor of my computer?
According to official notice by apple
X11 is no longer included with Mac, but X11 server and client libraries are available from the XQuartz project.
why X11 matters in this case ?
xdotool - command-line X11 automation tool.
So Alongside setting export DISPLAY=:0
install xquartz
.
according x manual
From the user's perspective, every X server has a display name of the form:
hostname:displaynumber.screennumber
This information is used by the application to determine how it should connect to the server and which screen it should use by default (on displays with multiple monitors):
hostname The hostname specifies the name of the machine to which the display is physically connected. If the hostname is not given, the most efficient way of communicating to a server on the same machine will be used.
displaynumber The phrase "display" is usually used to refer to collection of monitors that share a common keyboard and pointer (mouse, tablet, etc.). Most workstations tend to only have one keyboard, and therefore, only one display. Larger, multi-user systems, however, frequently have several displays so that more than one person can be doing graphics work at once. To avoid confusion, each display on a machine is assigned a display number (beginning at 0) when the X server for that display is started. The display number must always be given in a display name.
screennumber Some displays share a single keyboard and pointer among two or more monitors. Since each monitor has its own set of windows, each screen is assigned a screen number (beginning at 0) when the X server for that display is started. If the screen number is not given, screen 0 will be used.
there is simpler description found here
A display consists (simplified) of:
i.e. when you connect over ssh you are using different sets of these 3.