FreeBSD-11, Mate, Terminal, Gvim

Manish Jain bourne.identity at hotmail.com
Tue Jul 25 19:45:49 UTC 2017



On 07/26/17 00:36, Polytropon wrote:
> On Tue, 25 Jul 2017 10:39:29 -0400, James B. Byrne via freebsd-questions wrote:
>> When setting up new hosts I usually open an especially coloured
>> terminal instance and use 'su -l' to become root.  I also typically
>> edit using gvim.  However, this combination does not work for me on
>> FreeBSD with Mate as it did for me under CentOD-6 and Gnome2.  When
>> inside a terminal window as root instead of opening an Xwindow editor
>> when running gvim I get a 'E233: cannot open display' error.
> 
> This is to be expected.
> 
> With "su -l", a full login is simulated, so all environmental
> variables will be reset - but $DISPLAY is needed for X. There
> are basically two solutions:
> 
> 1. Set $DISPLAY accordingly, for example to :0.0. Refer to the
>     documentation of your shell on how to do it, for example in
>     C shell "setenv DISPLAY :0.0", in sh/bash "export DISPLAY=:0.0".
> 
> 2. Use "su -m" instead, which will preserve the environment of
>     your user, and $DISPLAY will be kept set.
> 
> See "man su" for details.

Hi Poly,

I found this relevant too. Under Linux. it appears that root is somehow 
able to connect to the X server of the current user. But under FreeBSD, 
this does not work and occasionally I need to run X applications as root.

Your steps should in theory work. But apparently, they don't on my box.

export DISPLAY=:0.0
su -m my_normal_user_name -c gvim

I get :

No protocol specified
E233: cannot open display
Press ENTER or type command to continue

Actually, xhost itself is unable to access the display :

/root <<: xhost +local:
No protocol specified
xhost:  unable to open display ":0.0"

Is something more needed ?

Thanks for any help
Manish Jain


More information about the freebsd-questions mailing list