Eerst even een Linux insight: Linux is "networking to the core" en dat betekent ook dat een $DISPLAY toegekend is aan een gebruiker.
Wanneer deze gebruiker binnen zijn sessie gaat inloggen als een andere, bv "root", gebruiker is er in dat geval geen bruikbaar $DISPLAY voorhanden. Vandaar de foutmelding.

UPDATE:
.Xauthority wordt in de nieuwste distro' s niet langer automatisch gegenereerd.
Om dit bestand te creeren, type:

ln -s -f "$XAUTHORITY" ~/.Xauthority

Neem dit commando op in ~/.bash_profile OF in ~/.bashrc en zie onder voor de "merge" functie voor gebruiker "root".
============================================================================

De foutmelding  kan zich op twee manieren manifesteren:

Geval 1: Gtk-WARNING **:cannot open display: localhost:0:0
Geval  2: WARNING **: Could not open X display, error: XDG_RUNTIME_DIR not set in the environment

Indien deze error verschijnt wanneer als "root" via de terminal een grafisch programma wordt opgestart, dan is dit de oplossing:

login op de root account met sudo wachtwoord:

sudo su

Merge de Xauthority file van de normale gebruiker naar "root-user" (voeg de regel toe aan /root/.bashrc:)

xauth merge /home/GEBRUIKERSNAAM/.Xauthority

Geef aan welk "Display" te gebruiken (voeg de regel toe aan /root/.bashrc):

export DISPLAY=:0

Of het juiste "DISPLAY" toegewezen is kan men controleren met:

echo $DISPLAY