I used to open text files with sublime, and for Read-only files, I used to do :
sudo sublime
. But now just suddenly the sudo sublime
command gives the following error :
(sublime:3931): Gtk-WARNING **: cannot open display:
while sublime
command is working fine. I tried the same with gedit
, and the same thing happened, with the error with gedit being shown :
error: XDG_RUNTIME_DIR not set in the environment.
(gedit:3933): Gtk-WARNING **: cannot open display:
I installed gtk
, and tried gksudo
, still got the same error!
I searched the web and found these ways :
xhost +localhost
: https://askubuntu.com/questions/614387/gksu-gtk-warning-cannot-open-display-0export DISPLAY=:0.0
:ssh username@hostname -X
ssh username@hostname -Y
- https://superuser.com/questions/310197/how-do-i-fix-a-cannot-open-display-error-when-opening-an-x-program-after-sshi
None of the above worked.
What worked out for me was :
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY sublime
I want to know why exactly am I getting this error, that too suddenly! Also, I want to get back to the sudo sublime
version, since it is easy to remember. How can I fix that?
Also, the recent changes I did to the system were :
Installed Mac theme for Ubuntu : http://www.noobslab.com/2014/04/macbuntu-1404-pack-is-released.html
Installed gksu(for gksudo)
Help would be highly appreciated!
I have the same problem.
The reason in my situation is that sudo
does NOT inherit environment variables: DISPLAY XAUTHORITY
.
HOW TO FIX?
For Ubuntu 14, open sudoers
file via sudo visudo
, then paste:
Defaults env_keep += "DISPLAY XAUTHORITY"
Had same problem. My fault that i followed another answer and changed file sudoers
with next string:
Defaults env_keep="https_proxy"
But i should have added that:
Defaults env_keep += "https_proxy"
First string overrides existing list.
I also had the same problem on Ubuntu 14.04. It was caused while following another answer. Open terminal by pressing,
Ctrl+ Alt + T
then $ sudo visudo
change
Defaults env_keep="https_proxy"
to
Defaults env_keep += "https_proxy"
It worked for me.
If you see XDG_RUNTIME_DIR in the output of env as a regular user, then all you probably need to do is use the -E switch to preserve the environment.
来源:https://stackoverflow.com/questions/33187159/error-xdg-runtime-dir-not-set-in-the-environment-gtk-warning-cannot-open-d