In the question What is $DISPLAY environment variable

the value of $DISPLAY, which is mostly :0.0, is explained as hostname:Displaynumber.Screennumber, if hostname is absent it means local host, therefore :0.0 would be read as localhost, first Display, first Screen.

What makes me hard to understand is, that in non technical language screen and display are synonymes, then that in some answers display or screen are explained with physical traits, in other as if they were virtual like processes like a terminal emulator. Moreover, apart from the Xserver a further server, the display server, is being named which somehow works with the $DISPLAY variable.

  • 2
    Wikipedia has a definition of the meanings of display, screen and monitor within the world of X. May 28, 2017 at 10:17
  • 1
    The nouveau wiki also has a pretty good explanation, more technically accurate than Wikipedia’s. May 28, 2017 at 10:47
  • I try to read the nouveau wiki entry, but each sentence introduces to me more questions of ambiguity, too many to name them all, take for instance: ..."When a graphical application starts, it connects to an X server. Usually the environment variable DISPLAY specifies which X server to connect to. "... which envirnoment variable DISPLAY, that of the process SHELL or of the process Xserver? There is more than one Xserver?
    – sharkant
    May 28, 2017 at 11:20
  • or this one: "When a graphical application starts, it connects to an X server. Usually the environment variable DISPLAY specifies which X server to connect to. " ..this one explains the 0.0 differently, in the question mentioned, the first 0 was a Display, here it is a Xserver instance
    – sharkant
    May 28, 2017 at 11:24
  • 2
    I added a new answer to the Ubuntu question you link to.
    – tripleee
    May 29, 2017 at 6:06

1 Answer 1


In X11 terminology.

Display: at least one screen, a keyboard, and a pointing device (often a mouse).

Screen: What everyone else calls a display, monitor, or screen, but could be virtual, e.g. a region of a monitor (window).

Both screens and windows are addressable via the DISPLAY environment variable, and some other means. An application can choose which display.screen to map a window to. But it is not possible to move a window to another screen, without the application un-mapping and re-mapping it.

Monitor: This is (I think), a newer idea. Each screen can be made up of monitors. Generally application don't know about monitors, except the window manager. The window manager can freely move windows between monitors, and even overlap. All monitors are mapped as a single rectangular screen. But the window manager knows where monitors start and end, and can full-screen to just one, or detect monitor edge gestures. (I think a monitor is probably no more that a set of hints that the window manager uses). If your window manager is not monitor aware, then windows will full-screen over the whole screen.

Screens are not used much these days, at least not for interactive desktops, if using a window manager that supports monitors. However screens would be useful, when the application should be in charge, as opposed to the window manager. Though this does not seem to be necessary: Open-office presents, knows of, and uses monitors when presenting.

  • Multiple screens may be required to be used when displays have extremely different DPI resolution, since this is handled extremely not well in Linux. But it's a rarity, really.
    – grin
    Aug 17, 2018 at 11:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.